はじめに
ここで言うアドオンパックというのはビヘイビアパックやリソースパックの事を指しています。
以降では自分の環境で使っているアドオンパックをベースに話を進めます。
ビヘイビアパックやリソースパックと一言でいっても内容の規模が大きすぎて全容を理解するのは容易い事ではありません。
それを踏まえて、ここでは各パックを作成する前の基盤作りに主眼を置き、必要に応じて内容を付け足していく手法をとっていきます。
動作環境
- プラットフォーム
- Windows10
- マインクラフト(統合版)
- Windows Edition v1.21.21
最小限のフォルダ構成
最小限の構成は以下の通りでビヘイビアパックもリソースパックも同じです。
/<アドオンパックのルート>
manifest.json マインクラフトがアドオンパックを認識するための情報
pack_icon.png アドオンパックのアイコン
バニラでのアイコンサイズは64×64pxですが異なるサイズであっても自動で拡縮してくれるようです。ちなみにpack_icon.pngはなくても動作します。
ここで重要なのはmanifest.json
の方ですがビヘイビアパックとリソースパックそれぞれのファイル内容を以下でみていきます。
ちなみにmanifest.json
内ではユニークなIDとしてUUIDが使われていますが、本家のサイトでは以下のリンク先で取得する事を推奨しているようです。
ビヘイビアパックのファイル
ファイルの内容は以下の通りです。
UUIDには仮のアルファベットを記入していますが、それぞれ異なるIDである事を表しています。
{
"format_version": 2,
"header": {
"description": <ビヘイビアパックの説明>,
"name": <ビヘイビアパックの名前>,
"uuid":"AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"version": [1, 0, 0],
"min_engine_version": [1, 21, 0]
},
"modules":
[
{
"description": <モジュールの説明>,
"type": "data",
"uuid": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB",
"version": [1, 0, 0]
}
],
"dependencies": [
{
"uuid":"CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
"version":[1,0,0]
}
]
}
【format_version】
今は"2"固定で問題ないようです。
【header】
- ・description
- ビヘイビアパックの説明を記入します。ワールドの設定画面で表示されます(下図参照)
- ・name
- ビヘイビアパックの名前を記入します。ワールドの設定画面で表示されます(下図参照)
- ・uuid
- UUIDを記入します。上記"UUID Generator"のサイト等で取得
- ・version
- ビヘイビアパックのバージョンをメジャーバージョン、マイナーバージョン、リビジョンの順で記入します。最初は"1,0,0"か"0,0,1"で問題ないでしょう
- ・min_engine_version
- マインクラフトの対応基準にするバージョンをメジャーバージョン、マイナーバージョン、リビジョンの順で記入します。ビヘイビアパック作成時のバージョンを記入しておけば問題ないでしょう

【modules】
モジュールは複数指定できるようですが自分の環境では"data"タイプしか使用していませんので以下の1モジュール分のみ定義しています。
- ・description
- モジュールの説明を記入します。使われる事はないので開発者側のメモとして残しておくといいでしょう
- ・type
- "resources", "data", "world_template", "script"の指定ができますが自分の環境では"data"のみ使用しています
- ・uuid
- UUIDを記入します。上記"UUID Generator"のサイト等で取得
- ・version
- モジュールのバージョンをメジャーバージョン、マイナーバージョン、リビジョンの順で記入します。最初は"1,0,0"か"0,0,1"で問題ないでしょう
【dependencies】
ここはリソースパックと依存関係がある場合に参照される場所です。
- ・uuid
- 依存関係にあるリソースパックのheader部のUUIDを記入します。依存するリソースパックがない場合は先にUUIDを取得して記入しておけば、後からリソースパックを追加した時にそのまま使えます
- ・version
- 依存関係にあるリソースパックのheader部のバージョンを記入します。依存するリソースパックがない場合は"1,0,0"か"0,0,1"を設定しておけば問題ないでしょう
リソースパックのファイル
ファイルの内容は以下の通りです。
UUIDには仮のアルファベットを記入していますが、それぞれ異なるIDである事を表しています。
連携しているビヘイビアパックがある場合、header内のuuid
とversion
はビヘイビアパック用manifest.json
内のdependencies
の内容と合わせておく必要があります。
{
"format_version": 2,
"header": {
"description": <リソースパックの説明>,
"name": <リソースパックの名前>,
"uuid":"CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC",
"version": [1, 0, 0],
"min_engine_version": [1, 16, 0]
},
"modules": [
{
"description": <モジュールの説明>,
"type": "resources",
"uuid": "DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD",
"version": [1, 0, 0]
}
]
}
【format_version】
今は"2"固定で問題ないようです。
【header】
- ・description
- リソースパックの説明を記入します。ワールドの設定画面で表示されます(下図参照)
- ・name
- リソースパックの名前を記入します。ワールドの設定画面で表示されます(下図参照)
- ・uuid
- UUIDを記入します。上記"UUID Generator"のサイト等で取得
- ・version
- リソースパックのバージョンをメジャーバージョン、マイナーバージョン、リビジョンの順で記入します。最初は"1,0,0"か"0,0,1"で問題ないでしょう
- ・min_engine_version
- マインクラフトの対応基準にするバージョンをメジャーバージョン、マイナーバージョン、リビジョンの順で記入します。リソースパック作成時のバージョンを記入しておけば問題ないでしょう

【modules】
モジュールは複数指定できるようですが自分の環境では"resource"タイプしか使用していませんので以下の1モジュール分のみ定義しています。
- ・description
- モジュールの説明を記入します。使われる事はないので開発者側のメモとして残しておくといいでしょう
- ・type
- "resources", "data", "world_template", "script"の指定ができますが自分の環境では"resources"のみ使用しています
- ・uuid
- UUIDを記入します。上記"UUID Generator"のサイト等で取得
- ・version
- モジュールのバージョンをメジャーバージョン、マイナーバージョン、リビジョンの順で記入します。最初は"1,0,0"か"0,0,1"で問題ないでしょう
コメント記法
アドオンパック内のJSONファイルでは、以下のようにスラッシュ2つ("//")を付けてコメント表記が使えます。
// 【付与されるエンチャント】
//
// knockback ノックバック レベル1
// sharpness ダメージ増加 レベル2
// looting ドロップ増加 レベル3
{
"function": "specific_enchants",
"enchants": [
{"id": "knockback", "level": 1},
{"id": "sharpness", "level": 2},
{"id": "looting" , "level": 3}
]
}
おわりに
manifest.json
さえ出来てしまえば、あとは必要に応じて内容を付け足していけばいいだけなので、先に空のアドオンパックを追加しておくのもいいでしょう。
アドオンパックの適用方法については以下のページをご覧ください。
ルートテーブルの書き方は以下のページでご紹介しています。
今回ご紹介したファイルの内容は以下の環境で使用しているものです。
この環境ではまだ使っていない項目や、ここに記載していない項目もありますので、今後も必要に応じて内容を追加/修正していきます。