Custom model data: assegnare più modelli a un oggetto senza sostituire nulla
Il sistema item-model ha sostituito il vecchio predicato CustomModelData. Ecco la struttura delle cartelle, il JSON che mappa i valori sui modelli e perché la texture appare come un cubo viola.
I modelli personalizzati degli oggetti consentono a un server di distribuire una "bacchetta magica" che in realtà è una carota su bastone con un modello diverso. Il meccanismo è cambiato e la maggior parte dei tutorial descrive ancora quello vecchio.
Cosa è cambiato
Vecchio metodo — a predicate block inside the base item's model file, keyed on custom_model_data as a number:
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Metodo attuale — un items/ definition that selects a model:
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" } }
]
}
}
Il fallback is what a plain carrot on a stick still looks like. Without it, every unmodified one in the world turns into your wand.
La struttura delle cartelle
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 at its simplest:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Nota che il percorso della texture ha nessun textures/ prefix and no .png — questa è la singola causa più comune di un cubo viola e nero.
Assegnare l'oggetto
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
Ora il componente accetta un oggetto con elenchi tipizzati, non un semplice intero. custom_model_data=1 is the old syntax and silently does nothing.
Perché appare come un cubo viola
In ordine di probabilità:
- Percorso della texture errato — include
textures/or.png, or the file is not where the
dice il percorso.
- Maiuscole/minuscole del nome file — il gioco fa distinzione tra maiuscole e minuscole anche se il tuo sistema operativo non lo fa.
pack_formattoo low — il pacchetto si carica ma ilitems/folder is ignored. Match
il formato alla versione in uso.
- Compresso in modo errato —
pack.mcmetamust be at the radice dello zip, non all'interno di una
cartella all'interno dello zip.
Altri selettori
range_dispatch on a number is only one option. You can also dispatch on minecraft:display_context (different model in hand versus in a frame), minecraft:using_item, or minecraft:selected — which is how a bow shows a drawn state.
Crea il JSON di smistamento, il file del modello e il comando give insieme in Strumenti Custom Model & Item Component.