0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【マインクラフト(統合版)】カスタムアドオンパックことはじめ

Last updated at Posted at 2024-08-26

はじめに

ここで言うアドオンパックというのはビヘイビアパックやリソースパックの事を指しています。
以降では自分の環境で使っているアドオンパックをベースに話を進めます。

ビヘイビアパックやリソースパックと一言でいっても内容の規模が大きすぎて全容を理解するのは容易い事ではありません。

それを踏まえて、ここでは各パックを作成する前の基盤作りに主眼を置き、必要に応じて内容を付け足していく手法をとっていきます。

動作環境

プラットフォーム
Windows10
マインクラフト(統合版)
Windows Edition v1.21.21

最小限のフォルダ構成

最小限の構成は以下の通りでビヘイビアパックもリソースパックも同じです。

最小限のフォルダ構成
/<アドオンパックのルート>
    manifest.json   マインクラフトがアドオンパックを認識するための情報
    pack_icon.png   アドオンパックのアイコン

バニラでのアイコンサイズは64×64pxですが異なるサイズであっても自動で拡縮してくれるようです。ちなみにpack_icon.pngはなくても動作します。

ここで重要なのはmanifest.jsonの方ですがビヘイビアパックとリソースパックそれぞれのファイル内容を以下でみていきます。

ちなみにmanifest.json内ではユニークなIDとしてUUIDが使われていますが、本家のサイトでは以下のリンク先で取得する事を推奨しているようです。

ビヘイビアパックのファイル

ファイルの内容は以下の通りです。
UUIDには仮のアルファベットを記入していますが、それぞれ異なるIDである事を表しています。

ビヘイビアパックのmanifest.jsonの内容
{
    "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内のuuidversionはビヘイビアパック用manifest.json内のdependenciesの内容と合わせておく必要があります。

リソースパックのmanifest.jsonの内容
{
    "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つ("//")を付けてコメント表記が使えます。

JSONファイル内でのコメント表記
// 【付与されるエンチャント】
// 
// knockback    ノックバック    レベル1
// sharpness    ダメージ増加    レベル2
// looting      ドロップ増加    レベル3
{
    "function": "specific_enchants",
    "enchants": [
        {"id": "knockback", "level": 1},
        {"id": "sharpness", "level": 2},
        {"id": "looting"  , "level": 3}
    ]
}

おわりに

manifest.jsonさえ出来てしまえば、あとは必要に応じて内容を付け足していけばいいだけなので、先に空のアドオンパックを追加しておくのもいいでしょう。

アドオンパックの適用方法については以下のページをご覧ください。

ルートテーブルの書き方は以下のページでご紹介しています。

今回ご紹介したファイルの内容は以下の環境で使用しているものです。

この環境ではまだ使っていない項目や、ここに記載していない項目もありますので、今後も必要に応じて内容を追加/修正していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?