この記事で紹介したように、Minecraft BE 版(統合版)でもアドオン(Mod開発)ができるようになりました。
個人的に気になったので、アドオン開発をやってみたいと思います。参考リンクはこちらから。
1. ファイル構成
統合版は C:\Users\<ユーザ名>\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang
というディレクトリにてリソースパックやスキンなどが保存されます。
今回はリソースパックのアドオンをつくるので、development_resource_packs
ディレクトリ内にて作業を行います。
2. Visual Studio Code の拡張機能
開発するにあたって、便利な拡張機能を入れておきます。
Bedrock Definitions 拡張機能は統合版のソースコード参照が行える機能です。
Blockception’s Minecraft Bedrock Development 拡張機能は統合版のソースコードを書くときのシンタックスハイライトと、補完機能をサポートしてくれます。
3. マニフェストファイルの作成
こちらの手順を参考に作ります。
development_resource_packs
ディレクトリ内に、適当な名前のディレクトリを作っておきます。
このディレクトリに移動し、manifest.json
ファイルを作成します。これはマニフェストファイルといい、リソースパックに関する情報を定義します。ファイルの中には下記のように、リソースパックの名称や対応バージョン、説明などを書きます。
また、UUID (Universally Unique Identifier) の記入が必要なので、こちらのサイトから生成して、uuid
要素に書き込んでください。
{ "format_version": 2, "header": { "description": "なんかすごいりそーすぱっく", "name": "TakunologyRP", "uuid":"", "version": [1, 0, 0], "min_engine_version": [1, 16, 0] }, "modules": [ { "description": "なんかすごいりそーすぱっく", "type": "resources", "uuid": "", "version": [1, 0, 0] } ] }
記述できたら保存しましょう。
4. テクスチャの作成
土ブロックをオリジナルのテクスチャに変更してみます。
manifest.json
と同じディレクトリに textures
ディレクトリを作り、その中に blocks
ディレクトリを作ります。
ペイントで16×16のドット絵を作ります。これを dirt.png
という名前にして、blocks
ディレクトリに保存します。(必ずPNG形式にしてください。)
5. 動かしてみる
できたらマイクラ(統合版)を起動して、リソースパックが認識しているか確かめてみましょう。
「設定」→ 「グローバルリソース」→「マイパック」から確認できます。
ワールド生成時に、「有効化」を行うとリソースパックが適用されて、土ブロックが先程描いたテクスチャに変更されます。
うわぁ…気持ち悪い土ブロックだぁw
Java版 (Forge) のMod開発よりも楽にできるので、だいぶマイクラMod開発のハードルが下がったかと思います。
エラーになってしまう場合
すでにバツ印になってしまっており、
「指定された UUID ‘/header/uuid’ エレメントは、既にパックマニフェストに存在します。」というエラーが出ます。
これは UUID が重複しているためです。ヘッダに定義した uuid
と modules
要素内の uuid
が同じだとこのようなエラーが表示されて読み込まれません。必ず2つの UUID を生成して、それぞれ別の値を使用してください。
{ "format_version": 2, "header": { "description": "なんかすごいりそーすぱっく", "name": "TakunologyRP", "uuid":"1つ目のUUID", "version": [1, 0, 0], "min_engine_version": [1, 16, 0] }, "modules": [ { "description": "なんかすごいりそーすぱっく", "type": "resources", "uuid": "2つ目のUUID(1つ目とは別にする)", "version": [1, 0, 0] } ] }
補足
JSONの各要素について
Header 要素
header
: リソースパックの名称、説明などの情報を記述する箇所description
: 説明文章(名称の下に表示されるので1~2行程度でまとめるのを推奨している)name
: リソースパックの名称(必須項目)uuid
: 他のリソースパックと区別するためのユニークIDversion
: リソースパックのバージョン(メジャー、マイナー、リビジョン)min_engine_version
: 利用できる Minecraft の最小バージョン
Modules 要素
modules
: コンテンツの種類に関する情報を記述する箇所description
: モジュールに関する説明(現在はあまり意味は持たないらしい)type
: モジュールの種類 (resource, data など使い分ける)uuid
: モジュールのUUID (モジュールごとにユニークである必要がある)version
: 以前に導入されたことがあるモジュールを導入するためのバージョン(よくわからん)
イベントのお知らせ
2021年10月31日(日曜日)に、MS Tech Camp 1周年記念イベントを行います!
MS Tech Camp シリーズのイベントでは、Microsoft Azure や Github, Minecraft などを用いたハンズオンを行ってきました。今回はゲスト登壇や、MS Tech Camp でやってきた内容の総まとめライブコーディングなどを行う予定です。学生の方だけでなく社会人の方も、お気軽にご参加ください!
当日は Youtube Live での配信予定です。