Minecraft Wiki
228行目: 228行目:
 
{| class="wikitable" data-description="ambientocclusion example"
 
{| class="wikitable" data-description="ambientocclusion example"
 
|-
 
|-
| <code>"ambientocclusion": true</code>
 
 
| <code>"ambientocclusion": false</code>
 
| <code>"ambientocclusion": false</code>
 
| <code>"ambientocclusion": true</code>
 
|-
 
|-
 
| [[ファイル:Ambientoccluison true.png|400px]]
 
| [[ファイル:Ambientoccluison true.png|400px]]

2017年7月22日 (土) 10:06時点における版

Book and Quill
このページの内容は翻訳されていません。 
あなたが内容を翻訳してみませんか?

ブロックモデル (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: ブロックのモデルファイルのパス。assets/minecraft/models/block で始まる。
        •  x: x 軸のローテーション。90度単位で設定しなければならない。
        •  y: y 軸のローテーション。90度単位で設定しなければならない。
        •  uvlock: true もしくは false(デフォルト)に設定できる。true にすると、上記の  x y タグでテクスチャがローテーションしない。
    •  multipart: variant の代わりに用いる。ブロック情報に基づいて複数のモデルを重ねることができる。
      •  A case 場合。その場合でモデルを適用するかを決定する。
        •  when: モデルを適用するために必要な case のリスト。設定していなければ常時適用される。
          •  OR: これに含まれている case のどれかに一致する場合、モデルが適用される。他の case と併用することはできない。
            •  A condition case のリスト。全て一致する必要がある。
              •  A case ブロック情報の一つに一致する単一の case。|で区切ることで複数の case を設定できる。
          •  A case ブロック情報の一つに一致する単一の case。|で区切ることで複数の case を設定できる。 OR: タグとは併用できない。
        •  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: ブロックのモデルファイルのパス。assets/minecraft/models/block で始まる。
          •  x: x 軸のローテーション。90度単位で設定しなければならない。
          •  y: y 軸のローテーション。90度単位で設定しなければならない。
          •  uvlock: true もしくは false(デフォルト)に設定できる。true にすると、上記の  x y タグでテクスチャがローテーションしない。
"uvlock": true "uvlock": false
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の分だけである。
    •  textures: モデルに適用されるテクスチャ。テクスチャはassets/minecraft/texturesで始まるか、他の変数を使用できる。
      •  particle: パーティクルに使用するテクスチャ。ブロックを破壊したときに使用される。
        注意:modelフォルダにないブロックのパーティクルは変更できない。
      •  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の回転
          •  origin: [x, y, z]の座標に従って、回転の中心を設定する。デフォルトでは[8, 8, 8]である。
          •  axis: 回転の軸。"x", "y" 、もしくは"z"のどれかで指定する。
          •  angle: 回転の角度。45度から-45度が設定できる。22.5度間隔でなければならない。デフォルトでは0である。
          •  rescale: ブロック全体で面をスケールするかどうか。trueかfalseに設定できる。デフォルトではfalseである。
        •  shade: 影を描画するかどうか(デフォルトではtrue)
        •  faces: キューブの面。記述されていなければ描画されない。
          •  down, up, north, south, west or east: 面のプロパティ
            •  uv: テクスチャを適用する範囲。[x1, y1, x2, y2]はその座標である。設定されていなければデフォルトの値が適用される。 x1x2の値を入れ換えると (例えば、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を使用して色をつけるかどうか。これはプログラムに直接書き込まれているため変更できない。デフォルトでは染色が使用されないため、どの番号でも使用できる。特定のブロックにしか使われず、それ以外のブロックでこれを設定しても反映されない。
"ambientocclusion": false "ambientocclusion": true
Ambientoccluison true Ambientocclusion false

"ambientocclusion"の比較。比較として隣にtrueにしたシルバーフィッシュ入りの石を並べた。falseにした石が少し明るく見える。

例:立てた松明

分かりやすくするためにここでは、地面に立てた松明のみ説明する。これはtorch.jsonnormal_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
Block model rescale true Block model 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: 指定した面に他のブロックが隣接した場合、その面を描画しなくする。downupnorthsouthwesteastがある。
            •  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.213w36a花が草のようにランダムに中心からずれるようになった。
1.814w06aブロックのモデルが変更できるようになった。
14w07aRewrote 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.
14w11aLighting on solid block no longer makes inner sections completely black.
14w11bGeneric blocks now load models instead of pre-defined shapes.
April 12, 2014TheMogMiner posts about upcoming changes to the model format.
14w17aConverted most of the remaining static blocks to the model format.
Added "rotateVariantTextures" to preserve uv details through rotation.
14w25aRemoved 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フォルダであった。
アイテムのモデルが変更できるようになった。
14w27aReplaced 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.
14w27bThe block state files now support an array of models allowing for random models.
14w30aアイテムモデルに"builtin/entity"が追加された。
1.8.2pre5"translation"タグの値が-24から24でなければならなくなった。
"scale"タグの値が4以下でなければならなくなった。
1.915w31aUV 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.
設定から代替ブロックが削除された。