カスタムモデルデータ:アイテムを置き換えずに複数のモデルを持たせる方法
アイテムモデルシステムは、以前のCustomModelData述語に代わるものです。ここでは、フォルダーのレイアウト、値をモデルにマッピングするJSON、そしてテクスチャが紫色のキューブとして表示される理由について説明します。
カスタムアイテムモデルを使用すると、サーバーは、実際には異なるモデルを持つニンジン付きの棒である「魔法の杖」を配布できます。メカニズムが変更され、ほとんどのチュートリアルでは依然として古い方法が説明されています。
変更点
古い方法 — ベースアイテムのモデルファイル内のpredicateブロックで、custom_model_dataを数値としてキーに指定します。
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
現在の方法 — モデルを選択するitems/定義:
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" } }
]
}
}
fallbackは、通常のニンジン付きの棒が依然としてどのように見えるかを示しています。これがないと、世界中の変更されていないすべてのニンジン付きの棒があなたの杖に変わってしまいます。
フォルダーのレイアウト
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:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
テクスチャパスにはtextures/プレフィックスも.pngもありません。これが、紫と黒のキューブが表示される最も一般的な原因です。
アイテムを与える
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
コンポーネントは、裸の整数ではなく、型付きリストを持つオブジェクトを受け取るようになりました。custom_model_data=1は古い構文であり、何もせずに黙って無視されます。
紫色のキューブとして表示される理由
可能性の高い順に:
- テクスチャパスが間違っている —
textures/または.pngが含まれているか、ファイルがパスの示す場所にありません。 - ファイル名の大文字/小文字 — ゲームは、OSがそうでない場合でも大文字/小文字を区別します。
pack_formatが低すぎる — パックはロードされますが、items/フォルダーは無視されます。フォーマットを現在のバージョンに合わせてください。- ZIPの圧縮方法が間違っている —
pack.mcmetaは、ZIP内のフォルダー内ではなく、ZIPのルートにある必要があります。
その他のセレクター
数値に対するrange_dispatchは、選択肢の1つにすぎません。minecraft:display_context(手に持っているときと額縁に入っているときで異なるモデル)、minecraft:using_item、またはminecraft:selectedでディスパッチすることもできます。これは、弓が引かれた状態を表示する方法です。
ディスパッチJSON、モデルファイル、およびgiveコマンドは、カスタムモデル&アイテムコンポーネントツールでまとめて作成できます。