Dans ce guide, tu vas créer un bloc de rubis : un cube rouge brillant qui luit un peu, qui met un moment à se miner et qui se lâche lui-même quand on le casse. C'est le « hello world » de la création de blocs, et tous les blocs plus élaborés commencent de la même façon.
Il y a deux façons de faire. La méthode rapide prend quelques minutes sur ton téléphone. La méthode à la main t'apprend à quoi sert chaque fichier.
La méthode rapide : GodCraft
GodCraft crée pour toi le bloc, sa texture, son nom et son butin. Tu ne touches jamais à un fichier JSON.
- Ouvre l'Atelier et ajoute un Bloc à ton add-on.
- Peins les faces dans l'éditeur de pixels, ou pars d'une texture vanilla et change ses couleurs.
- Choisis le temps de minage, la quantité de lumière qu'il donne et ce qu'il lâche.
- Appuie sur Exporter. GodCraft écrit les manifestes, les UUID et les fichiers de langue, et te donne un
.mcaddon.
Tu veux savoir ce qui se passe sous le capot ? Continue ta lecture.
À la main
Il te faut un pack de comportements (BP) et un pack de ressources (RP) déjà prêts. Si tu ne les as pas encore créés, suis d'abord Préparer le projet. Nous allons utiliser l'espace de noms myname : remplace-le partout par ton propre nom court.
Voici tous les fichiers que tu vas toucher :
| Fichier | Pack | Ce qu'il fait |
|---|---|---|
blocks/ruby_block.json | BP | Ce qu'est le bloc et comment il se comporte |
loot_tables/blocks/ruby_block.json | BP | Ce qu'il lâche |
textures/blocks/ruby_block.png | RP | L'image |
textures/terrain_texture.json | RP | Donne un nom court à l'image |
blocks.json | RP | Le son qu'il fait |
texts/en_US.lang | RP | Le nom que voient les joueurs |
Étape 1 : le fichier du bloc
Crée ce fichier dans ton pack de comportements :
{
"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 partie description dit qui est le bloc :
identifierest l'ID du bloc, fait de ton espace de noms et d'un nom. Tu le taperas dans des commandes comme/give @s myname:ruby_block.menu_categorychoisit l'onglet de l'inventaire créatif. Les choix possibles sontconstruction,nature,equipment,itemsetnone(caché).
La partie components dit comment il se comporte :
minecraft:destructible_by_mining:seconds_to_destroyest le temps qu'il faut pour le miner à mains nues. Les blocs du genre pierre tournent autour de 1,5 à 3.minecraft:destructible_by_explosion: plusexplosion_resistanceest grand, plus la TNT et les creepers ont du mal.minecraft:friction: un nombre de 0 à 0,9. Plus il est grand, plus ça accroche ; les blocs du genre glace utilisent une petite valeur.minecraft:light_emission: un nombre entier de 0 (pas de lumière) à 15 (aussi lumineux qu'une torche ou que la pierre lumineuse).minecraft:map_color: la couleur du bloc sur une carte, en couleur hexadécimale.minecraft:geometry: la forme.minecraft:geometry.full_blockest un simple cube, tu n'as donc pas besoin de fichier de modèle.minecraft:material_instances: quelle texture va sur quelle face. La clé*veut dire « toutes les faces ».textureest un nom court que tu définiras à l'étape 3.minecraft:loot: la table de butin utilisée quand le bloc est cassé.
Des faces différentes
Tu veux un dessus et des côtés différents, comme un bloc d'herbe ? Ajoute d'autres clés à côté de * dans material_instances, comme up, down, north, south, east et west. Toute face que tu ne cites pas reprend *.
Étape 2 : la texture
Dessine un PNG de 16x16 pixels et enregistre-le dans ton pack de ressources sous RP/textures/blocks/ruby_block.png.
Tu débutes en pixel art ? Le guide Textures pixel art explique les tailles, la transparence et les ombres.
Étape 3 : donner un nom court à la texture
Les blocs ne pointent pas directement vers des fichiers PNG. Ils utilisent un nom court défini dans terrain_texture.json. Si ton pack a déjà ce fichier, ajoute l'entrée ruby_block dans texture_data. Sinon, crée-le :
{
"resource_pack_name": "myname",
"texture_name": "atlas.terrain",
"texture_data": {
"ruby_block": {
"textures": "textures/blocks/ruby_block"
}
}
}Remarque que le chemin ne se termine pas par .png. Le jeu trouve le fichier tout seul.
Étape 4 : le son
Le blocks.json du pack de ressources indique au jeu quel ensemble de sons jouer quand tu marches sur le bloc, le poses ou le casses :
{
"format_version": "1.21.40",
"myname:ruby_block": {
"sound": "stone"
}
}Parmi les autres ensembles de sons courants des blocs vanilla, il y a wood, glass, metal, grass, sand, cloth, copper et deepslate.
Étape 5 : le nom
Sans nom, le jeu affiche quelque chose comme tile.myname:ruby_block.name. Ajoute cette ligne à ton fichier de langue :
tile.myname:ruby_block.name=Ruby BlockÉtape 6 : le butin
La table de butin décide de ce qui tombe. Celle-ci lâche le bloc lui-même, une fois :
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "myname:ruby_block"
}
]
}
]
}Remplace name par n'importe quel ID d'objet, comme minecraft:diamond, pour que le bloc lâche autre chose.
Teste ton bloc
- Exporte et installe les deux packs comme expliqué dans Exporter et installer, puis active-les dans un monde.
- Ouvre l'inventaire créatif et regarde dans l'onglet Construction, ou lance
/give @s myname:ruby_block. Voir /give. - Pose-le la nuit : il doit luire doucement.
- Passe en survie et mine-le. Ça doit prendre quelques secondes et il doit se lâcher lui-même.
Problèmes courants
Damier violet et noir
Le jeu ne trouve pas la texture. Vérifie que le nom court dans material_instances correspond exactement à la clé dans terrain_texture.json, et que le chemin dans terrain_texture.json correspond au vrai emplacement du fichier, sans .png.
- Le bloc n'est pas dans l'inventaire. Vérifie que
menu_categoryn'est pasnoneet que le pack de comportements est activé. - Le bloc a un nom bizarre. La ligne du
.langdoit utiliser l'ID complet, espace de noms compris. - Le bloc ne lâche rien. Vérifie que le chemin de
minecraft:lootcommence parloot_tables/et correspond au nom du fichier.
Tu trouveras d'autres solutions dans Dépannage.
Et ensuite
- Parcours tous les composants de bloc dans la référence, en commençant par material instances.
- Regarde comment Mojang construit ses propres blocs dans Blocs vanilla.
- Prêt pour quelque chose de vivant ? Essaie Ta première créature personnalisée.