前書き
1.8より、ブロック、アイテムのテクスチャ・モデルを外部ファイルから指定するようになった。
テクスチャ・モデル指定ファイルはリソースパックにより置換可能であり、形式もリソースパックと同様である。
ここでは、テクスチャ・モデル指定ファイルのサンプル及び記述形式を掲載する。
シチュエーション別必要ファイル
- 通常ブロックの追加
blockSampleA.json(Texture/BlockState/Block Model/Item Model)
- 既存モデルブロックの追加
blockSampleB.json(BlockState/Item Model)
- 通常アイテムの追加
itemSampleA.json(Texture/Item Model)
BlockState
- 置き場所
/src/main/resources/assets/<domain>/blockstates/<blockname>.json
- 通常ブロック(blockSampleA.json)
{ "variants": { "normal": { "model": "samplemod:blockSampleA" } } }
- 既存モデルブロック(blockSampleB.json)
既存モデルのガラス(minecraft:glass)を適用。
{ "variants": { "normal": { "model": "glass" } } }
Block Model
- 置き場所
/src/main/resources/assets/<domain>/models/block/<modelname>.json
- 通常ブロック(blockSampleA.json)
ブロックの全面にテクスチャ(/src/main/resources/assets/samplemod/textures/blocks/blockSampleA.png)を適用
{ "parent": "block/cube_all", "textures": { "all": "samplemod:blocks/blockSampleA" } }
Item Model
- 置き場所
/src/main/resources/assets/<domain>/models/item/<itemname>.json
- 通常ブロック(blockSampleA.json)
モデルはblockSampleA.json(/src/main/resources/assets/samplemod/models/block/blockSampleA.json)を適用
{ "parent": "samplemod:block/blockSampleA", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } }
- 既存モデルブロック(blockSampleB.json)
モデルは既存モデルのガラス(minecraft:block/glass)を適用
{ "parent": "block/glass", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } }
- 通常アイテム(itemSampleA.json)
テクスチャ(/src/main/resources/assets/samplemod/textures/items/itemSampleA.png)を適用
{ "parent": "builtin/generated", "textures": { "layer0": "samplemod:items/itemSampleA" }, "display": { "thirdperson": { "rotation": [ 0, 90, -35 ], "translation": [ 0, 1.25, -3.5 ], "scale": [ 0.85, 0.85, 0.85 ] }, "firstperson": { "rotation": [ 0, -135, 25 ], "translation": [ 0, 4, 2 ], "scale": [ 1.7, 1.7, 1.7 ] } } }