目次
前書き
1.8より、ブロック、アイテムのテクスチャ・モデルを外部ファイルから指定するようになった。
テクスチャ・モデル指定ファイルはリソースパックにより置換可能であり、形式もリソースパックと同様である。
ここでは、テクスチャ・モデル指定ファイルのサンプル及び記述形式を掲載する。
シチュエーション別必要ファイル
- 通常ブロックの追加
blockSampleA.json(Texture/BlockState/Block Model/Item Model)
- 既存モデルブロックの追加
blockSampleB.json(BlockState/Item Model)
- プロパティブロックの追加
blockSampleC.json(Texture/BlockState/(Block Model)/(Item Model))
- 通常アイテムの追加
itemSampleA.json(Texture/Item Model)
BlockState
- 置き場所
/src/main/resources/assets/<domain>/blockstates/<blockname>.json
- 通常ブロック(blockSampleA.json)
モデルはblockSampleA(/src/main/resources/assets/<domain>/models/block/blockSampleA.json)を適用。
{ "variants": { "normal": { "model": "samplemod:blockSampleA" } } }
- 既存モデルブロック(blockSampleB.json)
モデルは既存モデルのガラス(minecraft:glass)を適用。
{ "variants": { "normal": { "model": "glass" } } }
- プロパティブロック(blockSampleC.json)
blockSampleCのBlockStateはPropertyInteger「"meta"」を持つ必要がある。
モデルは"meta"が0の場合blockSampleA、"meta"が1の場合blockSampleBを適用。
{ "variants": { "meta=0": { "model": "samplemod:blockSampleA" } "meta=1": { "model": "samplemod:blockSampleB" } } }
Block Model
- 置き場所
/src/main/resources/assets/<domain>/models/block/<modelname>.json
- 通常ブロック(blockSampleA.json)
テクスチャはブロックの全面にblockSampleA(/src/main/resources/assets/samplemod/textures/blocks/blockSampleA.png)を適用
{ "parent": "block/cube_all", "textures": { "all": "samplemod:blocks/blockSampleA" } }
Item Model
- 置き場所
Block: /src/main/resources/assets/<domain>/models/item/<blockmodelname>.json
Item: /src/main/resources/assets/<domain>/models/item/<itemname>.json
- 通常ブロック(blockSampleA.json)
モデルはblockSampleA(/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)
テクスチャはitemSampleA(/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 ] } } }
BlockState 解説
- variantの中身
・プロパティなしのブロックの場合
"normal": { "model": "<domain>:<blockname>" }
・プロパティありのブロックの場合
"<prop>=<value>": { "model": "<domain>:<blockname>" }
- modelの指定
・<blockname>
「assets/minecraft/models/block/<blockname>.json」を指定
・<domain>:<blockname>
「/src/main/resources/assets/<domain>/models/block/<blockname>.json」を指定