ガイド

Minecraftのテクスチャパックで3Dアイテムと独自モデルを作る方法

Minecraft Java版のブロックやアイテムの形は、そのモデルで決まります。リソースパックの中にある、キューブを並べた小さなJSONファイルです。テクスチャパックに新しいモデルを入れれば、MODもOptiFineもなしで形が変わります。平らな剣が3Dの剣になり、ブロックがハーフブロックや階段の段になります。Texture Pack Makerには、これをブラウザでできるモデルエディターがあります。アイテムの平らなスプライトを1クリックで3Dのキューブにし、キューブを1つずつ変えられ、ゲームのバージョンに必要なファイルを書き出します。統合版のしくみは違うので、下で説明します。

更新日:

Minecraftのモデルとは

Java版1.8以降では、ほとんどのブロックとアイテムをリソースパックのモデルファイルから描きます。

  • assets/minecraft/models/block/にはブロックのモデルが入っています(oak_slab.jsonなど)。blockstates/にあるブロックステートのファイルが、状態ごとにどのモデルを使うかを決めます。下付きか上付きのハーフブロック、横倒しの原木などです。
  • assets/minecraft/models/item/にはアイテムのモデルが入っています。ほとんどのアイテムは平らなモデル(item/generated)で、16×16のスプライトをゲームが自動で薄い形にします。1.21.4からは、assets/minecraft/items/のアイテム定義が、アイテムに表示するモデルを決めます。

モデルファイルの主な部分は4つです。

  • textures:モデルが使うテクスチャの名前。たとえば"oak_planks": "minecraft:block/oak_planks"です。particleは壊したときのパーティクルのテクスチャです。
  • elements:キューブ。それぞれ一方の角(from)から反対の角(to)までで、16 × 16 × 16のブロックのピクセル単位で表し、各軸-16から32まで使えます。rotationでキューブを回転できます。
  • faces:キューブの各面(down、up、north、south、west、east)に表示するテクスチャ、その範囲(uv)、そしてcullface。cullfaceは、その側を完全なブロックがふさいでいるときに面を描かない設定です。
  • display:インベントリ(gui)、手の中、地面、額縁(fixed)、頭の上で、モデルをどう回し、動かし、拡大縮小するか。

これはハーフブロックの形をしたキューブ1つだけのモデルで、モデルエディターが書き出すのと同じ並びです。エディターで作ったファイルには、インベントリだけでなくすべての表示場所の設定が入ります。

{
  "textures": {
    "oak_planks": "minecraft:block/oak_planks",
    "particle": "#oak_planks"
  },
  "elements": [
    {
      "from": [0, 0, 0],
      "to": [16, 8, 16],
      "faces": {
        "down": {
          "texture": "#oak_planks",
          "cullface": "down"
        },
        "up": {
          "texture": "#oak_planks"
        },
        "north": {
          "texture": "#oak_planks",
          "cullface": "north"
        },
        "south": {
          "texture": "#oak_planks",
          "cullface": "south"
        },
        "west": {
          "texture": "#oak_planks",
          "cullface": "west"
        },
        "east": {
          "texture": "#oak_planks",
          "cullface": "east"
        }
      }
    }
  ],
  "display": {
    "gui": {
      "rotation": [30, 225, 0],
      "translation": [0, 0, 0],
      "scale": [0.625, 0.625, 0.625]
    }
  }
}

手書きのモデルは、よく"parent"で別のモデルのテクスチャ、キューブ、表示設定を借ります。モデルエディターは単体で完結したファイルを書き出します。親モデルから読み込んだものはすべてコピーされるので、ほかのファイルに頼りません。

3Dアイテムを作る手順

  1. Texture Pack Makerを開き、遊んでいるバージョンのJavaパックを作ります。1.8以降に対応し、インベントリでアイテムを平らなままにするなら1.21.4以降が必要です。
  2. 一覧をItemsに切り替えて、ダイヤモンドの剣などのアイテムを開きます。PreviewタブでEdit shapeを押します。
  3. 3D item from spriteを選びます。平らな絵のピクセルがすべて、奥行き1ピクセルのキューブの一部になります。
  4. 形を変えます。3Dビューか一覧でキューブをクリックし、動かす、大きさを変える、コピーする、新しく追加するといった操作をします。Facesでは、面に別のテクスチャやテクスチャの別の部分を割り当てます。
  5. Displayを開き、インベントリ、一人称と三人称、地面、額縁、頭の上でのモデルを確認します。おかしく見えるところは回転、位置、大きさを直します。
  6. 必要なら(1.21.4以降):ModelタブでFlat in the inventoryをオンにすると、インベントリでは平らなアイコンのまま、手に持つと3Dモデルになります。
  7. Doneを押し、パックを.zipで書き出してresourcepacksフォルダーに入れ、ゲームで確かめます。
アイテム一覧でダイヤモンドの剣を選んだテクスチャエディター。ピクセルエディターに16×16のスプライト、Previewタブに平らな剣と、その下の「Edit shape」ボタン。
Previewタブにアイテムを表示し、「Edit shape」でモデルエディターを開きます。
キューブのない平らなスプライト、ダイヤモンドの剣を開いたモデルエディター。3Dビューと「Model」タブに、スタート地点「3D item from sprite」「Full cube」「Slab」「Cross (plant)」「Empty」。
平らなアイテムはキューブがない状態から始まります。「3D item from sprite」を選びます。
奥行き1ピクセルのキューブ19個でできた3Dのダイヤモンドの剣。一覧でキューブ5を選び、3Dビューに移動用の矢印、「Cube」タブに位置(9, 11, 7.5)と大きさ(5 × 1 × 1)。
スプライトが19個のキューブになります。1つ選んで動かしたり、大きさや面を変えたりできます。

「3D item from sprite」のしくみ

平らなアイテムは1枚の絵、つまりスプライトで、ふつうは16×16ピクセルです。このスタート地点は透明でないピクセルをすべて拾い、奥行き1ピクセルのキューブにします。位置はゲームの平らなアイテムと同じく中央(Z軸の7.5から8.5)です。横に並んだピクセルは1本の長いキューブにまとめ、同じ並びの行が縦に続けば長方形にまとめるので、ダイヤモンドの剣はピクセルごとではなく19個のキューブになります。隣のピクセルで完全に隠れる面は省きます。

各面にはスプライトの対応するピクセルが表示されます。3行目の5~7列に並んだ3つのピクセルは、次のキューブになります。

{
  "from": [5, 12, 7.5],
  "to": [8, 13, 8.5],
  "faces": {
    "down": {
      "uv": [5, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "up": {
      "uv": [5, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "north": {
      "uv": [8, 3, 5, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "south": {
      "uv": [5, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "west": {
      "uv": [5, 3, 6, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "east": {
      "uv": [7, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    }
  }
}

表(south)はピクセルをそのまま、裏(north)は絵を裏から見たように左右反転して表示します。キューブはアイテム自身のテクスチャ(#layer0)を使い続けるので、スプライトを塗り直せば3Dアイテムの色も変わります。ピクセルを足したり消したりしたときは、もう一度3D item from spriteを選ぶまで形は変わりません。ポーションや革の防具のように複数のレイヤーがあるアイテムは、レイヤーごとにキューブができ、ゲームによる色付けもそのまま残ります。

そこから自分らしく仕上げましょう。

  • 刃を厚くする:刃のキューブを選び、Zの位置と大きさを、たとえば7.5と1から7と2に変えます。
  • +ボタン(またはNキー)でつばや宝石のキューブを足し、Faces > Changeで面に別のテクスチャを割り当てます。
  • Rotationでキューブを回転します。Minecraft 1.21.6より前は1つの軸だけで、-45°、-22.5°、0°、22.5°、45°のどれかです。エディターはバージョンで使える角度だけを出します。
  • どの変更もCtrl+Zで元に戻せます。

持ったときの見え方:Display

Displayタブでは、6か所でのモデルをプレビューできます。それぞれ回転(度)、位置(ピクセル、±80まで)、大きさ(1が標準、最大4)があります。

エディターの表示見える場所ファイル内の名前
Inventoryインベントリとホットバーgui
First person自分の手の中firstperson_righthand(左手は左右反転)
Third personほかのプレイヤーの手の中、またはF5の視点thirdperson_righthand
Ground地面に落としたときground
Item frame額縁の中fixed
Head頭にかぶったときhead

3D item from spriteはアイテム本来の表示設定を引き継ぐので、3Dの剣も平らな剣と同じように持ちます。Game’s defaultでその場所をゲームの値に戻し、No changeで設定を消します。Java版1.21.9では棚用のon_shelfが加わりました。エディターはゲームのモデルにある値をそのまま残します。

「Third person」を選んだ「Display」タブ。プレイヤーモデルが3Dのダイヤモンドの剣を持ち、右手の回転(0, -90, 55)、位置(0, 4, 0.5)、大きさ(0.85)の欄。
「Display」で、持つ、身につける、飾るときの見え方をプレビューしながら決めます。

インベントリでは平らなアイコンのままにする(1.21.4以降)

3Dパックの多くは、インベントリではおなじみの平らなアイコンを残し、手に持ったときだけ3Dモデルを見せます。Java版1.21.4からは、アイテム定義でアイテムの表示場所ごとにモデルを選べます。ModelタブでFlat in the inventoryをオンにすると、エディターは次のようにします。

  • 形を2つ目のモデルmodels/item/diamond_sword_3d.jsonとして保存し、平らなdiamond_sword.jsonはそのまま残します。
  • items/diamond_sword.jsonを書き出します。インベントリ(gui)、地面、額縁(fixed)では平らなモデル、それ以外では3Dモデルを表示します。
{
  "model": {
    "type": "minecraft:select",
    "property": "minecraft:display_context",
    "cases": [
      {
        "when": ["gui", "ground", "fixed"],
        "model": {
          "type": "minecraft:model",
          "model": "minecraft:item/diamond_sword"
        }
      }
    ],
    "fallback": {
      "type": "minecraft:model",
      "model": "minecraft:item/diamond_sword_3d"
    }
  }
}

1.21.4より前のバージョンにはアイテム定義がないため、アイテムはどこでも同じモデルになり、このスイッチは表示されません。

「Flat in the inventory」をオンにした「Model」タブ。インベントリ、地面、額縁では平らなアイコンのままになります。上部の表示はitem/diamond_sword_3d.jsonに変わっています。
「Flat in the inventory」(1.21.4以降)は、3Dの形を手に持つ用の2つ目のモデルとして保存します。

ブロックの形を変える

ブロックも同じです。Previewタブにブロックを表示し、Edit shapeを押します。エディターは、表示している状態でブロックが使うモデルを開き、上のメニューにはほかのモデル(上付きのハーフブロックや2枚重ねなど)が並びます。ゲームのモデルをそのまま使うか、Full cube、Slab、Cross (plant)、Emptyから始めて、キューブを足し、動かし、大きさを変えます。石を階段の段にするなら、Slabから始めてキューブを1つ足すだけです。

階段の段の形にした石ブロックのモデル。ハーフブロックのような16×8×16のキューブと、その半分の上に置いた16×8×8のキューブ。「Cube」タブに位置と大きさ。
段の形にした石:スタート地点「Slab」とキューブ1つ。
  • 共有されるモデル:同じモデルファイルを使うブロックもあります。編集中のモデルをほかのブロックも使っていると、エディターがそのブロックを教えてくれます。そちらも一緒に変わります。
  • アイテムは別扱い:手に持ったハーフブロックのように、ブロックのモデルを表示するアイテムは、アイテムを編集すると専用のアイテムモデルができます。ブロックの形は変わりません。
  • 変わるのは見た目だけ:当たり判定、衝突、光はゲームのコードで決まります。段の形にした石ブロックも完全なブロックとして体を止め、隣のブロックは接している面を隠したままなので、すき間から向こうが見えてしまうことがあります。
  • コードで描かれるブロック:チェスト、ベッド、看板、旗など、ゲーム自身が描くブロックにはブロックモデルがないので、Edit shapeは出ません。盾のようにコードで描かれるアイテムにはモデルを付けられ、その見た目を置き換えます。

石などいくつかのブロックは、2つのモデル(石と左右反転したコピー、それぞれ向きを回したもの)からランダムに選ばれます。ModelタブのUse for every random variantを使うと、ブロックのブロックステートファイルを書き出して、すべてに自分の形を使います。"y": 180の項目でランダムな向きが残り、weightは各項目が選ばれる頻度です。

{
  "variants": {
    "": [
      {
        "model": "minecraft:block/stone",
        "weight": 2
      },
      {
        "model": "minecraft:block/stone",
        "y": 180,
        "weight": 2
      }
    ]
  }
}

パックに入るファイル

変えるものパックに入るファイル
3Dアイテムmodels/item/diamond_sword.json
3Dアイテム(インベントリでは平ら、1.21.4以降)models/item/diamond_sword_3d.jsonとitems/diamond_sword.json
ブロックの形models/block/oak_slab.json
ランダムな種類すべてのブロックの形models/block/stone.jsonとblockstates/stone.json

パスはすべてassets/minecraft/の中です。1.8以降のJava版ならどれも同じファイルになり、インベントリで平らにするのだけは1.21.4以降が必要です。エディターがアイテム定義やブロックステートを加えるのはゲームが必要とするときだけで、開いたパックにすでにあるモデルファイルは残り、編集もできます。書き出すときには、すべてのモデルをゲームのバージョンに照らしてチェックし、読み込めないものがあれば警告します。

バージョンごとの変更点

バージョンモデルについての変更
1.8ブロックとアイテムのモデルが、リソースパックで差し替えられるJSONファイルになりました。キューブは1つの軸で-45°、-22.5°、0°、22.5°、45°に回せます。
1.13テクスチャのフォルダー名がblocksとitemsからblockとitemに変わり、モデル内のテクスチャ名も変わりました。
1.15.2gui_lightで、インベントリのアイコンを横から(ブロック向け)照らすか正面から(アイテム向け)照らすかを決められるようになりました。
1.19.3モデルのテクスチャは、ゲームのテクスチャアトラスが読むフォルダー(textures/block/やtextures/item/など)に置く必要があります。
1.21.4items/のアイテム定義がアイテムのモデルを選びます。表示場所ごとに選ぶこともできます。
1.21.6キューブを-45°から45°の好きな角度で回せるようになりました。
1.21.9表示場所on_shelfが加わりました。
1.21.11キューブを複数の軸で同時に、好きな角度で回せるようになりました。

モデルエディターは、パックの対象バージョンのルールに従います。

入れて試す

  1. Doneでモデルエディターを閉じ、Exportでパックを.zipとして書き出します。
  2. Minecraftで設定… > リソースパック… > パックフォルダーを開くを開き、zipを入れて(解凍しません)、パックをほかのパックより上の選択中に移します。
  3. アイテムを持ち、F5で三人称にし、地面に落とし、額縁に入れて、すべての表示を確かめます。
  4. モデルを変えたら書き出し直してzipを置き換え、ゲーム内でF3 + Tを押してパックを再読み込みします。

くわしくはリソースパックの入れ方とテクスチャパックが反映されないときをご覧ください。

統合版(Bedrock Edition)

統合版のパックはしくみが違い、モデルエディターが作るのはJava版のモデルだけです。

  • ブロック:統合版のリソースパックでは、ゲームのブロックの形を変えられません。独自の形のブロックは新しいブロックで、ビヘイビアーパックとジオメトリファイルを含むアドオンで追加します。
  • 手に持つアイテム:統合版ではアタッチャブル(attachables)で、手に持ったアイテムに3Dモデルを付けます。統合版のジオメトリとアニメーションを使うリソースパックのファイルです。Texture Pack Makerでは作れませんが、Blockbenchで作れます。
  • 出発点として:モデルエディターのメニューのDownload as Bedrock geometryで、モデルを.geo.jsonファイル(フォーマット1.12.0、ボーン1つ、すべてのキューブ)として保存し、Blockbenchやアドオンに読み込めます。統合版のジオメトリはテクスチャを1枚しか使わないので、各面は自分のテクスチャ上の位置をそのまま保ちます。

統合版のパックでは、Edit shapeを押すとエディターを開く代わりにこの説明が出ます。テクスチャを描くのはいつもどおりできます。

よくある問題

  • 紫と黒の面:ゲームが見つけられないテクスチャを面が使っています。texturesにない名前(#…)、ゲームにもパックにもないファイル、1.19.3以降ならアトラスのフォルダー外のテクスチャです。Modelタブに、どのキューブの問題かとともに一覧が出ます。
  • モデルの代わりに紫と黒のキューブ:ファイルが読み込まれていません。よくある原因は、壊れたJSON、-16~32からはみ出したキューブ、そのバージョンで使えない回転です。ゲームのログにファイル名が出ます。
  • モデルがまったく出ない:パックが選択中でほかのパックより上にあるか、ファイルが置き換えるモデルとまったく同じ名前とフォルダーか、1.21.4以降なら新しいモデル(_3dのコピーなど)を指すアイテム定義があるかを確かめます。
  • 手では良いのにインベントリで変:Inventoryの表示を調整するか、インベントリの光(横か正面)を切り替えるか、Flat in the inventoryをオンにします。
  • キューブが多すぎる:キューブが増えるほど描く面が増えます。手に持つアイテムならほとんど影響しませんが、何千個も置くブロックはシンプルにしましょう。3D item from spriteがまとめたキューブは分けずに使いましょう。
  • 角度が使えない:1.21.6より前は、キューブは1つの軸で22.5°刻み、45°までしか回せません。90°回したいならキューブの2つの軸の大きさを入れ替え、それ以外の形はキューブを増やして作ります。

パック全般の直し方:テクスチャパックが反映されない?原因と直し方。

よくある質問

3DアイテムにはOptiFineやMODが必要ですか?

いいえ。Java版のリソースパックは1.8からブロックとアイテムのモデルを差し替えられるので、モデルファイルの入ったパックは通常のゲームで動きます。その種類のアイテムがすべて変わります。

名前を変えたアイテムだけを3Dにできますか?

モデルを差し替えるだけではできません。名前を変えたアイテムだけを変えるパックは、OptiFineのCustom Item Textures(CIT)か、それを読むMODを使います。1.21.4からはアイテム定義でcustom_model_dataによってモデルを選ぶこともでき、サーバーや配布マップの作者がコマンドで設定します。モデルエディターは、その種類のアイテムをすべて変えます。

統合版で3Dアイテムを作れますか?

はい。Blockbenchなどで作ったアタッチャブルを統合版のリソースパックに入れます。このモデルエディターが作るのはJava版のモデルですが、出発点としてモデルを統合版のジオメトリでダウンロードできます。統合版のリソースパックでは、ゲームのブロックの形は変えられません。

Blockbenchで作ったモデルは使えますか?

はい。BlockbenchからエクスポートしたJava版のブロックやアイテムのモデルは、普通のモデルファイルです。置き換えるモデルと同じ名前でパックに入れ、Open a packでパックを開けば、ファイルはそのまま残り、モデルエディターで開いて変更できます。

元の形に戻すには?

モデルエディターのメニューでPut back the original modelを選びます。そのモデルのファイルがパックから消え、ゲームのモデルに戻ります。

スマホで3Dアイテムを作れますか?

はい。スマホでは3Dビューがパネルの上に表示され、タッチで操作します。ただしパックはJava版用なので、遊ぶのはパソコンです。