En esta guía vas a crear un bloque de rubí: un cubo rojo y brillante que emite un poco de luz, tarda un momento en picarse y se suelta a sí mismo al romperlo. Es el "hola mundo" de la creación de bloques, y todos los bloques más elaborados empiezan igual.
Hay dos formas de hacerlo. La rápida te lleva unos minutos en el móvil. La manual te enseña qué hace cada archivo.
La forma rápida: GodCraft
GodCraft crea por ti el bloque, su textura, su nombre y su botín. Nunca tocas un archivo JSON.
- Abre el Taller y añade un bloque a tu complemento.
- Pinta las caras en el editor de píxeles, o parte de una textura del juego base y cámbiale el color.
- Ajusta cuánto tarda en picarse, cuánta luz da y qué suelta.
- Toca Exportar. GodCraft escribe los manifiestos, los UUID y los archivos de idioma, y te da un
.mcaddon.
¿Quieres saber qué pasa por dentro? Sigue leyendo.
A mano
Necesitas un paquete de comportamiento (BP) y un paquete de recursos (RP) ya preparados. Si todavía no los tienes, sigue primero Preparar el proyecto. Usaremos el espacio de nombres myname; cámbialo por tu propio nombre corto en todas partes.
Estos son todos los archivos que vas a tocar:
| Archivo | Paquete | Qué hace |
|---|---|---|
blocks/ruby_block.json | BP | Qué es el bloque y cómo se comporta |
loot_tables/blocks/ruby_block.json | BP | Qué suelta |
textures/blocks/ruby_block.png | RP | La imagen |
textures/terrain_texture.json | RP | Le da un nombre corto a la imagen |
blocks.json | RP | El sonido que hace |
texts/en_US.lang | RP | El nombre que ven los jugadores |
Paso 1: el archivo del bloque
Crea este archivo en tu paquete de comportamiento:
{
"format_version": "1.26.50",
"minecraft:block": {
"description": {
"identifier": "myname:ruby_block",
"menu_category": {
"category": "construction"
}
},
"components": {
"minecraft:destructible_by_mining": {
"seconds_to_destroy": 3
},
"minecraft:destructible_by_explosion": {
"explosion_resistance": 6
},
"minecraft:friction": 0.4,
"minecraft:light_emission": 4,
"minecraft:map_color": "#9b1c2b",
"minecraft:geometry": "minecraft:geometry.full_block",
"minecraft:material_instances": {
"*": {
"texture": "ruby_block",
"render_method": "opaque"
}
},
"minecraft:loot": "loot_tables/blocks/ruby_block.json"
}
}
}La parte description dice quién es el bloque:
identifieres el ID del bloque, formado por tu espacio de nombres y un nombre. Lo escribirás en comandos como/give @s myname:ruby_block.menu_categoryelige la pestaña del inventario creativo. Las opciones sonconstruction,nature,equipment,itemsynone(oculto).
La parte components dice cómo se comporta:
minecraft:destructible_by_mining:seconds_to_destroyes lo que se tarda en picarlo a mano. Los bloques tipo piedra rondan entre 1.5 y 3.minecraft:destructible_by_explosion: cuanto mayor seaexplosion_resistance, más les cuesta a la dinamita y a los creepers.minecraft:friction: un número de 0 a 0.9. Cuanto más alto, más agarre; los bloques tipo hielo usan un valor bajo.minecraft:light_emission: un número entero de 0 (sin luz) a 15 (tan brillante como una antorcha o la piedra luminosa).minecraft:map_color: el color que muestra el bloque en un mapa, en formato hexadecimal.minecraft:geometry: la forma.minecraft:geometry.full_blockes un cubo normal, así que no necesitas un archivo de modelo.minecraft:material_instances: qué textura va en cada cara. La clave*significa "todas las caras".texturees un nombre corto que definirás en el paso 3.minecraft:loot: la tabla de botín que se usa al romper el bloque.
Caras distintas
¿Quieres una parte de arriba y unos lados diferentes, como un bloque de hierba? Añade más claves junto a * en material_instances, como up, down, north, south, east y west. Cualquier cara que no pongas usa *.
Paso 2: la textura
Dibuja un PNG de 16x16 píxeles y guárdalo en tu paquete de recursos como RP/textures/blocks/ruby_block.png.
¿Eres nuevo en el pixel art? La guía Texturas pixeladas explica tamaños, transparencia y sombreado.
Paso 3: dale un nombre corto a la textura
Los bloques no apuntan directamente a archivos PNG. Usan un nombre corto de terrain_texture.json. Si tu paquete ya tiene este archivo, añade la entrada ruby_block a texture_data. Si no, créalo:
{
"resource_pack_name": "myname",
"texture_name": "atlas.terrain",
"texture_data": {
"ruby_block": {
"textures": "textures/blocks/ruby_block"
}
}
}Fíjate en que la ruta no lleva .png al final. El juego encuentra el archivo solo.
Paso 4: el sonido
El blocks.json del paquete de recursos le dice al juego qué conjunto de sonidos reproducir cuando caminas sobre el bloque, lo colocas o lo rompes:
{
"format_version": "1.21.40",
"myname:ruby_block": {
"sound": "stone"
}
}Otros conjuntos de sonidos habituales de los bloques del juego base son wood, glass, metal, grass, sand, cloth, copper y deepslate.
Paso 5: el nombre
Sin un nombre, el juego muestra algo como tile.myname:ruby_block.name. Añade esta línea a tu archivo de idioma:
tile.myname:ruby_block.name=Ruby BlockPaso 6: el botín
La tabla de botín decide qué se suelta. Esta suelta el propio bloque, una vez:
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "myname:ruby_block"
}
]
}
]
}Cambia name por cualquier ID de objeto, como minecraft:diamond, para que el bloque suelte otra cosa.
Prueba tu bloque
- Exporta e instala los dos paquetes como se explica en Exportar e instalar, y actívalos en un mundo.
- Abre el inventario creativo y busca en la pestaña Construcción, o ejecuta
/give @s myname:ruby_block. Consulta /give. - Colócalo de noche: debería brillar suavemente.
- Cambia a supervivencia y pícalo. Debería tardar unos segundos y soltarse a sí mismo.
Problemas habituales
Tablero de ajedrez morado y negro
El juego no encuentra la textura. Comprueba que el nombre corto de material_instances coincide exactamente con la clave de terrain_texture.json, y que la ruta de terrain_texture.json coincide con la ubicación real del archivo, sin .png.
- El bloque no aparece en el inventario. Comprueba que
menu_categoryno esnoney que el paquete de comportamiento está activado. - El bloque tiene un nombre raro. La línea del
.langdebe usar el ID completo, con el espacio de nombres. - El bloque no suelta nada. Comprueba que la ruta de
minecraft:lootempieza porloot_tables/y coincide con el nombre del archivo.
Tienes más soluciones en Solución de problemas.
Qué sigue
- Explora todos los componentes de bloque en la referencia, empezando por material instances.
- Mira cómo construye Mojang sus propios bloques en Bloques del juego base.
- ¿Listo para algo con vida? Prueba Tu primera criatura personalizada.