Guides / Construction et ressources
Données de modèle personnalisées : donner plusieurs modèles à un objet sans rien remplacer
Le système d'item-model a remplacé l'ancien prédicat CustomModelData. Voici l'arborescence des dossiers, le JSON qui associe les valeurs aux modèles, et pourquoi votre texture s'affiche comme un cube violet.
Les modèles d'objet personnalisés permettent à un serveur de distribuer une « baguette magique » qui est en réalité une carotte sur un bâton avec un modèle différent. Le mécanisme a changé, et la plupart des tutoriels décrivent encore l'ancien.
Ce qui a changé
Ancienne méthode — un bloc predicate à l'intérieur du fichier de modèle de l'objet de base, indexé sur custom_model_data sous forme de nombre :
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Méthode actuelle — une définition items/ qui sélectionne un modèle :
assets/minecraft/items/carrot_on_a_stick.json
{
"model": {
"type": "minecraft:range_dispatch",
"property": "minecraft:custom_model_data",
"fallback": { "type": "minecraft:model", "model": "minecraft:item/carrot_on_a_stick" },
"entries": [
{ "threshold": 1, "model": { "type": "minecraft:model", "model": "minecraft:item/wand" } }
]
}
}
Le fallback correspond à l'apparence d'une carotte sur un bâton ordinaire. Sans lui, chaque exemplaire non modifié dans le monde s'affiche comme le cube violet et noir de modèle manquant.
L'arborescence des dossiers
pack.mcmeta
assets/minecraft/
├── items/carrot_on_a_stick.json the dispatch
├── models/item/wand.json the model
└── textures/item/wand.png the texture
models/item/wand.json dans sa forme la plus simple :
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Notez que le chemin de la texture n'a aucun préfixe textures/ et aucun .png — c'est la cause la plus fréquente d'un cube violet et noir.
Donner l'objet
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
Le composant prend désormais un objet avec des listes typées, et non un simple entier. custom_model_data=1 est l'ancienne syntaxe, et la commande la rejette maintenant comme malformée.
Pourquoi il s'affiche comme un cube violet
Par ordre de probabilité :
- Chemin de texture erroné — inclut
textures/ou.png, ou le fichier ne se trouve pas là où le chemin l'indique. - Casse du nom de fichier — le jeu est sensible à la casse même là où votre OS ne l'est pas.
pack.mcmetaobsolète — 26.x attendmin_formatetmax_format; un numéro de format actuel dans unpack_formatnu fait apparaître le pack comme incompatible.- Archive zip mal construite —
pack.mcmetadoit se trouver à la racine du zip, et non dans un dossier à l'intérieur du zip.
Autres sélecteurs
range_dispatch sur un nombre n'est qu'une option parmi d'autres. Vous pouvez aussi répartir selon minecraft:display_context (modèle différent en main ou dans un cadre), minecraft:using_item, ou minecraft:selected — c'est ainsi qu'un arc affiche un état bandé.
Construisez le JSON de répartition, le fichier de modèle et la commande give ensemble dans les Outils de modèle personnalisé et de composant d'objet.