始めに
こんにちは餅わらびすとです。この記事では、自分がアドオン開発に役立つなと思った知識を紹介していきます。
目次
- 開発用フォルダ
- reloadコマンド
- エラー表示の有効化
- vscodeの拡張機能
- manifestのちょい知識
- 最後に
開発用フォルダ
まずは開発用フォルダについてです。便利な機能なんですが、知らない人も少なくないようです。
このフォルダは名前の通り、アドオン開発専用のフォルダです。
mcaddon,mcpackで入れるのと何が違うのかというと、それはアドオンの更新が手軽にできるということです。
具体的に言えば、アドオンをこの開発用フォルダに入れればアドオンに変更を加えた際わざわざアドオンを入れなおしたりワールドを変える必要がなくなります。開発用フォルダの中のファイルを編集し、ワールドを入り直すだけでアドオンが更新されるんです。
このフォルダは、マイクラのフォルダ内(com.mojang)に入っています。場所はネットに載っているので各自調べてください。
ビヘイビアパックがdevelopment_behavior_packs、リソースパックがdevelopment_resource_packsという名前です。
それぞれにmcpackやmcaddonでない解凍されたアドオンのフォルダを入れればワールドを入りなおすだけでアドオンが更新されるようになります。とても便利な機能なのでぜひ使ってみてください。
reloadコマンド
reloadコマンドは、先ほど紹介した開発用フォルダにアドオンを入れていると使えるコマンドです。(開発用フォルダに入っていなくても実行自体はできる)
このコマンドは、実行することでmcfunctionとscriptapiのファイルが再読み込みされます。つまりは、アドオン更新のためにワールドを入りなおす必要が一部なくなるということです。
mcfunctionやscriptapiを主として使っているアドオンクリエイターは開発スピードアップに繋がるので使ってみてください。
ちなみに、今後はreloadコマンドにallというパラメータが追加されアドオンを全て更新できるようにする予定もあるようです。
エラー表示の有効化
エラー表示(コンテンツログGUI)とは、書き方が間違っているなどの問題で機能しない場所と原因を教えてくれる機能です。
大規模なアドオンとなるとエラー表示なしでは機能しない原因を自力で探すのは困難なので、アドオン制作では必須級ですね。
エラーは、メニューの設定から「コンテンツログGUIの有効化」をオンにすることで表示できます。
vscodeの拡張機能
アドオン制作でvscodeを使っているならば、Blockception”s Minecraft Bedrock Developmentという拡張機能を入れることをおすすめします。
この拡張機能は、アドオンの補完機能が使えるようになるものです。アドオンのフォルダに、ビヘイビアならBP、リソースパックならRPという名前を付ければ補完が有効になります。
アドオンを作るならばとても便利な拡張機能なのでぜひ入れてみてください。
manifestのちょい知識
format_version
特別な理由がない限りは、format_versionは2にしておいてください。
たまに1にしている人を見かけます。これはPE版がBE版になる前のアドオンのバージョンなんですが、体感1だと謎バグが発生することが多いので個人的にはあまりおすすめしません。
header/min_engine_version
アドオン全体のバージョンを指定できます。マイクラのバージョンを入れます。
“min_engine_verion”: [ 1, 21, 10 ]
例を出すと、min_engine_versionを1,19,0に設定するとアドオン内のコマンドで旧executeが使える、新しめのバージョンにすると新しいバージョンのコンポーネントが使えるようになる(古いコンポーネントは復活しない)…みたいな。
基本的には最新にしておくことをおすすめします。
header/version
アドオン自体のバージョンを指定できます。
“version”: [ 1, 0, 0 ]
例えばversionを1,0,0から1,1,0に変えたアドオンを導入すると、uuidが同じでもアドオンが重複せず、別のアドオンとして認識してくれます。
ちなみに、ワールドのフォルダのbehavior_packs,resource_packsのversionを変えるとワールドのアドオンが更新されるらしいです。
capabilities
自分が最近知った機能です。capabilitiesでは、通常のアドオンではあまり使わない要素を有効にできるそう。
レイトレーシング(RTX)、遅延ライティング(PBR)、ScriptAPIでのevalの有効化などがあたります。
“capabilities”: [ “raytraced“, “pbr”, “script_eval” ]
ScriptAPIのモジュールのバージョン
最近、モジュールのバージョンに2.0.0-alphaが指定できるようになりました。
2.0.0-alphaは今のところ、常に最新のbetaバージョンが割り当てられるようなものだとか。つまり、betaバージョンが変わったとしてもバージョンを2.0.0-alphaにしておけば毎回更新する必要が無くなります。(ただし最新バージョンで破壊的変更がされてしまう可能性はある)
最後に
「こんなのもあるよ」「ここ間違ってるよ」ってのがあれば教えてほしいです。
なにか質問があるときはこちらのディスコードサーバーから受け付けています。どんな人も大歓迎!
一応ここのコメントでも受け付けますが内容が複雑になると判断した質問は受け付けません。
それでは良いアドオンライフを!
コメント
ScriptAPIでマイクラ人狼を作ろうとしているのですが、役職別(タグコマンド別)でItemUseを区別する方法はありますでしょうか。
【例】
stickを使うとUIを表示する。人狼が使うと人狼のショップ、村人が使うと村人のショップを開く。
コメントありがとうございます
PlayerにhasTagメソッドがあるのでそれを使いifで処理を分けてください