Minecraft Wiki
Advertisement
この記事では、データパックそのものについて説明しています。コマンドについては「コマンド/datapack」を、リソースパックについては「リソースパック」をご覧ください。
Information icon
この項目はJava Edition限定の要素です。 

データパック(英:Data Pack)は、プレイヤーがMinecraftをカスタマイズすることができるシステムである。

データパックを使用することで、コードを変更しなくても進捗ディメンション関数ルートテーブルプレディケートアイテム修飾子レシピ構造物タグダメージの種類ワールド生成設定バイオーム防具装飾を上書きしたり、新しく追加できる。

使用方法[]

Datapack Screen

「データパックの選択」画面。

データパックを特定のワールドで使用するためには、データパックを.minecraft/saves/<ワールド名>/datapacksに保存する必要がある。この際、データパックはフォルダの状態のままでも、.zip ファイルでもよい。データパックをフォルダに入れたら、/reloadコマンドを実行するか再ログインすることでそのワールドでデータパックが有効化される。

データパックは、読み込み順に基づいてデータが読み込まれる。/datapack コマンドを使用することでこの順序の表示や変更を行うことができる。読み込み順はlevel.datファイルに保存される。

またワールド新規作成画面でもそのワールドで使用するデータパックを設定することが可能である。「その他の設定」タブから「データパック」のボタンを押して開く画面において、データパックのフォルダおよびzipファイルをドロップすると、ワールドの生成前にデータパックを読み込むことができ、読み込み順の設定も容易である。

作成方法[]

フォルダの作成[]

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

pack.mcmeta[]

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

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

  • 最上位のオブジェクト
    •  pack: データパックの基本情報を記述する。
      •  description: パックの説明文。JSONテキストで記述する。/datapack listの一覧上のパック名にカーソルをかざした時と、ワールド新規作成画面に表示される。
      •  pack_format: このパックのバージョン。ゲームのバージョンに合ったバージョンを指定する必要がある。バージョンの対応は#フォーマットを参照。
      •  supported_formats: (任意)このパックが対応しているバージョンを指定する。複数のバージョンを指定することで、16以降の複数のバージョンに対応したデータパックにすることができる。単一の値を指定する場合は 整数で、対応バージョンを列挙する場合は リスト形式で、バージョンの上限と下限を設定する場合は オブジェクト形式で指定する。このフィールドがあっても、バージョン15以前の環境における認識の都合で pack_formatを省略することはできない。
        • : リスト形式の場合は、リスト内にパックバージョンを示す整数を並べる。
        •  min_inclusive: オブジェクト形式の場合は、ここに下限値を整数で入力する。
        •  max_inclusive: オブジェクト形式の場合は、ここに上限値を整数で入力する。
    •  filter: データパックからファイルをフィルタリングするためのセクション。 block内の条件に一つでも合致したファイルは読み込まれなくなる。
      •  block: 条件のリスト
        • それぞれのパターン。
          •  namespace: フィルタリングするファイルが含まれる名前空間(正規表現)。指定しない場合は、すべての名前空間に適用される。
          •  path: フィルタリングするファイルのパス(正規表現)。指定しない場合は、指定された名前空間内のすべてのファイルをフィルタリングする。
    •  features: 有効化する要素フラグ[1]。要素フラグとはゲーム内の特定の要素(ブロックやエンティティ、アイテムなど)を有効化・無効化するための機能である。要素フラグのIDと掌る要素はプログラム上に記述されておりカスタマイズすることはできない[注釈 1]
      •  enabled: 要素フラグのIDのリスト。
    •  overlays overlaysディレクトリに格納された上書き用パックに関するデータ。詳細は#パックの上書きも参照。
      •  entries:
        • 各上書きパックに関するデータ。
          •  directory: 上書きパックの名前。
          •  formats: 上書きパックが対応しているバージョン。 supported_formatsと構造は同じ。

雛形[]

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

{
	"pack":{
		"pack_format": 26,
		"description": "ここにデータパックの説明を入力"
	}
}

フォーマット[]

内容の作成[]

pack.mcmetaを作成したら、あとはデータパックの内部に上書き・追加したい要素に関するファイルのみを作成することでデータパックとして機能するようになる。データパックで使用するファイルはその大半がJSONファイルであり、その記法はそちらの記事で解説されている。

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

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

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

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

内容[]

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

進捗[]

詳細は「進捗/JSONフォーマット」を参照

進捗(英:Advancement)はプレイヤーのゲームプレイの進行に応じてその達成を称え、さらなる進行を促すゲームシステムである。

データパックにおいてはその本来の用途はもちろんのこと、達成要件を確認するためにワールド内で発生したさまざまな事象を検出する能力を有し、さらに動作を検出したら関数を実行することができるため、特定の事象に呼応して何らかの反応を発生させるために使用される。

バニラのゲームでも、レシピの開放には進捗が用いられている。

ダメージの種類[]

詳細は「ダメージの種類」を参照

ダメージの種類(英:Damage Type)は文字通り、各ダメージの持つ属性を定義している。

ダメージの種類単体では、そのダメージで死んだ際に表示される死亡メッセージ難易度による変動具合、被ダメージ時のサウンドなどを設定することができる。これに加えダメージの種類タグを使用すると、耐性や貫通などの仕様も操作することができる。

なおカスタマイズしたダメージの種類は現在/damageを用いてのみ与えることができる。

関数[]

詳細は「関数 (Java Edition)」を参照

関数(英:Function)は、複数のコマンドを管理しやすく一纏めにして実行するための機能である。コマンドブロックよりもラグを引き起こしにくく、またテキストファイルであるために極めて簡単に編集することができる。

マクロ機能を使用すると、コマンドの構文中に変数部を組み込み、実行の際に値をワールドから取得しそこへ代入することもできる。

関数は/functionコマンドで実行できるほか、関数タグ#tickに含まれる関数は毎ティック実行、#loadに含まれる関数はワールド読み込み時に実行させることができる。

アイテム修飾子[]

詳細は「アイテム修飾子」を参照

アイテム修飾子(英:Item Modifier)は、/itemコマンドで呼び出すことでアイテムスタックに対する特殊な操作・編集を行うことができる機能である。

アイテム修飾子の中の一つ一つの操作単位であるアイテム関数はルートテーブルでも使用される。

ルートテーブル[]

詳細は「ルートテーブル」を参照

ルートテーブル(英:Loot Table)は、チェストなどのブロックを開いた時やエンティティを倒した時など様々な「アイテムが生成される場面」において、生成されるアイテムの候補を設定する機能である。

プレディケートを用いた条件指定やアイテム関数を用いたアイテムのデータの編集、アイテムの生成が発生した際の周囲の状況からのパラメータ取得など、詳細な設定が可能である。

プレディケート[]

詳細は「プレディケート」を参照

プレディケート(英:Predicate)は、ワールド内の要素が条件に適合するかどうかを確認するために呼び出される機能である。

引数predicateを用いたターゲットセレクターの絞り込み、/execute if predicateコマンドによる条件確認などで呼び出されるほか、進捗やルートテーブルの内部にも存在する。

レシピ[]

詳細は「レシピ (システム)」を参照

レシピ(英:Recipe)とは、クラフト製錬鍛冶台石切台などにおいて材料のアイテムと加工後のアイテムの対応を定義するシステムである。

鍛冶など特殊なレシピを除けば、レシピを使って加工後のアイテムのNBTを設定することはできない。NBTを設定したい場合はレシピを直接使用せず、/itemコマンドやプレディケート、アイテム修飾子を用いるなどの手法がある。

タグ[]

詳細は「タグ」を参照

タグ(英:Tag)はブロックエンティティの種類、液体液体ゲームイベントアイテムバイオーム構造物スーパーフラットのプリセットワールドプリセットネコの種類、絵画の種類、の模様の種類、楽器関心地点ダメージの種類関数をグループとしてまとめることのできる機能である。

グループとしてまとめた要素はコマンドやデータパック内の他のJSONファイルから呼び出すことができるほか、バニラで使用されているタグにはそのタグごとに特殊な用途・機能が存在している。

防具装飾[]

詳細は「カスタム防具装飾」を参照

防具装飾(英:Armor Trim)とは鍛冶型を用いて防具に模様を施すことができるゲーム要素であるが、データパックとリソースパックを使用すると防具装飾に新たな模様・色を追加することが可能である。

さらにレシピを使用すれば、新しく追加した防具装飾を通常のゲームプレイ内で実際に鍛冶で付与することも可能である。

ワールド生成[]

詳細は「カスタムワールド生成」を参照

カスタムワールド生成(英:Custom World Generation)では、ワールドに生成される地形や地表のブロック、洞窟ディメンションバイオーム生成物構造物をカスタマイズすることができる。

内容が多岐に渡るので、各項目に関する大まかな説明はカスタムワールド生成に記載してある。各項目のJSONの記法については、そこからさらに個別の記事を参照のこと。

パックの上書き[]

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

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

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

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

歴史[]

Java Edition
1.1317w43aデータパックが追加された。
17w46a/datapack コマンドが追加された。このコマンドは、読み込まれたデータパックを操作するためのコマンドである。
17w48aデータパックから自分のオリジナルのレシピを読み込めるようになった。
17w49aデータパックでタグが使えるようになった。
17w49b関数をタグでタグ付けできるようになった。
minecraft:tickでタグ付けされた関数が、毎ティック開始時に実行されるようになった。
18w01aset_name関数がルートテーブルに追加された。
minecraft:loadでタグ付けされた関数が、読み込まれた時(もしくは再読み込みされた時)に一度実行されるようになった。
クラッシュレポートに、有効になっているデータパックの一覧が表示されるようになった。
1.1418w43aエンティティ種別をタグ付けできるようになった。
1.1519w38a述語を定義できるpredicatesフォルダが追加された。
1.1620w22aデータパックがクラッシュしないように、データパックの読み込みの仕組みが少し変わった。
データパックがファイルを再読み込みした際に、ゲームには変更が反映されず以前のデータを使用し続けるようになった。
データパックのリストへの変更は、読み込みが成功した後にのみ保存されるようになった。
既存のデータパックがワールドの読み込みを妨げている場合は、セーフモードでワールド(バニラのデータパックのみを使用)を起動するかどうかを選べるようになった。
サーバーの設定に、バニラのデータパックのみを読み込むかどうかを決定する--safeModeが追加された。
要求されているタグの欠落、ワールド読み込みの阻害など、データパックの致命的な問題をゲームが検出できるようになった。
Pre-release 1ワールドが作成される前に、データパックをロードできるようになった。
データパックは、dimensionとディメンションタイプを追加および変更できるようになった。
1.16.220w27aデータパックが、ワールド生成前から読み込めるようになった。
20w28aカスタムワールドで、カスタムバイオームがカスタムディメンション生成子で使用できるようになった。
データパックがworldgenフォルダ内でワールド生成をカスタマイズできるようになった。
Release Candidate 1フォーマットのバージョンが6に上がった。
1.1720w45aversion.json内の対応するパックのバージョンが、データパックとリソースパックで別々に記述されるようになった。
20w46aフォーマットのバージョンが7に上がった。
1.1821w37aフォーマットのバージョンが8に上がった。
1.18.2Pre-release 1ゲームがデータ駆動型の構造物を生成・保存するようになり、カスタムの構造物を追加できるようになった。
洞窟の生成がデータパックを用いて編集できるようになった。
上記の変更に伴い、フォーマットのバージョンが9に上がった。
1.1922w11aフォーマットのバージョンが10に上がった。
1.19.322w42a下位セクションchat_typeが追加された。
下位セクションdatapacksが追加された。
バニラのワールド生成データパックが、ゲームの.jarファイルから見られるようになった。
1.19.423w03aフォーマットのバージョンが11に上がった。
23w06aダメージの種類が追加された。
フォーマットのバージョンが12に上がった。
1.2023w12a看板のフォーマットの変更により、フォーマットのバージョンが13に上がった。
23w16aフォーマットのバージョンが14に上がった。
23w18aフォーマットのバージョンが15に上がった。
1.20.223w31aバージョンが16になった。
pack.mcmetaファイルにsupported_formatsが追加され、バージョン16以降の複数のバージョンに対応したパックが作成できるようになった。
読み込み環境の対応バージョンに応じてパックの内容を上書きできるoverlaysディレクトリが追加され、pack.mcmetaにも対応するフィールドが追加された。
23w31aバージョンが17になった。
Pre-release 1バージョンが18になった。
1.20.323w40aバージョンが19になった。
23w41aバージョンが20になった。
23w42aバージョンが21になった。
23w43aバージョンが22になった。
23w44aバージョンが23になった。
23w45aバージョンが24になった。
23w46aバージョンが25になった。
Pre-Release 1バージョンが26になった。
開発中のJava Edition
1.20.523w51aバージョンが27になった。
24w03aバージョンが28になった。
24w04aバージョンが29になった。
24w05aバージョンが30になった。
24w06aバージョンが31になった。

問題点[]

「データパック」に関する問題点は、バグトラッカーにて管理されている。問題点の報告はそちらで行ってほしい。

関連項目[]

注釈[]

  1. 今まで存在した要素フラグ:
    "update_1_20"(1.20の新要素): 22w42a-23w12a
    "bundle"(バンドルの開発用): 22w42a-
    "trade_rebalance"(村人の取引の再調整の開発用): 23w31a-
    "update_1_21"(1.21の新要素): 23w42a -
  1. "Minecraft Snapshot 22w42a" – Minecraft.net
Advertisement