Benutzerdefinierte Modelldaten: Einem Item viele Modelle geben, ohne etwas zu ersetzen
Das Item-Modellsystem hat das alte CustomModelData-Prädikat ersetzt. Hier ist das Ordnerlayout, das JSON, das Werte Modellen zuordnet, und warum deine Textur als lila Würfel angezeigt wird.
Benutzerdefinierte Item-Modelle ermöglichen es einem Server, einen „Zauberstab“ auszugeben, der eigentlich eine Karottenrute mit einem anderen Modell ist. Der Mechanismus hat sich geändert, und die meisten Tutorials beschreiben immer noch den alten.
Was sich geändert hat
Alte Methode – ein predicate-Block innerhalb der Modelldatei des Basis-Items, der auf custom_model_data als Zahl basiert:
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Aktuelle Methode – eine items/-Definition, die ein Modell auswählt:
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" } }
]
}
}
Die fallback ist das, wonach eine einfache Karottenrute immer noch aussieht. Ohne sie würde jede unveränderte Karottenrute in der Welt zu deinem Zauberstab werden.
Das Ordnerlayout
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 in seiner einfachsten Form:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Beachte, dass der Texturpfad kein textures/-Präfix und kein .png hat – das ist die häufigste Ursache für einen lila-schwarzen Würfel.
Das Item geben
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
Die Komponente akzeptiert jetzt ein Objekt mit typisierten Listen, nicht mehr eine bloße Ganzzahl. custom_model_data=1 ist die alte Syntax und bewirkt stillschweigend nichts.
Warum es als lila Würfel angezeigt wird
In der Reihenfolge der Wahrscheinlichkeit:
- Falscher Texturpfad – enthält
textures/oder.png, oder die Datei befindet sich nicht an der im Pfad angegebenen Stelle. - Dateiname Groß-/Kleinschreibung – das Spiel ist groß-/kleinschreibungsempfindlich, auch wenn dein Betriebssystem es nicht ist.
pack_formatzu niedrig – das Paket wird geladen, aber deritems/-Ordner wird ignoriert. Passe das Format an die Version an, die du verwendest.- Falsch gezippt –
pack.mcmetamuss sich im Stammverzeichnis des Zips befinden, nicht in einem Ordner innerhalb des Zips.
Andere Selektoren
range_dispatch auf eine Zahl ist nur eine Option. Du kannst auch nach minecraft:display_context (anderes Modell in der Hand versus in einem Rahmen), minecraft:using_item oder minecraft:selected – so zeigt ein Bogen einen gespannten Zustand an.
Erstelle das Dispatch-JSON, die Modelldatei und den Give-Befehl gemeinsam in den Benutzerdefinierten Modell- & Item-Komponenten-Tools.