Minecraft Wiki
Advertisement
この記事では、1.6.1以降のシステムについて説明しています。1.6.1以前のシステムについては「テクスチャーパック」をご覧ください。
TexturesComparison

右がMinecraftのデフォルトのテクスチャ、左がRodrigo's Pack 8x8というパックを使用した際のテクスチャ。

リソースパック(英:Resource Pack)は、プレイヤーがテクスチャやモデルサウンドBGM翻訳文や言語、フォント、およびエンドポエムスプラッシュテキストなどのテキストといった要素を、ゲーム本体を書き換えることなくカスタマイズするための仕組みである。

Java Edition[]

振る舞い[]

Select Resource Packs

デフォルトのリソースパック選択画面。

リソースパックは.minecraftフォルダ内のresourcepacksフォルダに保存することで機能する。この際、リソースパックの形式はresourcepacksフォルダ内に直置きした下位フォルダか、.zip形式のどちらかである必要がある。ファイルをリソースパック設定の画面にドロップすることでも同じことが可能。

パックをフォルダに置いた後は、設定⇒「リソースパック設定」から有効化するリソースパックとその優先順位を設定できる。この画面には追加したリソースパックに加えてビルトインのリソースパックが存在するが、これは削除できない。特に「デフォルト」のリソースパックは無効化することができない。

リソースパックは、画面右「選択中」の欄に並んでいる順に従って読み込まれる。一番下のリソースパックから順番に読み込まれ、要素の被りがあった場合はあとに読み込まれたもので置換されるので、リソースパックの要素の反映の優先順位は欄内上に行くほど高くなる。

現在読み込まれているリソースパックの内容を手動で書き換えた場合はF3 + Tでリソースパックを再読み込みすることで反映できる。これはリソースパックの振る舞いを確認しながらパックを作成・導入するのに有用である。

デフォルトのリソースパック[]

リソースパックはワールドのフォルダ(.minecraft\saves\<ワールド名>)の一番上の階層にresources.zipという名前の.zipファイルとして保存することで、そのワールドのデフォルトのリソースパックに設定することができる。このリソースパックはそのワールドでプレイしている際にのみ、「デフォルト」のリソースパックの上にデフォルトで表示される。

サーバーではserver.properties.zipファイルのダウンロードへのリンクをresouce-pack=で指定することによって、サーバーに参加したプレイヤーにそのリソースパックをダウンロードするかどうかを提示できる。また、resouce-pack-required=trueと設定することによってそのリソースパックを使用するよう強制できる。リソースパックの使用を拒否すると、そのプレイヤーはサーバーから接続切断される。

「デフォルト」のリソースパック以外にもビルトインのリソースパックには1.14以前の古いテクスチャを使用できる「プログラマーアート」、メニュー画面のUIのコントラストを強調し視認性を強調できる「ハイコントラスト」がある。

フォルダ構造[]

リソースパックには規定のフォルダ構造があり、パックを正しく機能させるためにはこのフォルダ構造に従う必要がある。なお、内容のないフォルダは作成する必要はない。例えば翻訳の文字列を変更したり新しい翻訳文を定義する目的のリソースパックでは、<名前空間>フォルダ内にlang以外のフォルダを作成する必要はない。

assetsディレクトリ下には、複数の名前空間フォルダを設定することもできる。

内容[]

pack.mcmeta[]

リソースパックがMinecraftに認識されるには、最上位ディレクトリ内にpack.mcmetaファイルが存在しなければならない。このファイルはJSON形式で記述され、リソースパックの識別に必要な以下の情報を含む。

  • ルートタグ。
    •  pack: リソースパックの情報を格納しているオブジェクト。
      •  pack_format: パックのバージョン。Minecraftのバージョンによって対応しているリソースパックのバージョンは異なり、要求されたバージョンとパックのバージョンが異なる場合は「非対応」と表示され読み込むことができない。現在の値は17である。過去のバージョンに関してはパックフォーマットを参照。
      •  description: 「リソースパックの選択」でパック名の下に表示されるテキスト。テキストは最大2行で表示され、長すぎると見切れる。
      •  description:  descriptionの別表記。JSONテキストが使用できる。 descriptionと同時に指定することはできない。
      •  supported_formats: (任意)このパックが対応しているパックバージョンを指定する。複数のバージョンを指定することで、16以降の複数のバージョンに対応したリソースパックにすることができる。単一の値を指定する場合は整数で、バージョンを列挙する場合はリスト形式で、バージョンの上限と下限を設定する場合はオブジェクト形式で指定する。このフィールドがあっても、バージョン15以前の環境における認識の都合で pack_formatを省略することはできない。
        • : リスト形式の場合は、リスト内にパックバージョンを示す整数を並べる。
        •  min_inclusive: オブジェクト形式の場合は、ここに下限値を整数で入力する。
        •  max_inclusive:オブジェクト形式の場合は、ここに上限値を整数で入力する。
    •  language: 言語メニューに追加する言語の情報。
      • フォルダassets/<名前空間>/langにある同名の.jsonファイルに対応する言語コード。
        •  name: 言語の名称。
        •  region: 使用される国または地域の名前。
        •  bidirectional: trueの場合、右横書き言語となり、右から左に読まれる。
    •  filter: 自身より優先度の低いリソースパックが読み込まれる際に、特定のファイルの読み込みを除外するためのフィールド。
      •  block: 読み込みを除外する条件となるパターンのリスト。
        • それぞれのパターン。
          •  namespace: 読み込みを除外したいファイル・フォルダが含まれる名前空間を正規表現で指定する。指定しない場合は、すべての名前空間に適用される。
          •  path: 読み込みを除外するファイル・フォルダのパスを正規表現で指定する。指定しない場合は、すべてのファイルに適用される。
    •  overlays overlaysディレクトリに格納された上書き用下位パックに関するデータ。
      •  entries:
        • 各下位パックに関するデータ。
          •  directory: 下位パックのディレクトリの名前。
          •  formats: 下位パックが対応しているバージョン。 supported_formatsと構造は同じ。

パックの最上位のディレクトリには、pack.png という画像ファイルを置くことができ、これはリソースパックメニューでアイコンとして表示される。そのファイルがない場合は、デフォルトのアイコンが使用される。

パックフォーマット[]

次の表は、各パックのフォーマット番号とそれに対応するバージョン範囲を示す。

パックフォーマット
フォーマット バージョン
1 1.6.11.8.9
2 1.91.10.2
3 1.111.12.2
4 1.131.14.4
5 1.151.16.1
6 1.16.21.16.5
7 1.171.17.1
8 1.181.18.2
9 1.19 - 1.19.2
11 22w42a - 22w44a
12 22w45a - 1.19.3
13 1.19.4 - 23w13a
14 23w14a - 23w16a
15 23w17a - 1.20.1
16 23w31a
17 23w32a - 1.20.2 pre1
18 1.20.2 pre2 -

言語[]

リソースパックのassets/<名前空間>/langフォルダに<言語コード>.jsonという名前の言語ファイルを作成することで、既存の言語の翻訳を上書きしたり、新しい訳文を追加することができる。またpack.mcmetaで正しく定義されていれば、新しい言語を追加することもできる。

言語ファイルはJSON形式で記述されており、単一のJSONオブジェクトの中に翻訳キーと訳文の組が羅列されている。即ち最初と最後の行にはそれぞれ{}が必要であり、その中の各行に"block.minecraft.stone": "石"のように"<翻訳キー>": "<訳文>"の組が並べられている。組と組の間には,が必要である。

使用する文字コードUTF-8(BOM無し)であり、したがって訳文にはマルチバイト文字を使用することが出来る。また訳文にはJSONテキストではなく装飾コードを用いることができる。

言語ファイルには、そのリソースパックで変更したい訳文だけを記述すればよい。パックにない名前は、下位パックないしデフォルトのパックから読み込まれる。

なお、訳文に含まれる%sなどの文字列代入部などの仕様はこちらに詳しい。またデフォルトで使用されている言語ファイル(ja-jp.langなど)は.minecraft/assetsindexに記載されている番号によって同objectフォルダ内を検索、現在の公式の翻訳や翻訳キーに関してはこちらを参照のこと。

モデル[]

詳細は「モデル」を参照

モデルの設定ファイルは拡張子が.jsonJSON形式のファイルであり、assets/minecraft/modelsの下位フォルダに格納して使用する。モデルの設定ファイルを使用することで、ブロックやアイテムのモデルを編集することができる。

ブロックは現在のブロック状態に対応するassets/minecraft/blockstatesを参照して、自分がassets/<名前空間>/models/blockにあるどのモデル設定ファイルを使用するのかを決定する。一方アイテムはassets/<名前空間>/models/itemから対応するモデル設定ファイルを読み込んでおり、アイテムのテクスチャから生成した平面状のモデルやブロックのモデル(チェストや盾などの一部のブロックやアイテムはエンティティモデル)、またはカスタムモデルを使用するよう設定できる。

より上位の別のパックで上書きされていなければ、最上位以外のパックに格納されているモデル設定ファイルやブロック状態ファイルも読みこまれたままの状態が維持される。これにより最上位のパックで使用されているテクスチャやモデルが読み込まれなくなることがある。

サウンド[]

リソースパックのassets/minecraft/sound下に拡張子.oggのサウンドファイルを追加することで、ゲームの既存のサウンドを上書きしたり、全く新しいサウンドを追加することができる。

新しく追加されたサウンドに関しては、assets/minecraft下に追加するsounds.jsonというファイルでサウンドイベントと結びつけることでゲーム内で鳴らすことができるようになる。既存のサウンドイベントと結びつけた場合はゲーム内の対応するゲームイベントの発生時に鳴らすことができるが、新規のサウンドイベントと結びつけた場合は/playsoundコマンドでのみ鳴らすことができる。

なおsounds.jsonはリソースパックの他のファイルと異なり下位のパックに存在するsounds.jsonの内容を完全に上書きするのではなく、各パックのsounds.jsonの内容を統合していく形を採っている。

テクスチャ[]

Missing Texture Block

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

リソースパックでは、assets/<名前空間>/textures以下の適切な場所に画像ファイル(基本的に拡張子は.png)を格納することでゲームで使用するテクスチャを上書き・追加することができる。

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

またブロックのテクスチャにおいて、ガラスのように画像内側に完全に透明な部分を含む画像では不透明度10%以下のピクセルはすべて透明に、それ以外のテクスチャは完全に不透明に描画される。それ以外のあらゆるテクスチャにおいては、透明度を自由に設定できる。

また全く新しいテクスチャを追加してゲーム内で使用できるものは以下に限られる。

  • カスタムモデルを使用したブロックの描画の為のテクスチャ。
  • カスタムモデルを使用したアイテムの描画の為のテクスチャ。
  • カスタム防具装飾の為の模様テクスチャ、カラーパレットおよびパレットのキー画像。

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

テクスチャアトラス[]

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>_<色名>になる。
palleted_permutationsによる彩色の例

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

アニメーション[]

ブロック、アイテム、パーティクル、絵画、額縁、ステータス効果のアイコンのテクスチャは、各フレームのテクスチャを幅を揃えて縦に並べることによってアニメーションさせることができる。アニメーションはアニメーションさせたいテクスチャと同じ名前の .mcmeta ファイル(JSON形式で記述)を同じディレクトリに入れることで制御できる。例えば、stone.png をアニメーションさせたい場合、mcmeta ファイルは stone.png.mcmeta になる。

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

.mcmeta ファイルとテクスチャが同じパックに存在しない場合はアニメーションされない。.mcmetaファイルとテクスチャがそれぞれ別のパックから指定されていても効果はない。また、テクスチャに対応する .mcmeta がない場合、紫と黒のチェック柄で表示される。

村人[]

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 タグを除くことによって無効にすることができる。

プロパティ[]

assets/minecraft/textures/miscassets/minecraft/textures/gui/titleにあるテクスチャは JSON形式の .mcmeta ファイルによって追加エフェクトを適用することができる。ファイルはテクスチャと同じディレクトリにあり、同じ名前の後ろに .mcmeta が付く。例えば、pumpkinblur.png のプロパティファイルは pumpkinblur.png.mcmeta である。

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

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

GUIの画像[]

テクスチャアトラスguiに抽出されるテクスチャ(普通textures/gui/sprite下に格納)には、同名の.mcmetaファイルによって変形の操作を施すことができる。これは、例えばボタンのテクスチャをGUI上でボタンに割り当てられた範囲の大きさに従って変形するなどの処理に使用される。この.mcmetaファイルは以下のJSON構造を持つ。

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

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

テキスト[]

assets/minecraft/textにはゲーム内で使用されるテキストを記録したファイルを格納することができる。適切な名前と形式のファイルを格納することで、ゲーム内の対応するテキストを上書きすることができる。現在、UTF-8エンコードの3種類の.txtファイルと1種類のJSONファイルが使用できる。

end.txt - エンドポエムのテキストを記録するテキストファイル。装飾コードを用いて2人の語り手を別々の文字色で書き分けており、PLAYERNAMEにプレイヤー名が挿入される。
credit.json - Minecraftの制作に関わった人物を紹介するクレジットを生成するためのファイル。以下のJSON構造で記載されている。
  • クレジットの節のリスト。
    • クレジットの各節に関するデータを格納するオブジェクト。概ね団体別で節分けがされている。
      •  section: この節のタイトル。概ね団体名が記載される。
      •  disciplines: 団体内の各部署のリスト。
        • 各部署に関するデータを格納するオブジェクト。
          •  discipline: 部署の名称("Design"や"Programming"、"Audio"など)。
          •  titles: 部署内の地位(肩書)のリスト。
            • 各地位に関するデータを格納するオブジェクト。
              •  title: この地位(肩書)の名称("Tecnical Director"や"Game Developers"、"Software Engineers"など)。
              •  names: この地位に属する人物のリスト。
                • 各人物の氏名。


postcredits.txt - エンディングの最後、クレジットの後に表示される引用文のテキストを記録するテキストファイル。
splashes.txt - メインメニューに表示されるスプラッシュテキストを規定しているテキストファイルである。改行ごとに個々のスプラッシュテキストが記述されており、どのスプラッシュも異なる内容に置き換えることができる。

フォント[]

フォントはassets/<名前空間>/fontフォルダ内に<フォント名>.jsonという名前のJSONファイルによって定義されている。このフォントファイルにはフォントの表示に必要なデータが格納されている。fontフォルダ内のデータを編集することで、既存のフォントを編集したり、新しいフォントを導入することができる。
なおゲーム内で諸般の文字を描画する際には「Unicodeフォントを強制する」がオフの場合はdefault.jsonが、オンの場合はuniform.jsonがそれぞれ参照されるようになっているので、ゲーム内の基本の文字に使用されるフォントを変更するにはこれらのフォント設定ファイルを書き換える必要がある。これらのフォント設定ファイルでは字形供与子referenceを用いて文字種毎に別のフォント設定ファイルを読み込むようになっているので、その参照先を新しく追加したフォント設定ファイルに変更することで反映できる。
また上述のデフォルト用のフォント設定ファイルから参照されていないフォントは、JSONテキストによってフォントを指定したテキストを設定することで表示できる。
フォントファイルは以下のJSON構造によって記述される。
  • ルートタグ。
    •  providers: このフォントで使用する字形供与子のリスト。複数の字形供与子から同じ文字コードに対する字形が与えられている場合は、リストの上位にあるものが優先して使用される。したがって、より適用範囲の狭い字形供与子から上位に記述すべきである。
      • : それぞれの字形供与子。typeによって必要なフィールドが異なる。
        •  type: 字形供与子の形式。取り得る値とそれに伴う追加フィールドは以下を参照。
          bitmapの場合(テクスチャファイルからフォントを抽出)
        •  file: 使用するテクスチャファイルの位置。assets/<名前空間>/textures階層以下から記述する。
        •  height: 任意。文字の縦方向の大きさをピクセル単位で指定する。文字表示サイズの調整のための値であり、テクスチャから文字を切り取る範囲とは関係ない。デフォルトは8。
        •  ascent: 文字の縦方向の変位(ピクセル単位)。文字の縦方向の表示位置を調整するのに使用される。
        •  chars: テクスチャファイルと文字コードとの対応を示すためのフィールド。リストの一要素がテクスチャファイルの一行に対応している。
          • : リストの各要素。"\u0020\u0021\u0022(中略)\u002f",のように、JSON形式でその行に含まれるUnicodeの文字コードを記述していく。テクスチャファイルの各横行をここに記述された文字コードの数で均等に分割し、分割後の画像がそれぞれの文字コードに割り当てられる。
          ttfの場合(OpenTypeフォントTrueTypeフォントのフォントファイルからフォントを抽出)
        •  file: 参照するフォントファイルの位置。assets/<名前空間>/font以下からする。この際、ファイル名は拡張子まで記述する。
        •  shift: 文字の位置を調整する。
          • : 水平方向への移動分。左向き正で、1.0がデフォルトフォントの2ピクセル分に相当する。
          • : 垂直方向への移動分。下向き正で、1.0がデフォルトフォントの2ピクセル分に相当する。
        •  size: 文字サイズ。1.0がデフォルトフォントの2ピクセル分に相当する。
        •  oversample: 文字の解像度。1.0がデフォルトフォントと同等の解像度に相当する。
        •  skip: スキップしたい文字(スキップした場合は、これより下位に指定した字形供与子を用いて字形を決定できる)。
          spaceの場合(指定した文字を空白として表示)
        •  advances: 空白として表示する文字と、空白の幅の組。
        •  <文字コード>: 空白の幅。
          unihexの場合(GNU Unifontの文字を追加、上書きする)
        •  hex_file: 使用する.hexファイルを含むZIPファイルの位置を指定する。assets/<名前空間>/font下から記述する。
        •  size_overrides: 特定の文字の文字幅を自動検出されたものから設定し直す。
          • : 一つ一つの設定。
            •  from: この設定の適用範囲の最初の文字。\u<コード>のようにJSON形式のUnicode文字で指定する。
            •  to: この設定の適用範囲の最後の文字。\u<コード>のようにJSON形式のUnicode文字で指定する。
            •  left: 文字幅の左端。この位置より左の部分は描画されない。
            •  right: 文字幅の右端。この位置より右の部分は描画されない。
          referenceの場合(他のフォントファイルを読み込む。各ファイルは複数回読み込むことはできない。)
        •  id: 使用するフォントファイル。assets/<名前空間>/font下から記述する。
テクスチャファイル[]

字形供与子bitmapで使用するフォントのテクスチャファイルはassets/<名前空間>/textures以下に格納し、フォント設定ファイルで規定したファイル名に設定することで使用できる。

フォントのテクスチャには、透明地に白色でフォントの字形を描くことで字形を指定する。この白色の字形に、ゲーム内の状況に合わせてMinecraftが着色して文字を表示するようになっている。文字は左上から charsに指定した文字コードに対応する順番に並べていく。文字の高さは、画像の内最も下にある不透明度が0でないピクセルまでの縦方向のピクセル数を、 charsで指定されている行の数で割ったものが適用される。また文字の横幅は、その行の内最も右にある不透明度が0でないピクセルまでの横方向のピクセル数を、 charsで指定された各行に存在する文字数で割ったものが適用される。フォントの検出方式の都合で、文字の背景を不透明度5%の色で塗りつぶすと、文字の背景が表示されることなく全幅が描画される。

.hexファイル[]

字形供与子unihexを用いると、Unicode文字の表示にデフォルトで使用されているGNU Unifontの字形を一部上書きしたり、あるいは対応していない文字コードに対し字形を追加できる。字形供与子unihexでは、上書き・追加するための字形を.zip形式に圧縮された拡張子.hexファイルから取得する。

この.hexファイルは16進数形式で文字コードとそれに対応する字形を定義したファイルである。各行にはまず16進数で、この行に記述する字形に対応するUnicode文字コードを指定する。この文字コードには4~6桁の16進数を指定できるため、基本多言語面(4桁)はもちろん追加多言語面から私用面まで自由なコード位置の文字を追加・上書きできる。

文字コードの後ろには、:を挟んだ後に字形のビットマップを表す16進数が続く。2進数で表現すれば線のある部分が1、透明な部分が0に対応しており、これを字形の一番左上のピクセルから一行ずつ順に並べたものを16進数に変換することで入力すべき値が得られる。ここで各文字の横幅は8、16、24、32ピクセルの内任意の値を取るが縦幅が16ピクセルで固定であるので、16進数の配列の長さに従って横幅は適切に解釈される。ただし size_overridesよってビットマップから列単位でピクセルを切り取る形で文字幅を編集することが可能である。

ExampleCharacter1

追加したい文字。表示の便宜上10倍に拡大したが、本来のサイズは16×16。

例えば基本多言語面内の私用領域のコードの一つであるU + E000に右の画像のような文字を一文字だけ追加したい場合、このビットマップを行ごとに2進数に変換すると

0000000000000000
0000000000000000
0000000000000000
0000000000000000
0011110000111100
0011110000111100
0011110000111100
0011110000111100
0011110000111100
0000001111000000
0000001111000000
0000111111110000
0000111111110000
0000111111110000
0000111111110000
0000110000110000
0000110000110000

となるため、これを直列の16進数に変換して文字コードを付せば、必要な.hexファイルの中身は以下のようになる。

E000:00000000000000003CC33CC33CC33CC303C003C00FF00FF00FF00FF00C300C30

これを.hexファイルとして保存し、.zipとして圧縮すれば字形供与子unihexから参照することができる。

デフォルトのフォント[]
詳細は「フォント」を参照

デフォルトのMinecraftには以下の4種類のフォントが存在している。

Mojangle

Minecraftのデフォルトのフォントである。フォント設定ファイルとしてはinclude/default.jsonが該当し、字形供与子bitmapを用いて複数のテクスチャファイルから字形を参照している。

  • ascii.pngでは0x20(半角スペース)~0x7E(チルダ)までの範囲に標準ASCII文字の字形が表現されているのに加え、0x7F(削除文字)~0xFF(トレマ付きy)の範囲にはコードページ437の文字の字形(以下)が表現されている。文字サイズは8×8ピクセル。
░ ▒ ▓ │ ┤  ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ └ ┴ ┬ ├ ─ ┼ ╞ ╟  ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄  ▌▐▀ ≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■
  • nonlatin_european.pngでは多数の表音文字と以下の記号が収録されている。文字サイズは8×8ピクセル。
⧈ ⚔ ☠ ¢ ¤ ¥ © ® µ ¶ ¼ ½ ¾ · ‐ ‚ †  ‡ • ‱ ′ ″ ‴ ‵ ‶ ‷ ‹ › ※ ‼ ‽ ⁂ ⁈ ⁉  ⁋ ⁎ ⁏ ⁑ ⁒ ⁗ ℗ − ∓ ∞ ☀ ☁ ☈ Є ☲ ☵ ☽ ♀ ♂ ⚥ ♠ ♣ ♥ ♦ ♩ ♪ ♫ ♬ ♭ ♮ ♯ ⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ʬ ⚡ ⛏ ✔ ❄ ❌ ❤ ⭐ ⸘ ⸮ ⸵ ⸸ ⹁ ⹋ ⥝ ᘔ Ɛ ⅋ ⏏ ⏩ ⏪ ⏭ ⏮ ⏯ ⏴ ⏵ ⏶ ⏷ ⏸ ⏹ ⏺ ⏻ ⏼ ⏽ ⭘ ▲ ▶ ▼ ◀ ● ◦ ◘  ⚓ ⛨ � ☺ ☻ ¦ ☹ ⅔ ✉ ☂ ☔ ☄ ⛄ ☃ ⌛ ⌚ ⚐ ✎ ❣ ♤ ♧ ♡ ♢ ⛈ ☰ ☱ ☳ ☴ ☶ ☷ ↔ ⇒ ⇏ ⇔ ⇵ ∀ ∃ ∄ ∉ ∋ ∌ ⊂ ⊃ ⊄ ⊅ ∧ ∨ ⊻ ⊼ ⊽ ∥ ≢ ⋆ ∑ ⊤ ⊥ ⊢ ⊨ ≔ ∁ ∴ ∵ ∛ ∜ ∂ ⋃ ⊆ ⊇ □ △ ▷ ▽ ◁ ◆ ◇ ○ ◎ ☆ ★ ✘ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ∫ ∮ ∝ ⌀ ⌂ ⌘ 〒 ɼ
  • accented.pngでは多数の発音区別記号付き文字と以下の記号が収録されている。文字サイズは18×18ピクセル。
⚠ ⓪ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ☯ ☐ ☑ ☒ ⅒ ⅘


GNU Unifont

Mojangleに対応していない文字(CJK統合漢字や仮名等)に対して使用される代用フォントである。フォント設定ファイルとしては.minecraft/assets/minecraft/font/include/unifont.jsonが該当し、字形供与子unihexを用いて.minecraft/assets/minecraft/font/unifont.zipから字形を参照している。文字サイズは基本的に16×16で、日中台で共通の漢字が使用される。絵文字を含め基本多言語面のすべての文字、追加多言語面・追加漢字面・第三漢字面の一部の字に対応しており、現在のバージョンは15.0.06である。

標準銀河系アルファベット

エンチャントテーブルに出現する文字。フォント設定ファイルとしてはinclude/alt.jsonが該当し、字形供与子bitmapを用いてascii_sga.pngから字形を参照している。

邪悪な村人の文字(illageralt)

Minecraft Dungeonsで使用されるルーン風文字。ゲーム内でデフォルトで使用されることはない。フォント設定ファイルとしてはinclude/illageralt.jsonが該当し、字形供与子bitmapを用いてasciillaer.pngから字形を参照している。

統合フォント

ゲーム内で諸般の文字を描画する際に使用されるフォント。「Unicodeフォントを強制する」がオフの場合にはdefault.jsonが、オンの場合はuniform.jsonが参照されるようになっており、referenceを介してそれぞれ文字種毎に対応する字形供与子を適用することによって複数のフォントを一つに統合して運用できるようにしている。

文字効果[]
太字

太字の文字は、同じ文字を複製して右方向に文字サイズの12.5%だけずらして重ねる形で実現される。変位の程度を設定することができないため、Mojangleより線の細いカスタムフォントは二重に表示されることがある[1](GNU Unifontは対策済み[2])。

文字が表示される大抵の環境では、文字に影が生成される。この影は元の文字の色をRGB値で14した色で、元の文字を複製して右下に12.5%だけずらして重ねる形で実現される。太字と同様の都合で、影の位置と文字の距離が不自然になることがある。

発光

看板の文字に輝くイカスミを使用すると、元の文字を8つ複製して別の色で8方向に12.5%ずらして重ねる形で実現される。太字と同様の都合で、細いフォントでは発光効果が八重に表示されることがある。

シェーダー[]

詳細は「シェーダー」を参照

リソースパックのシェーダーを用いるとゲームの描画を調整することができる。使用言語はOpenGL Shading Languageである。

地域的法令に基づく警告[]

地域的法令に基づく警告は、assets/<名前空間>/regional_compliancies.jsonでカスタマイズできる。このJSONファイルは以下の構造を持つ。

  • 最上位のオブジェクト。地域ごとの警告のリストの一覧を含む。
    •  <地域コード>: 特定の地域で表示する警告のリスト。このタグのキー自体にはISO 3166-1による地域コードを入力する。このコードがデバイスのロケール設定に一致すると、リスト内で定義された警告が表示される。
      • 各警告のデータ。
        •  delay: 起動から警告が表示されるまでの時間(分)。0には設定できない。
        •  period: 警告が表示されるインターバル(分)。0には設定できない。
        •  title: この警告のタイトルの翻訳キー。被翻訳テキストの with(テキスト代入部の補完文字列のリスト)には、この警告の現在の表示回数が与えられる。
        •  message: この警告の本文の[翻訳キー。被翻訳テキストの with(テキスト代入部の補完文字列のリスト)には、この警告の現在の表示回数が与えられる。

パック内容の上書き[]

overlaysディレクトリにはパックの「通常」の要素を上書きできる下位パックが格納できる。このパックの構造はpack.mcmetapack.pngが存在しないほかは基本的に普通のリソースパックと変わりない。

これらの下位パックのメタデータは最上位のパックのpack.mcmeta overlaysフィールドにおいて管理されており、それぞれの下位パックの対応するパックバージョンとディレクトリ名が記録されている。

これらの下位パックは、クライアントの要求するフォーマットを満たしていれば上位パックの内容を上書きする形で適用される。下位パックによる上書きでファイルを追加したり上書きすることはできるが、上位パックに存在するファイルを削除することはできない。下位パック同士の間での適用の順番はリストの下側から順にであり、リストのより上側のパックが下側のパックの内容を上書きすることができる。

こうした下位パックはpack.mcmeta supported_formatsでリソースパック自体は複数のバージョンに対応していると宣言しつつ、特定のバージョンのみに対応しているとして設定した下位パックを用意することで、バージョンに応じた読み込み内容の調整を行うことに利用できる。

Bedrock Edition[]

詳細は「Add-on」を参照

スキンと同様に、Bedrock Edition でリソースパックは購入・作成できる。 Alpha 0.16.0 の時点で、iOS ユーザーは .mcpack および .mcworld の拡張子のファイルをダウンロードできる。 これらのファイルを開くと、ファイルシステムへのアクセスを必要とせずに自動的に Bedrock Edition にインポートされる。

歴史[]

Java Edition
1.6.113w24aテクスチャパックに置き換わる機能としてリソースパックが追加された。1.5までのテクスチャーパックは Mojang の変換ツール (Minecraft Texture Ender) で変換出来る。
1.6.2HDフォントを使用した際にフォントが歪むバグが修正された[3]
1.7.213w36a一度に複数のリソースパックを適用出来るようになった。
13w42aassets/minecraft/music のファイルが assets/minecraft/sounds/music へ、assets/minecraft/sound のファイルが assets/minecraft/sounds へ移動された。
1.7.413w48aMojang のロゴを変更する機能が削除された
1.814w06aブロックモデルを変更できるようになった。
14w07aリソースパックをマップにバンドルできるようになった。
14w25aカスタムアイテムのモデルを適用出来るようになった。
テクスチャをブロックとアイテムに指定できるようになった。
アニメーションに interpolate が追加された。
1.8.8preパックのバージョン番号が合っていないとエラーが表示されるようになった。このときバージョン番号が 1 でなければならなくなった。
1.915w31aアイテムタグmultipart、ディスプレイタグの追加などが行われ、モデルのシステムが変更された。それに伴い、リソースパックのバージョン番号が 2 に変更された。
古いディスプレイタグを持つリソースパックを使用すると異常にスケールアップされて見えた。また、2Dテクスチャで置き換えられたブロックはインベントリや手に持っているときに回転しなかった。これはモデルにディスプレイタグがないときと同様である(画像を参照)。
1.1116w32aリソースパックのバージョンが 3 になった。
リソースパック内のファイル名が全て小文字になった。
1.1317w48aリソースパックのバージョンが 4 になった。
デフォルトのリソースパックがを上下に移動できるようになった。
texturesフォルダ内の、Blocksフォルダのうち不透明なブロックのテクスチャーがBlockフォルダに移動された。
1.15Pre-release 1リソースパックのバージョンが 5 になった。
1.16.2Release Candidate 1塀のブロック状態の非互換性に対応するため、バージョンが6になったMC-197275
1.1720w45aバージョンが7になった。
21w05aアイテムモデルでオーバーライドを多用した時の性能が改善された。
GUIテクスチャtoasts.pngにバンドルのチュートリアル用のアイコンが追加された。
Pre-release 1assets/minecraft/texts内のファイルcredits.txtcredits.jsonに変更され、形式もプレーンテキストからJSONに変更された。
1.1821w37aMinecraft Dungeonsで使われているフォントillageraltが追加された。コマンドでのみ使用可能である。
21w39ainventory.pngにインベントリ画面でのステータス効果一覧の二つのモードに対応するスプライトが追加された。
バージョンが8になった。
1.18.222w06a韓国でのゲーム法[注釈 1]に基づくゲームプレイ時間のタイマーと注意書の通知機能[注釈 2]の制御のためのファイルassets/minecraft/regional_compliancies.jsonが追加された。デフォルトでは韓国でのみ表示されるようになっている。
1.1922w11apack.mcmetafilter節が導入された。
バージョンが9になった。
1.19.322w42aバージョン3および4(平坦化前)のリソースパックに対する修正機能が削除された。
バージョンが11になった。
22w45aバージョンが12になった。
1.19.423w07aバニラのリソースパックにおいて、言語ファイルen_us内の翻訳が翻訳キーのアルファベット順に並べ替えられた。
1.19.4 Pre-release 1組み込みのリソースパック「ハイコントラスト」が追加された。これはUIのコントラストを強調するものである。
エンチャントのオーラがエンティティとアイテムで分割されたことに伴い、バージョンが13になった。
1.2023w14aバージョンが14になった。
23w17aフォントおよびクレジットの更新により、バージョンが15に上がった。
字形供与子の typelegacy_unicodeが削除された。

この字形供与子の形式では、文字コードに対応するテクスチャファイルからGNU Unifontの字形を抽出して文字を描画していた。以下の追加フィールドを持つ。

  •  sizes: テクスチャファイルから文字を抽出する際に使用する、各文字の水平方向の幅を記載している.binファイルのパス。assets/<名前空間>/font以下から記述。
  •  template: 文字の抽出元のテクスチャファイルのパス。assets/<名前空間>/texture以下から記述する。パス内に%sを記述すると文字コードの最初の2桁がそこに代入されるため、テクスチャファイルは256文字ずつの別々のファイルで指定できる。
テクスチャファイルには各文字16×16の範囲が一テクスチャファイル当たり16×16の256文字に割り当てられており、その範囲内に各文字透明地に白でその字形が描かれていた。各テクスチャファイルの名前はunicode_page_##の形式に従っており、文字コードの頭文字が##の文字が対応するファイルから読み込まれるようになっていた。各テクスチャファイルには頭文字が##である256文字の字形が16文字×16文字の正方形型に文字コード順に並べられ、一文字当たり16×16の範囲に透明地に白色で描かれていた。また各文字の幅はglyph_sizes.binというバイナリファイルによって定義されており、このバイナリファイル上に1バイトにつき1文字分の文字幅データが格納されていた。各バイトの上位4ビットが字形の始まる列番号(0~15)、下位4ビットが字形の終わる列番号を表現しており、16×16の全域を使用する文字ならばその値は例えば0Fであった。
legacy_unicodeの代替として.hexファイルから字形を読み込んでデフォルトのUnifont字形を上書きできる字形供与子unifontが追加された。
他のフォント設定ファイルを読み込むことのできる字形供与子referenceが追加され、複数のフォントを共用する設定ファイルが記述しやすくなった。
クレジットの内容がcredit.jsonファイルで定義されるようになった。
1.20.223w31aバージョンが16になった。
pack.mcmetaファイルにsupported_formatsが追加され、バージョン16以降の複数のバージョンに対応したパックが作成できるようになった。
読み込み環境の対応バージョンに応じてパックの内容を上書きできるoverlaysディレクトリが追加され、pack.mcmetaにも対応するフィールドが追加された。
GUIのスプライトが従来は一つのシートに纏められていたが、textures/gui/sprites下に個別のスプライトとして分割されて保存されるようになった。
GUIのスプライトを.mcmetaファイルで変形設定できるようになった。
[[Java Edition バージョンが17になった。|バージョンが17になった。]]23w32a
Pocket Edition Alpha
0.15.0プラスチック・都会テクスチャパックが追加された。
0.15.7ナチュラルテクスチャパックが追加された。
0.15.8ファンタジーテクスチャパックが追加された。
0.16.2カートゥーンテクスチャパックが追加された。
Pocket Edition
1.0.3キャンディテクスチャパックが追加された。

関連項目[]

注釈[]

  1. 「青少年保護法[韓国語:청소년 보호법]」、「ゲーム産業振興に関する法律[韓国語:게임산업진흥에 관한 법률 ( 약칭: 게임산업법 ) ]」、「ゲーム産業振興に関する法律の施行令[韓国語:게임산업진흥에 관한 법률 시행령]」
  2. 法令では「1時間に1回3秒以上連続プレイ時間を表示させる」、「1時間に1回3秒以上『ゲームのやり過ぎは正常な日常生活に悪影響を生じさせる場合があります』という意味合いのメッセージを表示させる」などが定められている

脚注[]

Advertisement