Minecraft Wiki

このページでは、リソースパックを用いてMinecraftのテクスチャを上書き・追加する方法について解説する。

全般[]

テクスチャファイルが存在しない時に使用されるテクスチャ。

テクスチャファイルが存在しない時に使用されるテクスチャ。

リソースパックでは、assets/<名前空間>/textures以下の適切な場所に画像ファイルを配置することでゲームで使用するテクスチャを上書き・追加することができる。

テクスチャファイルとして使用できる画像の拡張子は.pngのみである。

既存のテクスチャを上書きする場合、テクスチャファイルの解像度や画像形状を元の画像に合わせる必要はない。解像度を変更した画像や、一方向に引き伸ばしたような形状の画像であっても、描画の際に使用場所に適切に収まるように画像が貼り付けられる。

またブロックのテクスチャでは基本的には透明度が反映されず、全て不透明なピクセルとして描画される。例外的に、ガラスやトラップドアなどの透明な部分を持つブロックでは不透明度10%以下のピクセルを完全に透明に、10%以上のピクセルを完全に不透明に描画する仕様になっている。色付きガラスのように、不透明度が反映されるブロックもだる。

ブロック以外のあらゆるテクスチャにおいては、透明度を自由に設定できる。

「デフォルト」を含めすべてのリソースパックにファイルが存在しない場合、紫と黒のチェック柄で表示される。

また一部のテクスチャにおいては、.mcmetaファイルを使用することで特殊な仕様を設定することができる。以下、これらの設定について説明する。

アニメーション[]

ブロック、アイテム、パーティクル、絵画、額縁(エンティティ)、ステータス効果のアイコン、GUIのスプライトにはアニメーション効果を設定することができる。アニメーションを行うためには、各フレームのテクスチャを幅を揃えて縦に並べたうえで、アニメーションの設定を規定した.mcmetaファイルを添える必要がある。.mcmetaファイルの名前はアニメーションさせたいテクスチャと同名でなくてはならず、例えばstone.png をアニメーションさせたい場合.mcmeta ファイルは stone.png.mcmeta になる。

.mcmeta ファイルはテクスチャが同じパック・同じディレクトリに配置されている必要がある。.mcmetaファイルとテクスチャがそれぞれ別のパックから指定されていても効果はない。テクスチャに対応する .mcmeta がない場合、縦に並べたテクスチャが本来の形に圧縮されて使用される。

.mcmeta ファイルの構造は次の通り。

  • 最上位のオブジェクト。
    •  animation: アニメーションのデータ。
      •  interpolate: trueの場合、 frametimeが1より大きい場合にゲーム側で各フレームの間の補間画像を作成し滑らかに変化させる。デフォルトでは false である。
      •  width: 1フレーム分のテクスチャの幅。デフォルトでは使われていないが縦横が揃ってない場合に用いることで、看板のように縦横の揃ってないテクスチャでもアニメーションさせることができる。
      •  height: 1フレーム分のテクスチャの高さ。デフォルトでは使われていないが縦横が揃ってない場合に用いることで、看板のように縦横の揃ってないテクスチャでもアニメーションさせることができる。
      •  frametime: 各フレームの表示時間。ティック単位で設定でき、デフォルトでは 1 である。1以上に設定されていても、 interpolateを使用することで滑らかな表示が可能である。
      •  frames: フレームの表示順を規定するリスト。省略可能で、デフォルトでは画像の上側にあるフレームから順番に表示される。
        • 画像の一番上に描かれたフレームの番号を0とした時のフレーム番号。
        • 特定のフレームの表示時間を個別に設定するための追加情報。
          •  index: 画像の一番上に描かれたフレームの番号を0とした時のフレーム番号。
          •  time: 次のフレームに変わるまでの時間(ティック)。上記の frametimeを無視する。

プロパティ[]

../textures/misc../textures/gui/titleにあるテクスチャには、.mcmeta ファイルによって追加エフェクトを適用することができる。.mcmetaファイルの名前はアニメーションさせたいテクスチャと同名でなくてはならず、例えばpumpkinblur.png のプロパティファイルは pumpkinblur.png.mcmetaになる。

.mcmeta ファイルはテクスチャが同じパック・同じディレクトリに配置されている必要がある。.mcmetaファイルとテクスチャがそれぞれ別のパックから指定されていても効果はない。テクスチャに対応する .mcmeta がない場合はデフォルトの設定を読み込む。

この.mcmetaファイルは以下のJSON構造を持つ。

  • ルートタグ。
    •  texture: 追加効果のデータ。
      •  blur: テクスチャを滑らかにぼかすかどうか。デフォルトでは false である。
      •  clamp: shadow.png(影のテクスチャ)で使用される。false にするとエンティティの存在しているブロック一面にタイル状に敷き詰められる。デフォルトはfalse
      •  mipmaps: カスタムミップマップ値。

GUIのスプライト[]

テクスチャアトラスguiに抽出されるテクスチャ(普通textures/gui/sprite下に格納)は、.mcmetaファイルを使用することでスプライトを表示する際にどのように変形するかを設定できる。これは例えば、ボタンのテクスチャをGUI上でボタンに割り当てられた範囲の大きさに従って変形するなどの処理に使用される。

.mcmetaファイルの名前は対象のテクスチャと同名でなくてはならず、かつ対象と同じパック・同じディレクトリに配置されている必要がある。テクスチャに対応する .mcmeta がない場合はデフォルトの設定を読み込む。

この.mcmetaファイルは以下のJSON構造を持つ。

  • : 最上位のオブジェクト。
    •  scaling テクスチャの変形に関するデータ。
      •  type: 変形形式の種類。以下の値から選択する。
        stretch(デフォルト)- 要求の大きさまで画像をそのまま拡大する。追加フィールドはない。
        tile - 要求された範囲に画像を繰り返し並べる。
      •  width: この画像一つ分の画面上における横方向の大きさ。ピクセル数で指定する。
      •  height: この画像一つ分の画面上における縦方向の大きさ。ピクセル数で指定する。
        nine_slice - 画像を井の字状に分割して角のピースが4つ、辺の部分が4つ、中央部分が1つに分ける。これを要求された範囲の角、辺、内側の部分にそれぞれ並べていく。以下の追加フィールドを持つ。
      •  width: この画像一つ分の画面上における横方向の大きさ。ピクセル数で指定する。分割後の小片ではなく、分割前の画像の大きさが画面上で何ピクセルに相当するかを指定する必要がある。
      •  height: この画像一つ分の画面上における縦方向の大きさ。ピクセル数で指定する。分割後の小片ではなく、分割前の画像の大きさが画面上で何ピクセルに相当するかを指定する必要がある。
      •  border: 端として切り取る部分の大きさ。ピクセル数で指定する。4方向別々に設定したい場合はlefttoprightbottomを含むオブジェクトで指定する。
        •  left - 左側の幅の大きさ。
        •  top - 上側の幅の大きさ。
        •  right - 右側の幅の大きさ。
        •  bottom - 下側の幅の大きさ。

村人[]

assets/minecraft/textures/entity/villagerassets/minecraft/textures/entity/zombie_villagerに存在する村人・村人ゾンビのテクスチャは、.mcmetaによって帽子の描画設定を行うことができる。描画設定を適用するには、対応するテクスチャファイルと同名の.mcmetaを同じパックの同じディレクトリに配置する必要がある。この.mcmetaファイルは以下のJSON構造を持つ。

  • 最上位のオブジェクト。
    •  villager: テクスチャに関するデータを格納するオブジェクト。
      •  hat: fullpartial、defalut(.mcmetaを指定しない場合に等しい)から指定する。職業由来とバイオーム由来の帽子(頭部のオーバーレイ)の優先度に関係する[情報提供依頼]

.mcmeta ファイルとテクスチャが同じパックに存在しない場合はデフォルトの設定を読み込む。下位のパックに対応するmcmetaファイルがあっても効果はない。

カラーマップ[]

カラーマップは256×256ピクセルの画像であり、バイオームごとにどの色を使用するかを決める。カラーマップは、foliage.pnggrass の2つがあり、assets/minecraft/textures/colormap に位置する。foliage.png はシラカバとマツを除く、ツタのような植物に適用され、grass.png草ブロックに適用される。カラーマップが適用されるブロックは tintindex タグを除くことによって無効にすることができる。

テクスチャアトラス[]

Minecraftはゲームの実行時にリソースパックおよびデフォルトのパックに存在するテクスチャファイルを抽出し、ゲーム上で使用するテクスチャを複数の大きな画像(=テクスチャアトラス)に纏める。

通常のゲームで使用されるテクスチャを単に上書きするだけならテクスチャアトラスを変更する必要はないが、防具装飾の種類を追加した場合など本来ゲームでは使用されないファイルを新にゲーム上で使用したい場合は、まずこれらのファイルがテクスチャアトラスに掲載されるように設定しなければならない。

テクスチャアトラスの設定は、リソースパックのassets/<名前空間>/atlasesディレクトリ下に<アトラス名>.jsonとして保存することで行うことができ、このJSONファイルは以下のような構造を持つ。

  • 最上位のオブジェクト。
    •  sources: アトラスにテクスチャを追加(または削除)する処理のリスト。テクスチャの読み込みの際に、このリストに定義した順番に処理が行われていく。
      • 各追加処理の設定。
        •  type: 追加処理の形式。以下のいずれかから指定する。
          • directory: 特定のディレクトリ内にあるファイルを全て追加する。すべての名前空間の同名のディレクトリからファイルが抽出される。指定のディレクトリが持つ下位ディレクトリからも同様にファイルが抽出される。
            •  source: ファイルの抽出元のディレクトリのパス。パスはtexturesディレクトリ以下から記述する。
            •  prefix: 読み込まれた際にスプライト名に付す接頭辞。
          • single: 単一のファイルを追加する。
            •  resource: 追加するファイルのパス。パスはtexturesディレクトリ以下から記述し、拡張子.pngは省略する。
            •  sprite: スプライト名。省略可能で、デフォルトでは resourceになる。
          • filter: パスが与えられた正規表現のパターンに合致するスプライトを削除する。これ以前の処理で既に何らかのテクスチャがアトラスに追加されている場合にのみ機能する。
            •  namespace: 削除するファイルを検索する名前空間を指定する正規表現。省略した場合は、すべての名前空間から削除するファイルを検索する。
            •  path: 削除するファイルのパスを指定する正規表現。省略した場合は、全てのファイルを削除対象と見なす。
          • unstitch: 既存の画像から矩形範囲を選択してコピーし、新しい画像として追加する。
            •  resource: 参照先のファイルのパス。パスはtexturesディレクトリ以下から記述し、拡張子.pngは省略する。
            •  divisor_x: 切り取り範囲を regionsで指定する際に、X軸方向の何ピクセルを1と見なすのか。
            •  divisor_y: 切り取り範囲を regionsで指定する際に、Y軸方向の何ピクセルを1と見なすのか。
            •  regions: 元画像からコピーする範囲のリスト。
              •  sprite: コピーによって生成した画像のスプライト名。
              •  x: 切り取り範囲の左上のX座標。
              •  y: 切り取り範囲の左上のY座標。
              •  width: 切り取り範囲のX方向への長さ。
              •  height: 切り取り範囲のY方向への長さ。
          • paletted_permutations: カラーパレットを使用して元画像を彩色し、彩色後の画像をテクスチャアトラスに追加する。バニラのゲームでは、防具装飾の模様を素材の色ごとに彩色するのに使用されている。仕様の詳細は次項を参照。
            •  textures: 彩色を施すテクスチャのパスのリスト。
              • : 彩色を施す各テクスチャのパス。
            •  pallete_key: パレットのキーへのパス。パスはtexturesディレクトリ以下から記述し、拡張子.pngは省略する。
            •  permutations: 使用するパレットの一覧。元画像とパレットのすべての組み合わせが出力される。
              •  <色名>: パレットのパス。パスはtexturesディレクトリ以下から記述し、拡張子.pngは省略する。また<色名>で指定した色名は出力した画像のスプライト名に使用される。出力画像のスプライト名は、<元画像の名前空間付ID>_<色名>になる。

paletted_permutations[]

 type paletted_permutationsでは、パレットのキーカラーパレットの2つの画像を使って元画像を彩色する。

彩色前の元画像はパレットのキー上に存在する色で描く。

パレットのキーは元画像上の色と、その色に対して使用するカラーパレット上の色を対応付けるための画像である。パレットのキーとカラーパレットは全く同一のサイズである必要がある。元画像上のピクセルは、パレットのキー上の同じ色のピクセルと同じ位置にあるカラーパレット上のピクセルの色で彩色される。

彩色対象の画像にパレットのキー上に存在しない色を用いた場合は、そのピクセルは彩色されずにそのまま残すことができる。また元画像とパレットのキーとの対照の際にはαチャンネル(透明度)は無視されるが、パレット画像上の色が透明度を持つ場合は彩色の際はこれも適用される。

palleted_permutationsによる彩色の例

注:上の画像は表示の便宜により拡大されている。