(→ブロック情報) |
|||
228行目: | 228行目: | ||
{| class="wikitable" data-description="ambientocclusion example" |
{| class="wikitable" data-description="ambientocclusion example" |
||
|- |
|- |
||
⚫ | |||
| <code>"ambientocclusion": false</code> |
| <code>"ambientocclusion": false</code> |
||
⚫ | |||
|- |
|- |
||
| [[ファイル:Ambientoccluison true.png|400px]] |
| [[ファイル:Ambientoccluison true.png|400px]] |
2017年7月22日 (土) 10:06時点における版
ブロックモデル (Block models) はゲーム内のすべてのブロックを描画するために使用される。アイテムモデル (Item models) はプレイヤーが持っているときや頭(ヘルメットや帽子のように)につけているとき、地面に落ちているときやインベントリにあるとき、そして額縁や防具立てに持たせたときなどに使用される。幾つかのブロックはブロック情報 (Block states) に合わせて複数のモデルを持つ。モデルファイルとブロック情報ファイルはともに .json
形式のファイルで、それぞれ model
フォルダと blockstates
フォルダに保存されている。インベントリ内におけるアイコンもこれらのファイルでできている。
ブロック情報
一部のブロックには幾つかのバリエーションがある(開閉するドアなど)。そのため、各ブロックには独自のブロック情報ファイルがあり、既存の variant をすべてリストし、対応するモデルにリンクする。ブロックは同時に複数のモデルの集合体にもなり得る。この場合、"multipart" と呼ばれる。モデルはブロック情報に応じて使用される。ファイルは assets/minecraft/blockstates
に保存されている。ファイルはその名前に基づいて直接使用されるため、既存のものとは別の名前を持つものは影響しない。
- ルートタグ
- variants: ブロックのすべての variant
- A variant: variant の名前。カンマで区切られた関連ブロックの状態で構成される。variant が1つのブロックには
normal
となる。それぞれの variant は"1つのモデル"もしくは"複数のモデル"を持つことができ、それらのプロパティを含む。複数のモデルを設定するとそれらの中からランダムに選ばれ、各オプションは別々の タグで指定される。- A model: 1つのモデルのプロパティ。同じ variant に複数のモデルを使用している場合に用いる。
- model: ブロックのモデルファイルのパス。
assets/minecraft/models/block
で始まる。 - x: x 軸のローテーション。90度単位で設定しなければならない。
- y: y 軸のローテーション。90度単位で設定しなければならない。
- uvlock:
true
もしくはfalse
(デフォルト)に設定できる。true
にすると、上記の x と y タグでテクスチャがローテーションしない。 - weight: モデルが適用される確率。デフォルトでは1 (= 100%) である。同じ variant に複数のモデルを設定している場合は、個々のモデルの weight を全てのモデルの weight の合計で割ることによって確率が計算される(例えば、3つのモデルを設定していて、それぞれの weight が 1,1,2 だった場合、それらの合計は 4(1 + ! + 2) である。各モデルが適用される確率は 4:1/4、1/4、2/4、もしくは 25%、25%、50% である)
- model: ブロックのモデルファイルのパス。
- model: ブロックのモデルファイルのパス。
assets/minecraft/models/block
で始まる。 - x: x 軸のローテーション。90度単位で設定しなければならない。
- y: y 軸のローテーション。90度単位で設定しなければならない。
- uvlock:
true
もしくはfalse
(デフォルト)に設定できる。true
にすると、上記の x と y タグでテクスチャがローテーションしない。
- A model: 1つのモデルのプロパティ。同じ variant に複数のモデルを使用している場合に用いる。
- A variant: variant の名前。カンマで区切られた関連ブロックの状態で構成される。variant が1つのブロックには
- multipart: variant の代わりに用いる。ブロック情報に基づいて複数のモデルを重ねることができる。
- A case 場合。その場合でモデルを適用するかを決定する。
- when: モデルを適用するために必要な case のリスト。設定していなければ常時適用される。
- OR: これに含まれている case のどれかに一致する場合、モデルが適用される。他の case と併用することはできない。
- A condition case のリスト。全て一致する必要がある。
- A case ブロック情報の一つに一致する単一の case。|で区切ることで複数の case を設定できる。
- A condition case のリスト。全て一致する必要がある。
- A case ブロック情報の一つに一致する単一の case。|で区切ることで複数の case を設定できる。 OR: タグとは併用できない。
- OR: これに含まれている case のどれかに一致する場合、モデルが適用される。他の case と併用することはできない。
- apply: 適用するモデル。"1つのモデル"もしくは"複数のモデル"を持つことができ、それらのプロパティを含む。複数のモデルを設定するとそれらの中からランダムに選ばれ、各オプションは別々の タグで指定される。
- A model: モデルのプロパティ。同じ variant に複数のモデルを設定する場合に用いる。
- model: ブロックのモデルファイルのパス。
assets/minecraft/models/block
で始まる。 - x: x 軸のローテーション。90度単位で設定しなければならない。
- y: y 軸のローテーション。90度単位で設定しなければならない。
- uvlock:
true
もしくはfalse
(デフォルト)に設定できる。true
にすると、上記の x と y タグでテクスチャがローテーションしない。 - weight: モデルが適用される確率。デフォルトでは1 (= 100%) である。同じ variant に複数のモデルを設定している場合は、個々のモデルの weight を全てのモデルの weight の合計で割ることによって確率が計算される(例えば、3つのモデルを設定していて、それぞれの weight が 1,1,2 だった場合、それらの合計は 4(1 + ! + 2) である。各モデルが適用される確率は 4:1/4、1/4、2/4、もしくは 25%、25%、50% である)
- model: ブロックのモデルファイルのパス。
- model: ブロックのモデルファイルのパス。
assets/minecraft/models/block
で始まる。 - x: x 軸のローテーション。90度単位で設定しなければならない。
- y: y 軸のローテーション。90度単位で設定しなければならない。
- uvlock:
true
もしくはfalse
(デフォルト)に設定できる。true
にすると、上記の x と y タグでテクスチャがローテーションしない。
- A model: モデルのプロパティ。同じ variant に複数のモデルを設定する場合に用いる。
- when: モデルを適用するために必要な case のリスト。設定していなければ常時適用される。
- A case 場合。その場合でモデルを適用するかを決定する。
- variants: ブロックのすべての variant
"uvlock": true
|
"uvlock": false
|
例:松明
松明は複数のvariantを持ち、地面もしくは壁に4方向に設置することができる。この例はassets/minecraft/blockstates
にあるtorch.json
ファイルから取得したものである。
File: torch.json { "variants": { "facing=up": { "model": "normal_torch" }, "facing=east": { "model": "normal_torch_wall" }, "facing=south": { "model": "normal_torch_wall", "y": 90 }, "facing=west": { "model": "normal_torch_wall", "y": 180 }, "facing=north": { "model": "normal_torch_wall", "y": 270 } } }
"facing=up"
は、地面に立っている状態で、"normal_torch"
に対応する。松明は4つの側面すべてに設置できる。これにより、各側面に1つ、variantが必要である。それらは"facing=east"
、 "facing=west"
、"facing=south"
、そして"facing=north"
である。いずれも"normal_torch_wall"
のモデルを使用していて、"y"
軸を中心に90度ずつローテーションさせて異なる面に設置される。
例: 草ブロック
草ブロックは2つのvariantを持ち、最初のモデルは4つの異なるモデルを持つ。この例は、assets/minecraft/blockstates
にあるgrass.json
ファイルから取得したものである。
File: grass.json { "variants": { "snowy=false": [ { "model": "grass_normal" }, { "model": "grass_normal", "y": 90 }, { "model": "grass_normal", "y": 180 }, { "model": "grass_normal", "y": 270 } ], "snowy=true": { "model": "grass_snowed" } } }
雪の被っていない草ブロック ("snowy=false"
)は、4つのモデルを持つ。それらはすべて同じモデルであるが、90度の倍数でローテーションさせている。いずれにもweight
タグは使用されていないので、それぞれ25%の確率で適用される。
例: オークのフェンス
オークのフェンスはmultipart
形式が使用されている。この例はassets/minecraft/blockstates
にあるfence.json
から取得したものである。
{ "multipart": [ { "apply": { "model": "oak_fence_post" }}, { "when": { "north": "true" }, "apply": { "model": "oak_fence_side", "uvlock": true } }, { "when": { "east": "true" }, "apply": { "model": "oak_fence_side", "y": 90, "uvlock": true } }, { "when": { "south": "true" }, "apply": { "model": "oak_fence_side", "y": 180, "uvlock": true } }, { "when": { "west": "true" }, "apply": { "model": "oak_fence_side", "y": 270, "uvlock": true } } ] }
最初の、postのモデルは常時適用されるが、他のものは特定の条件が満たされたときのみ使用される。sideは隣に異なるブロックがある場合にのみ適用される。1つのpostモデルと全ての側面にsideモデルがあるので、それらをローテーションさせることにより、必要なモデル数を2つに減らすことができる。1.8で5つのモデルと16のvariantが使用されていたことと比べるとこれは大きな改善である。
例: レッドストーンワイヤー
レッドストーンワイヤーのモデルはmultipart
形式を使用している。この例はassets/minecraft/blockstates
にあるredstone_wire.json
から取得したものである。
{ "multipart": [ { "when": { "OR": [ {"north": "none", "east": "none", "south": "none", "west": "none"}, {"north": "side|up", "east": "side|up" }, {"east": "side|up", "south": "side|up" }, {"south": "side|up", "west": "side|up"}, {"west": "side|up", "north": "side|up"} ]}, "apply": { "model": "redstone_dot" } }, { "when": { "OR": [ { "north": "side|up" }, { "north": "none", "east": "none", "south": "side|up", "west": "none" } ]}, "apply": { "model": "redstone_side0" } }, { "when": { "OR": [ { "south": "side|up" }, { "north": "side|up", "east": "none", "south": "none", "west": "none" } ]}, "apply": { "model": "redstone_side_alt0" } }, { "when": { "OR": [ { "east": "side|up" }, { "north": "none", "east": "none", "south": "none", "west": "side|up" } ]}, "apply": { "model": "redstone_side_alt1", "y": 270 } }, { "when": { "OR": [ { "west": "side|up" }, { "north": "none", "east": "side|up", "south": "none", "west": "none" } ]}, "apply": { "model": "redstone_side1", "y": 270 } }, { "when": { "north": "up" }, "apply": { "model": "redstone_up" } }, { "when": { "east": "up" }, "apply": { "model": "redstone_up", "y": 90 } }, { "when": { "south": "up" }, "apply": { "model": "redstone_up", "y": 180 } }, { "when": { "west": "up" }, "apply": { "model": "redstone_up", "y": 270 } } ] }
このモデルは動的に作られる。最初の条件では、redstone_dot
モデルを追加する必要がある。これは4つのsideが全て"none"になっているか、角を形成する2つのsideの両方がupまたはsideに設定されている必要がある。
最後のcaseは"west"
が"up"
かどうかを尋ねる1つの条件のみをテストし、そうであればredstone_up
を適用する。
Block models
assets/minecraft/models/block
フォルダは指定されたすべてのvariantを保持する。ファイルの名前は自由に変更することができるが、blockstatesフォルダで使用しているものと一致させる必要がある。
- The root tag
- parent:
assets/minecraft/models
で始まる指定された別のモデルを適用する。"parent"
と"elements"
が併用されている場合、後者が優先される。- 指定したアイコンから作成されたモデルを使用するには、
"builtin/generated"
を設定できる。最初のレイヤーのみが適用され、ローテーションはblockstatesでのみ行われることに注意
- 指定したアイコンから作成されたモデルを使用するには、
- ambientocclusion: ambient occlusionを使うかどうか(下図参照。デフォルトでは
true
) - display: アイテムとして表示する場所など
- thirdperson_righthand, thirdperson_lefthand, firstperson_righthand, firstperson_lefthand, gui, head, ground, or fixed: モデルの表示する場所。rotation(回転)、translation(平行移動)、表示倍率(scale)を保持する。fixedは額縁を参照し、残りは名前の状態を示す。translationはrotationの前に適用される。
- rotation:
[x, y, z]
の軸を中心にモデルを回転させる。 - translation:
[x, y, z]
の分だけモデルを平行移動させる。値が80を超えた場合、描画されるのは80の分のみである。値が-80未満の場合、描画されるのは-80の分だけである。 - scale: モデルの表示倍率(scale)。
[x, y, z]
の倍率で設定される。値が4を超えた場合、描画されるのは4の分だけである。
- rotation:
- thirdperson_righthand, thirdperson_lefthand, firstperson_righthand, firstperson_lefthand, gui, head, ground, or fixed: モデルの表示する場所。rotation(回転)、translation(平行移動)、表示倍率(scale)を保持する。fixedは額縁を参照し、残りは名前の状態を示す。translationはrotationの前に適用される。
- textures: モデルに適用されるテクスチャ。テクスチャは
assets/minecraft/textures
で始まるか、他の変数を使用できる。- particle: パーティクルに使用するテクスチャ。ブロックを破壊したときに使用される。
注意:modelフォルダにないブロックのパーティクルは変更できない。 - A texture variable: テクスチャの変数(#で始まるラベル)を指定する
- particle: パーティクルに使用するテクスチャ。ブロックを破壊したときに使用される。
- elements: モデルのすべての要素(element)。立方体、直方体、四角形の平面のみ使用できる。
"parent"
とは併用できない。- An element
- from: キューブの始点。座標は
[x, y, z]
で表され、値は-16から32でなければならない。toとfromの差がキューブのサイズとなる。 - to: キューブの終点。座標は
[x, y, z]
で表され、値は-16から32でなければならない。toとfromの差がキューブのサイズとなる。 - rotation: elementの回転
- origin:
[x, y, z]
の座標に従って、回転の中心を設定する。デフォルトでは[8, 8, 8]
である。 - axis: 回転の軸。
"x"
,"y"
、もしくは"z"
のどれかで指定する。 - angle: 回転の角度。45度から-45度が設定できる。22.5度間隔でなければならない。デフォルトでは0である。
- rescale: ブロック全体で面をスケールするかどうか。trueかfalseに設定できる。デフォルトではfalseである。
- origin:
- shade: 影を描画するかどうか(デフォルトでは
true
) - faces: キューブの面。記述されていなければ描画されない。
- down, up, north, south, west or east: 面のプロパティ
- uv: テクスチャを適用する範囲。
[x1, y1, x2, y2]
はその座標である。設定されていなければデフォルトの値が適用される。x1
と
x2
の値を入れ換えると (例えば、
0, 0, 16, 16
から
16, 0, 0, 16
にすると)テクスチャが反転する。UVは任意であり、設定されていなければelementの位置に基づいて自動的に生成される。
- texture: テクスチャ。
#
の付いた変数で指定する。 - cullface: ここで指定された位置にブロックが他のブロックと接触した場合、その面の描画をしない。
down
,up
,north
,south
,west
,もしくはeast
に設定できる。また、どの面が光量を使用して照らされるかを指定でき、設定されていなければデフォルトのものになる。 - rotation: 適用したテクスチャを回転させる。0、90、180、270度で設定できる。デフォルトでは0である。rotationはテクスチャのどの部分が使用されるかには影響しない。代わりに選択されたテクスチャの頂点の順列になる(暗黙的に、もしくは明確に
uv
で選択されている) - tintindex: tintindexを使用して色をつけるかどうか。これはプログラムに直接書き込まれているため変更できない。デフォルトでは染色が使用されないため、どの番号でも使用できる。特定のブロックにしか使われず、それ以外のブロックでこれを設定しても反映されない。
- uv: テクスチャを適用する範囲。
- down, up, north, south, west or east: 面のプロパティ
- from: キューブの始点。座標は
- An element
- parent:
"ambientocclusion": false
"ambientocclusion": true
"ambientocclusion"の比較。比較として隣にtrueにしたシルバーフィッシュ入りの石を並べた。falseにした石が少し明るく見える。
例:立てた松明
分かりやすくするためにここでは、地面に立てた松明のみ説明する。これはtorch.json
とnormal_torch.json
によってできており、assets/minecraft/models/block
のフォルダに存在する。
File: torch.json
{
"ambientocclusion": false,
"textures": {
"particle": "#torch"
},
"elements": [
{ "from": [ 7, 0, 7 ],
"to": [ 9, 10, 9 ],
"shade": false,
"faces": {
"down": { "uv": [ 7, 13, 9, 15 ], "texture": "#torch" },
"up": { "uv": [ 7, 6, 9, 8 ], "texture": "#torch" }
}
},
{ "from": [ 7, 0, 0 ],
"to": [ 9, 16, 16 ],
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }
}
},
{ "from": [ 0, 0, 7 ],
"to": [ 16, 16, 9 ],
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }
}
}
]
}
このモデルは通常の松明やレッドストーントーチに使用される。したがって、 "elements"
タグでは3つのelementが使用される。それぞれのキューブは2面のみ指定されているため、その面だけが描画される。"uv"
でテクスチャが適用される範囲を指定する。テクスチャの変数は"#torch"
で、パーティクルとキューブに使用されている。
File: normal_torch.json
{
"parent": "block/torch",
"textures": {
"torch": "blocks/torch_on"
}
}
このファイルは地面に立てられた松明のモデルを表す。これは既に定義された立てられた松明のモデルを読み込み、torch.json
のすべてのプロパティを継承する。このファイルは松明のテクスチャを指定するのみである。テクスチャ"torch_on"
は変数"torch"
(#
除く)に割り当てられ、パーティクルやキューブに用いられる。
例: ほとんどのブロック
この例では、Minecraftのほとんどの通常ブロックの基本モデルについて記述する。これらのブロックはすべて同じ基本モデルを使用し、松明のようにテクスチャを適用する。
このモデルはcube.json
と定義され、assets/minecraft/models/block
フォルダ内に保存されている。
File: cube.json
{
"elements": [
{ "from": [ 0, 0, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"down": { "texture": "#down", "cullface": "down" },
"up": { "texture": "#up", "cullface": "up" },
"north": { "texture": "#north", "cullface": "north" },
"south": { "texture": "#south", "cullface": "south" },
"west": { "texture": "#west", "cullface": "west" },
"east": { "texture": "#east", "cullface": "east" }
}
}
]
}
"cullface": "down"
を使用すると、ブロックの下に別のブロックが存在する場合、その間は底面が描画されない。同じことが他の面にも適用される。
例:苗木
この例では、全ての苗木の基本モデルについて記述する。モデルはcross.json
で、テクスチャはそれぞれの苗木のモデル(例えばoak_sapling.json
)で指定される。両方ともassets/minecraft/models/block
フォルダに保存されている。
File: cross.json
{
"ambientocclusion": false,
"textures": {
"particle": "#cross"
},
"elements": [
{ "from": [ 0.8, 0, 8 ],
"to": [ 15.2, 16, 8 ],
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }
}
},
{ "from": [ 8, 0, 0.8 ],
"to": [ 8, 16, 15.2 ],
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }
}
}
]
}
苗木のモデルは2つの平面で構成され、それぞれ45度ローテーションさせている。したがって、originとaxisは特定の値にセットされている。angleは45度、"rescale"
はtrue
にセットされている。後者の場合、ローテーション前の軸上でモデルがスケールされ、ローテーション前と同じ空間を占める(比較画像参照)。
"rescale": true
"rescale": false
Item models
アイテムのモデルはブロックと違い、1つのアイテムに複数のモデルを適用することはできない。モデルのファイルはassets/minecraft/models/item
のフォルダに存在する。モデルの名前は直接コードに組み込まれており、変更することはできない。
- The root tag
- parent: ここで指定された別のモデルを読み込み、使用する。パスは
assets/minecraft/models
で始まる。 "parent"
と"elements"
の両方が存在する場合、後者の"elements"
が前者の"elements"
を上書きする形で用いられる。
- textures: モデルに使うテクスチャ。
assets/minecraft/textures
から指定するか、別のテクスチャ変数を用いる。
- layer#: アイテムのパスで指定する。これはインベントリに表示するアイコンを指定するのみである。通常は1つだけだがスポーンエッグのように複数のlayerを持つものがある。しかし、layerの数はアイテムごとに決まっている。
"builtin/generated"
とセットでのみ有効である。
- particle: パーティクルに用いるテクスチャ。食べ物を食べるときやバリアブロックのパーティクルに用いられる(バリアブロックを破壊する場合、常に
items/barrier.png
が使用される)。それ以外の場合は"layer0"が使用される。
- A texture variable: テクスチャの変数を決める。#で始まる。#の後は任意である。
- elements: モデルの要素(element)。立方体、直方体、もしくは四角形の平面のみ使用でき、
"parent"
と併用はできない。
- An element
- from: キューブの始点。[x, y, z]で座標を指定する。値は-16から32でなければならない、toとfromの差がキューブのサイズとなる。
- to: キューブの終点。[x, y, z]で座標を指定する。値は-16から32でなければならない、toとfromの差がキューブのサイズとなる。
- rotation: elementの回転(rotation)を決める
- origin: 回転の軸をセットする。
[x, y, z]
でその座標を決める。デフォルトでは[8, 8, 8]
である。
- axis: 回転の軸を指定する。
"x"
, "y"
、"z"
のいずれかである。
- angle: 回転させる角度。-45度から45度で、その間隔は22.5度でなければならない。デフォルトでは0である。
- faces: キューブの面。指定しなかった場合、描画されない。
- down, up, north, south, west or east: それぞれで指定された面のプロパティ。
- uv: テクスチャを使用する範囲。
[x1, y1, x2, y2]
はその座標である。指定しなかった場合、elementの位置に応じて設定される。0以下もしくは16以上になるとテクスチャの動作が矛盾する。xまたはyの値を入れ換えるとテクスチャも反転する。
- texture: 面に割り当てるテクスチャ。ファイル名ではなく、
#
で始まる変数を用いる。
- cullface: 指定した面に他のブロックが隣接した場合、その面を描画しなくする。
down
、up
、north
、 south
、west
、east
がある。
- rotation: テクスチャを回転させる。回転は90度ずつである。
- tintindex: tintindexを使用するかどうか。これはプログラムに直接組み込まれている。デフォルトでは使われていないため、任意の値で用いることができる(ただし、スポーンエッグの場合、0は最初の色、1は2番目の色を使用している)。これはポーションなど、一部のアイテムにしか使えない。
- display: インベントリや手に持ったとき、地面に落ちているときなどの表示
- thirdperson_righthand, thirdperson_lefthand, firstperson_righthand, firstperson_lefthand, gui, head, ground, or fixed: アイテムモデルの表示位置。回転(rotation)や平行移動(translation)、表示倍率(scale)は特定の状況に用いられる。fixedは額縁内における表示である。
- rotation: モデルを回転させる。
[x, y, z]
はその軸である。
- translation: アイテムモデルの相対的な表示位置。
[x, y, z]
はその座標である。-80から80まで有効である。
- scale: アイテムモデルの表示倍率。
[x, y, z]
はその軸である。4まで有効である。
- overrides: アイテムタグを持っている場合、それに応じて別のモデルを指定することができる。
- a case 単一のケース
- predicate: ケースを保持する。
- a case 単一のタグ。item tagsについては下記を参照。
- model: 使用するモデルのパス。
assets/minecraft/models/
を出発地点とする。ファイルの位置はitemでなくても構わない。
Item tags
幾つかのアイテムは追加のタグを利用でき、それに応じて複数のモデルを使用することができる。下記はそのリストである。
"angle"
: コンパスに用いられる。現在の角度を示す。値は0~1の間である。
"blocking"
: 盾に用いられる。盾を構えているかどうかに用いられる。構えている状態なら、1
である。
"broken"
: エリトラに用いられる。1
のとき、エリトラが壊れている状態である。
"cast"
: 釣竿に用いられる。竿を振ったとき、1
である。
"cooldown"
: コーラスフルーツとエンダーパールに用いられる。コーラスフルーツを食べた後やエンダーパールを投げた後の残りクールダウンを表す。値は0~1の間である。
"damage"
: 耐久値のあるアイテムに用いられる。0から1の間の値をとる。
"damaged"
: 耐久値のあるアイテムに用いられる。こちらは耐久値を消費しているかどうかの判定に用いられる。耐久タグがついてる場合、0ではない、"damage"
タグがついているかもしれない。
"lefthanded"
: 左利き用。
"pull"
: 弓の引き具合。0から1の値をとる。
"pulling"
: 弓を引いているかどうか。1
なら引いている。
"time"
: 時計に用いられる。現在の時間を表す。値は0~1の間である。
例: 松明
この例ではアイテムとしての松明を記述する。モデルのファイルはtorch.json
で、assets/minecraft/models/item
に存在する。
File: torch.json
{
"parent": "builtin/generated",
"textures": {
"layer0": "blocks/torch_on"
},
"display": {
"thirdperson": {
"rotation": [ -90, 0, 0 ],
"translation": [ 0, 1, -3 ],
"scale": [ 0.55, 0.55, 0.55 ]
},
"firstperson": {
"rotation": [ 0, -135, 25 ],
"translation": [ 0, 4, 2 ],
"scale": [ 1.7, 1.7, 1.7 ]
}
}
}
"parent"
タグでは"builtin/generated"
を使用している。そのため、アイテムとしてのモデルには2Dグラフィックが使用される。アイコンは"layer0"
で指定され、ブロックモデルで使用しているテクスチャもアイテムのアイコンに利用できる。松明のレイヤーは1つのみであり、それ以上追加することはできない。松明を一人称視点や三人称視点で視る場合、それぞれでモデルを回転させたり移動させたりスケーリングさせる必要がある。
例: 釣竿
この例では、1.9からの釣竿について記述する。モデルのファイルはfishing_rod.json
であり、assets/minecraft/models/item
内に存在する。
{
"parent": "item/handheld_rod",
"textures": {
"layer0": "items/fishing_rod_uncast"
},
"overrides": [
{
"predicate": {
"cast": 1
},
"model": "item/fishing_rod_cast"
}
]
}
このモデルでは、釣竿を振った場合、通常の釣竿の代わりに"item/fishing_rod_cast"
モデルが表示される。
History
Java Edition
1.7.2 13w36a 花が草のようにランダムに中心からずれるようになった。
1.8 14w06a ブロックのモデルが変更できるようになった。
14w07a Rewrote the model format. Instead of having just "planes", it now has "planes" and "cubes". The rotation of objects was also limited to one directional rotation per object in increments of 22.5 degrees.
14w11a Lighting on solid block no longer makes inner sections completely black.
14w11b Generic blocks now load models instead of pre-defined shapes.
April 12, 2014 TheMogMiner posts about upcoming changes to the model format.
14w17a Converted most of the remaining static blocks to the model format. Added "rotateVariantTextures"
to preserve uv details through rotation.
14w25a Removed the directional attribute from the uv definition and replaced it with explicit texture references. "textureFacing"
was replaced with "texture"
parameter which is prepended with the hash symbol (#).
"useAmbientOcclusion"の名前が"ambientocclusion"に変更された。 "rotateVariantTextures"の名前が"UV lock"に変更された。 "cull"の名前が"cullface"に変更された。 Rotation made more verbose, it is now more clear that it can only occur on a single axis. Example, the rotation for one of the two faces of the "cross"
model is now: "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
models/blocks/meshes
フォルダが削除され、モデルファイルはmodels/block
に保存されるようになった。blockstatesフォルダが追加された。これは以前models/block
フォルダであった。 アイテムのモデルが変更できるようになった。
14w27a Replaced block state names with data which better reflects the internal data. Does not yet reflect all data for some blocks. Will switch to using the actual stored data in a future version when numerical data values are completely dropped in favor of block states.
14w27b The block state files now support an array of models allowing for random models.
14w30a アイテムモデルに"builtin/entity"
が追加された。
1.8.2 pre5 "translation"タグの値が-24から24でなければならなくなった。 "scale"タグの値が4以下でなければならなくなった。
1.9 15w31a UV is now optional, and if not supplied it will automatically generate based on the element's position.
Different models/textures for different damage values, item states, and whether the player is left handed. This works on compasses, clocks, and anything that can have a durability bar. It also contains additional tags for bows and fishing rods. Models can be put together based on block state attributes, such as fences. As a result, the vanilla set of block models was reduced by almost 300 models. Block model JSON is now strict, comments and quoteless identifiers are not allowed. "display" tag defaults have changed, and the "thirdperson"
and "firstperson"
tags were replaced with "thirdperson_righthand"
, "thirdperson_lefthand"
, "firstperson_righthand"
, and "firstperson_lefthand"
. "parent" and "elements" tags can coexist now, though the top level elements tag overwrites all former ones. 設定から代替ブロックが削除された。
ヘルプ
メニュー画面
外観
事例
開発元
ゲームのカスタマイズ
エディション
Java
Bedrock
過去のタイトル
コンソール移植版
更新終了
その他
更新終了
Legacy Console
ゲーム
更新終了
映画
製作中
書籍
小説
- The Island
- The Crash
- The Lost Journals
- The End
- The Voyage
- The Shipwreck
- The Mountain
- The Dragon
製作中
- Mob Squad
- The Haven Trials
児童書
- Woodsword Chronicles
- Stonesword Saga
- Step into Reading series
その他メディア
- Minecraft Mini-Series
- Minecraft Magazine
- Dark Horse Comicsシリーズ
- Minecraft Card Game
- Builders & Biomes
- 大乱闘スマッシュブラザーズ SPECIAL
イベント
MINECON
MINECON Earth
MINECON Live
Minecraft Live
Minecraft Festival
公式商品
- Minecraftストア (J!NXのページ)
- LEGO Minecraft
- Mattelの商品
- AdventureChest
- Minecraft books
- Creeper Crunch
その他