提供: Minecraft Modding Wiki
移動先: 案内検索

前書き

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」を指定

Block Model 解説

Item Model解説