Minecraft Wiki
Advertisement
この記事では、1.6.1以降のシステムについて説明しています。1.6.1以前のシステムについては「テクスチャーパック」をご覧ください。
この記事では、Java Editionにおけるリソースパックの仕様について説明しています。Bedrock Editionについては「リソースパック (Bedrock Edition)」をご覧ください。
TexturesComparison

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

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

使用方法[]

Select Resource Packs

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

リソースパックの追加[]

リソースパックを使用するには、まずリソースパックをゲームが読み込み可能な場所に配置する必要がある。これにはゲーム内の設定から行う方法と、フォルダに直接配置する方法の2通りがある。

ゲーム内からリソースパックを追加する場合は、まず設定⇒「リソースパック設定」で「リソースパックの選択」画面を開く。この状態でゲームのウィンドウにリソースパックをドロップすると、そのリソースパックが利用可能になる。この際、リソースパックは圧縮されていないフォルダそのままの状態でも、.zipファイルでもよい。

フォルダから行う場合は、使用したいリソースパックを.minecraftフォルダ内のresourcepacksフォルダに保存する。ゲーム内で行う場合と同様、ファイルは圧縮・非圧縮を問わない。なおこのフォルダは「リソースパックの選択」画面の「パックフォルダーを開く」から開くこともできる。設定からリソースパックを追加した場合も、内部的にはこのフォルダにリソースパックが複製されている。

リソースパックの読み込み[]

リソースパックをゲームに追加したら、次にそのリソースパックを実際にゲームに読み込ませる必要がある。リソースパックの読み込み設定は、設定⇒「リソースパック設定」で開く「リソースパックの選択」で行う。

この画面では、どのリソースパックを読み込むかと、その優先順位を設定できる。

画面左「利用可能」にはゲームに追加されたリソースパックの一覧が表示されており、使用したいリソースパックを選択して右三角をクリックすることでこれが画面右「選択中」の欄に移動する。

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

「完了」を押すとリソースパックが読み込まれ、設定が反映される。

なおこの画面には追加したリソースパックに加えてビルトインのリソースパックが存在するが、これは削除できない。特に「デフォルト」のリソースパックは無効化することができない。

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

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

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

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

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

作成方法[]

フォルダの作成[]

リソースパックは、単一のフォルダの中に所定の形式にしたがって必要なファイルを配置していくことで作成される。リソースパックを作成するには、まずパックの母体となるフォルダを1つ作成しよう。フォルダ名はそのリソースパックであると判別が付くものであれば何でもよい。

pack.mcmeta[]

作成したフォルダがリソースパックとして認識されるためには、pack.mcmetaというファイルがリソースパックの一番上の階層に必要である。

このファイルはJSONファイルであるから、適切なテキストエディタで以下の構造のJSONを記述したうえでファイル名をpack.mcmetaに変更すればよい。JSONの記法に関しては当該記事を参照のこと。

  • 最上位のオブジェクト。
    •  pack: リソースパックの情報を格納しているオブジェクト。
      •  pack_format: パックのバージョン。Minecraftのバージョンによって対応しているリソースパックのバージョンは異なり、要求されたバージョンとパックのバージョンが異なる場合は「非対応」と表示され読み込むことができない。バージョンの対応は#フォーマットを参照。
      •  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リスト内の条件のいずれかに一致するファイルは読み込まれない。
      •  block: 条件となるパターンのリスト。
        • それぞれのパターン。
          •  namespace: 読み込みを除外したいファイル・フォルダが含まれる名前空間を正規表現で指定する。指定しない場合は、すべての名前空間に適用される。
          •  path: 読み込みを除外するファイル・フォルダのパスを正規表現で指定する。指定しない場合は、すべてのファイルに適用される。
    •  overlays overlaysディレクトリに格納された上書き用パックに関するデータ。詳細は#パックの上書きも参照。
      •  entries:
        • 各上書きパックに関するデータ。
          •  directory: 上書きパックの名前。
          •  formats: 上書きパックが対応しているバージョン。 supported_formatsと構造は同じ。

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

雛形[]

複数バージョン対応、ファイルのフィルタリング、言語の追加、バージョンに応じた内容の上書きなどの特殊機能を使用しない場合は、pack.mcmetaの内容は次のようになる。

{
	"pack":{
		"pack_format": 22,
		"description": "ここにリソースパックの説明を入力"
	}
}

フォーマット[]

内容の作成[]

pack.mcmetaを作成したら、あとはリソースパックの内部に上書き・追加したい要素に関するファイルのみを作成することでリソースパックとして機能するようになる。

リソースパックに必要なファイルは、pack.mcmetaおよびいくつかのアイコンファイルを除きすべて/assets/<名前空間>/以下に保存する。この「名前空間」とはファイルを分類するための機能であり、プロジェクトごとにファイルを別々の名前空間フォルダに分けて保存しておくと名称の衝突を避けるとともに参照が容易になる。なお、ファイルの参照は名前空間をまたいでも正常に行える。また一般のMinecraftの要素はminecraft名前空間に分類される。名前空間ID#名前空間も参照。

ファイルの配置場所やそのファイルの記法等々については多岐に渡るため、ここではなくリソースパックの各要素の記事で紹介している。リソースパックで使用できる各要素については、#内容から簡単な機能の説明とともにリンクを掲載してある。

なお、.minecraft/versions/<バージョン名>にある<バージョン名>.jarファイルを展開した中にあるassetsフォルダはリソースパックの構造を満たしており、バニラで使用されている様々なデータを見ることができる。

不要なファイルやフォルダを消去してリソースパックの雛形として、またはリソースパックで使用するファイルの手本、あるいは参照先のパス・IDの確認に使用できる。

内容[]

以下では、リソースパックで追加・上書きできる各種の要素について簡単に解説する。詳しい説明やファイルの配置場所・ファイルの記法などについては、それぞれの記事を参照のこと。

言語[]

詳細は「言語のカスタマイズ」を参照

リソースパックを用いると、特定の言語の翻訳文を上書き・追加したり、ゲームに存在しない言語を実装することができる。

追加した翻訳文はJSONテキストを用いることで呼び出すこともでき、看板、コマンドで出力するメッセージなどを多言語対応させることができる。またバイオームの名前など、データパックを用いて新たに追加した要素の名称を定義する為にも必要となる場合がある。

テクスチャ[]

詳細は「テクスチャ」を参照

テクスチャを書き換えることで、ブロックやアイテム、エンティティやメニュー画面のデザインなど、ゲーム内の様々な要素の見た目を変更することができる。解像度などは自由に設定できるほか、一部のテクスチャにはアニメーション効果など、特殊な効果を設定することも可能である。

フォント[]

詳細は「フォントのカスタマイズ」を参照

リソースパックを用いると、テクスチャファイル、またはOpenTypeフォントTrueTypeフォントのフォントファイルなどを参照してフォントを追加・上書きすることができる。

追加したフォントはゲーム内でデフォルトの文字として使用することも、またJSONテキストを用いて呼び出すこともできる。

モデル[]

詳細は「モデル」を参照

リソースパックでは、ゲーム内で表示されるブロックアイテムの3Dモデルを書き替えることもできる。

ブロックはブロック状態ごとに別々のモデルを指定することができる。一方アイテムは overridesを使用することでアイテムの状態(使用中など)に応じて別のモデルを参照でき、特にcustom_model_dataを用いるとアイテムのNBTデータに基づいて任意のモデルを参照できる。

サウンド[]

sounds.json」も参照

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

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

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

テキスト[]

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 - メインメニューに表示されるスプラッシュテキストを規定しているテキストファイルである。改行ごとに個々のスプラッシュテキストが記述されており、どのスプラッシュも異なる内容に置き換えることができる。

シェーダー[]

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

リソースパックのシェーダーを用いるとゲームの描画を調整することができる。使用言語は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でリソースパック自体は複数のバージョンに対応していると宣言しつつ、特定のバージョンのみに対応しているとして設定した下位パックを用意することで、バージョンに応じた読み込み内容の調整を行うことに利用できる。

歴史[]

Java Edition
1.6.113w24aテクスチャパックに置き換わる機能としてリソースパックが追加された。1.5までのテクスチャーパックは Mojang の変換ツール (Minecraft Texture Ender) で変換出来る。
1.6.2HDフォントを使用した際にフォントが歪むバグが修正された[1]
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ファイルで変形設定できるようになった。
23w32aバージョンが17になった。
Pre-release 2バージョンが18になった。
1.20.323w42aバージョンが19になった。
23w43aバージョンが20になった。
23w45aバージョンが21になった。
テクスチャとして使用できる画像の拡張子が.pngのみになった。
Pre-Release 1バージョンが22になった。
開発中のJava Edition
1.20.524w03aバージョンが23になった。
24w05aバージョンが25になった。
24w06aバージョンが26になった。

関連項目[]

注釈[]

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

脚注[]

Advertisement