マイクラのアドオンを作ってみる【その4】
・始めに
今日からいよいよ、アドオンを製作していく。
…といっても、今日作るのは「機能がないアドオン」つまり、
「マイクラにアドオンを認識させる工程」これを作っていく。
ファイルの作り方については解説しないけど、まあ多分分かると思う()
4.manifest.json徹底解剖
いきなりですが、今回の講座で一番重要な「manifest.json」を徹底解剖。
上から順番に解説していきまするーー。
コードはこちら↓
"format_version": 2,
"header": {
"description": "アドオンの説明文",
"name": "アドオンの名前",
"uuid": "uuid1",
"version": [0, 0, 1],
"min_engine_version": [ 1, 21, 50 ]
},
"modules": [
{
"description": "アドオンの説明文",
"type": "resources",
"uuid": "uuid2",
"version": [0, 0, 1]
}
]
}
◯"format_version"【必須】
manifest.jsonの書き方のバージョン。
「1」と「2」が選べるけど、スキンパック(スキンを追加するやつ、ショップで売ってる感じのやつ)では無いなら、「2」を選択すればオッケー。
今回は「リソースパック」と「ビヘイビアパック」を作るので、「2」を選択。
◯"header"【必須】
マイクラのアドオン一覧の画面に表示される色々を定義しているやつ。
「フォルダ」と「ファイル」の関係で言ったら、「フォルダ」にあたります。
・"description"【必須】
マイクラのアドオン一覧の画面に表示される説明文です。
「どういうアドオンなのか」を書きます。
・"name"【必須】
マイクラのアドオン一覧の画面に表示される名前です。
アドオンの名前を書きます。(そのまんま)
・"uuid"【必須】
manifest.json自体を他と区別する為の、個別IDみたいなやつ。
「uuid v4」という規格のIDが使われてます。
「他と被ってはいけない」という特徴があります。
uuidは自動で生成してくれるサイトがある(さっき使ったサイトもそう)ので、
そこで生成するのを強く推奨します。
・"version"【必須】
マイクラのアドオン一覧の画面に表示されるバージョンです。
アドオン自体(リソースパックもビヘイビアパックも含めて)のバージョンです。
大きなアップデートなら左端の数値を、中くらいのアップデートなら真ん中の数値を、小さいアップデートなら右端の数値をそれぞれ1ずつ大きくするのが一般的です。
この「version」は基本的に、「(リソースパックでもビヘイビアパックでも良いけど)アドオンのアップデートをしたら数字を大きくする」事になっています。
「なんで大きくしないといけないの?」と思った方。
まず前提として、「アドオンのアップデート」って、「元のアドオンとは異なるアドオンになる」事を示します。
なぜなら、「同じアドオン」というのは「ファイルの内容もフォルダの構成も、何もかもが同じアドオン」を指す言葉だからです。
したがって、このままバージョンを変えずにマインクラフトにインポートをすると、「違うアドオンが同じUUIDを持っている」という、割と大変な事になります。
このままだとマインクラフト君は違うアドオンだと判別出来ず、「重複したアドオンを検知しました」とエラーを出すわけです。
ただしマインクラフト君はちょっと有能なので、「アップデートをしたよ」と「"version"」の値を大きくしてあげれば、通常通りアドオンを読み込み、自動でアップデートをしてくれます。マジか神かよ便利すぎん???
ですので、基本的には「アドオンのアップデートをしたら数字を大きくする」事になっているのです。
…そう、「基本的には」なんです。
「じゃあ例外は何だよ」と思った方。ご説明します。
先ほど「"version"の値を大きくしないと、違うアドオンが同じUUIDを持っている状況になる」と書きました。
では、いっそのこと「"version"の値を変えずにUUIDを変えてみる」とどうなるでしょう。
答えは、「別のアドオンとして認識され、エラーも出ない」です。
したがって、「アドオンをアップデートするごとにUUIDを変える」という方法でも対策が可能です。
しかし、面倒くさいのと「パッと見でアップデートをしたと分かりづらい」ので、「"versions"」の値を大きくする方法が推奨されています。
・"min_engine_version"【必須】
このアドオンが動く、マインクラフトの一番古いバージョンです。
という事なので、正直既に存在している統合版マインクラフトのバージョンなら、どのバージョンを書いても良いです。(snapshotと呼ばれる試験バージョンは除く)
2024/11/15現在だと、最新バージョンが1.21.50とかだったはずなので、「1.21.50」かそれ以前のバージョンを書いておけば動きます。
悩んだら「1.16.50」とでも書いておきましょう。動きます。
◯"modules"【必須】
マイクラのアドオン一覧の画面には表示されません。
このmanifest.jsonで使う機能を定義しているやつ。
「フォルダ」と「ファイル」の関係で言ったら、「フォルダ」にあたります。
・"description"【任意】
正しくは「manifest.jsonで使う機能の説明」です。
ただ、「そんなもん書いた所でなぁ…」なのと、単純に分かりづらいので、「"header"」の「"description"」と同じ説明文を書くことが多いです。
つまり、
・"type"【必須】
「manifest.jsonで使う機能の種類」です。
機能には以下の種類があります。
・resources(リソースパック)
・data(ビヘイビアパック)
・script(スクリプト)
・world_template(ワールドテンプレート)
例えば「リソースパックを作りたい」というなら、「resources」を選択します。
また、「ビヘイビアパックを作りたい」というなら、「data」を選択します。
「script」、「world_template」については、また別の機会に解説します。
・"uuid"【必須】
"modules"自体を他と区別する為の、個別IDみたいなやつ。
必ず、「"header"」の「"uuid"」とは違うUUIDにしてください。
以下は「"header"」の「"uuid"」から引用
・"version"【必須】
"modules"のバージョンです。
例えば「"modules"」の「"type"」が「"data"」、つまりビヘイビアパックの場合。
例えばビヘイビアパックはそのままで、リソースパックをアップデートしたら、「リソースパックのmanifest.jsonの『"modules"』の『"version"』を変更」
「リソースパックとビヘイビアパックの『"header"』の『"version"』を変更」
する事になります。ビヘイビアパックのmanifest.jsonの『"modules"』の『"version"』はそのままでオッケーです。
つまり、manifest.json自体(=アドオン自体のバージョン)とは別に、「それぞれ(リソースパックとビヘイビアパック)でアップデートをした場合に変更する数値」となっています。
分かりづらい場合は、アップデートをするたびに
「リソースパックとビヘイビアパック両方のmanifest.jsonの『"header"』の『"version"』を変更」
「リソースパックとビヘイビアパック両方のmanifest.jsonの『"modules"』の『"version"』を変更」
すると覚えておいてください。
5.「機能がないリソースパック」を作ろう
ほな、解説も終わったのでいよいよ作っていく。
今回作るアドオンのリソースパックはこんな感じのファイル構造。
📂resource_pack
├📄manifest.json
└🖼️pack_icon.png
えっ少なそれじゃあ作っていこう。
5-1.resource_packフォルダを作る
ざっくりですが解説を…。
1.ファイルアプリを開きます。
2.「behavior_pack」という名前のフォルダを作成します。かーんせい。(ばなな)
5-2.manifest.jsonを作る
さっきのコードをもう一度。
多分、このコードが理解できるようになってるはず。
(うちの記事にそんな特効性はありません)
{
"format_version": 2,
"header": {
"description": "アドオンの説明文",
"name": "アドオンの名前",
"uuid": "uuid1",
"version": [0, 0, 1],
"min_engine_version": [ 1, 21, 50 ]
},
"modules": [
{
"description": "アドオンの説明文",
"type": "resources",
"uuid": "uuid2",
"version": [0, 0, 1]
}
]
}
【作り方】
1.ファイルアプリでテキストファイルを作る。
2.上記のコード(黒い四角の中に書いてあるやつ)をコピーする。
3.さっき作ったテキストファイルに2.でコピーしたやつをペーストする。
4.ここのサイトに飛び、文字列をコピーして「"uuid1"」と書いてある所にペースト。
5.もう一度ここのサイトに飛び、文字列をコピーして「"uuid2"」と書いてある所にペースト。
5.「"アドオンの名前"」と書いてある所を、好きな名前に変更する。
6.「"アドオンの説明文"」と書いてある所(2箇所とも)を、好きな説明文に変更する。
(⚠️改行したい時、エンターキーなどを押して改行をするとアドオンが動かなくなるので、「\n」という文字列を改行したい位置に書く事で、改行が出来る。)
7.テキストファイルの拡張子を「.json」にする。
…というのが本来のやり方ですが。
面倒くさいし分かりづらいですよね。
というわけで、簡単にmanifest.jsonを作れるプログラムを作りました。
1.ここのサイトに飛ぶ
2.「アドオン名」に作りたいアドオンの名前を入れる
3.「アドオン説明文」に作りたいアドオンの説明文を入れる
4.「アドオン種類」で、「リソースパック」を選択する
5.「アドオン最小バージョン」で、「1.21.50」を選択する
6.「作成!」を押す
これでmanifest.jsonがダウンロードされました。
終了です。あぁ…楽っ…!!!()
5-3.リソースパックを完成させる
…はい。もう完成です。早かったですねえ…。
ではでは、完成させていきましょう。
1.「5-1」で作ったフォルダに、「5-2」で作ったmanifest.jsonを入れる。
2.更にそのフォルダに、好きな画像(pack_iconという名前で、pngという拡張子の画像)を入れる。
3.resource_packsフォルダをzip圧縮する。
4.resource_packsフォルダの拡張子を「.zip」から「.mcaddon」に変える。
5.出来上がったファイルをクリックすると、マインクラフトが起動して、アドオンのインポート完了。
6.「機能がないビヘイビアパック」を作ろう
リソースパックとほぼ同じですが、解説を見ていきましょう。
今回作るアドオンのビヘイビアパックはこんな感じのファイル構造。
📂behavior_pack
├📄manifest.json
└🖼️pack_icon.png
変更点は、フォルダの名前が「resource_pack」から「behavior_pack」に変わった事のみ。それじゃあ作っていこう。
6-1.behavior_packフォルダを作る
「5-1」と同じようにして…。
1.ファイルアプリを開きます。
2.「behavior_pack」という名前のフォルダを作成します。かーんせい。
6-2.manifest.jsonを作る
さっきの手順とほぼ同じです。
「アドオン種類」で、「ビヘイビアパック」を選択する事だけ注意してください。さっきとの変更点はそれだけ。
1.ここのサイトに飛ぶ
2.「アドオン名」に作りたいアドオンの名前を入れる
3.「アドオン説明文」に作りたいアドオンの説明文を入れる
4.「アドオン種類」で、「ビヘイビアパック」を選択する
5.「アドオン最小バージョン」で、「1.21.50」を選択する
6.「作成!」を押す
これでmanifest.jsonがダウンロードされました。
終了です。あぁ…楽っ…!!!(コピペしてるのバレるよね)
6-3.ビヘイビアパックを完成させる
…はい。もう完成です。早かったですねえ…。
ではでは、完成させていきましょう。
1.「6-1」で作ったフォルダに、「6-2」で作ったmanifest.jsonを入れる。
2.更にそのフォルダに、好きな画像(pack_iconという名前で、pngという拡張子の画像)を入れる。
3.behavior_packsフォルダをzip圧縮する。
4.behavior_packsフォルダの拡張子を「.zip」から「.mcaddon」に変える。
5.出来上がったファイルをクリックすると、マインクラフトが起動して、アドオンのインポート完了。
・おまけ
おまけと言っておきながら、実はとても大事。
テストで裏側にも問題がないか、確認する作業くらい大事。
先ほどリソースパックとビヘイビアパックをバラバラにマインクラフトにインポートしましたが、面倒くさいですよね。
そこで、一括でインポート出来る技をお教えします。
1.「addon」という名前のフォルダを作成。
2.「5-3」と「6-3」で作った「.mcaddonファイル」を、1で作ったフォルダに入れる。
3.このフォルダをzip圧縮する。
4.このフォルダの拡張子を「.zip」から「.mcpack」に変える。
5.出来上がったファイルをクリックすると、マインクラフトが起動して、アドオンのインポート完了。
・終わりに
ついにアドオンを作れましたね、お疲れ様でした。
次回はエンティティを追加してみます!
段々と楽しくなってきましたねえ…。
次の記事はこちら↓
製作中
このシリーズの記事まとめはこちら↓
ほなまた。