Minecraft(マイクラ)のアドオンとScript APIとは?

マイクラのアドオンを自分でも作ってみたいけど、そもそもアドオンって何?Script APIっていうものを使えばプログラムを書けるらしいけど、Script APIって何?という方、いらっしゃると思います。私もそうでした。

そこでこの記事ではアドオンとはなんなのかという点と、JavaScriptでスクリプトを書いてアドオンを作ることができる 「Script API」というものについて解説します。

スクリプトを使ってアドオンを書くことでJSONファイルやコマンドを駆使するよりも比較的簡単にアドオンを作成できるようになります。

2023/03/22 – 旧Scripting APIの内容を現Script APIに全面更新

マイクラのアドオンってなに?Script APIってなに?

まずは用語の確認として「アドオン」と「Script API」について簡単に整理していきます。

アドオンとは?

Minecraft(マインクラフト、以下マイクラ)のアドオンとは、マイクラ統合版に追加の機能を提供するものの総称です。アドオンを利用することで、ブロックの影の表示やモブの残り体力の表示、一括破壊、空中遊泳など、普通のプレイには無い機能を実現することができます。

アドオンの作り方は大きく2つあります。

1つ目は、スクリプトを利用せずに、モブやアイテムの見た目や動きを定義している「JSONファイル」というものを改造したり追加したりして作成する方法です。

2つ目は1つ目の方法に加えて、この後説明する「Script API」の仕組みを利用してスクリプトというものを組み合わせて作成する方法です。

Script API

Script APIとは、JavaScriptというプログラム言語を使ってアドオンのスクリプト機能を使う仕組みのことを言います。

Script APIを利用すると、JavaScriptを使ってスクリプトを書くことができるため、JSONファイルを改造・追加するよりも人間にとって分かりやすくアドオンを作成できるようになります。

そこまで役に立たない豆知識 ~Script APIの歴史~

Script APIの歴史は結構古く、2019/02/05のMinecraft 1.9.0で公式にリリースされました。その後、GameTest Frameworkが登場し、現在のScript APIに至ります。

  • 2019/02/05 – Minecraft BE 1.9.0 – Scripting API 公式アナウンス
  • 2021/03/09 – Minecraft BE 1.16.210 – GameTest Framework 初登場
  • 2022/04/09 – Minecraft BE 1.18.30 – Scripting API 廃止
  • 2022/10/25 – Minecraft BE 1.18.40 – GameTest Frameworkからスクリプト部分が分離、Script APIという名前が与えられた

混乱しますね💦

アドオンとScript APIのまとめ

アドオンとScript API(スクリプト)についてまとめると、以下の図のようになります。

アドオンとScript API
ポイント
  • アドオンとはマインクラフト統合版に付加機能を提供するものの総称
  • Script APIとはJavaScriptを使ってアドオンのスクリプト機能を使う仕組み

アドオンの構成

アドオンは以下の3要素から構成されます。

  • リソースパック
  • ビヘイビアーパック
  • スクリプト

それぞれ説明していきます。

リソースパック

リソースパックとは、マイクラの見た目をカスタマイズするものです。例えば、ブロックの見た目を変えたりアニメーションを表示したりといった感じです。リソースパックをマイクラのワールドに適用することにより、同じゲームとは思えないような見た目に変えることも可能です。

ビヘイビアーパック

ビヘイビアーパックとは、マイクラの動きをカスタマイズするものです。アイテムを作成するためのレシピを追加したりモブを倒したときにドロップするアイテムを変更したりできます。

スクリプト

スクリプトとは、JavaScriptで記述されたプログラムのことです。スクリプトはビヘイビアーパックに内包することができ、JavaScriptを使ってマイクラの動きをカスタマイズすることができます。

アドオンの構成まとめ

アドオンの構成を図にまとめると以下のようになります。

アドオンの構成
ポイント
  • アドオンには「リソースパック」と「ビヘイビアーパック」が含まれる
  • ビヘイビアーパックには「スクリプト」を含むことができる

Script API

アドオンとは?の部分で『Script APIとは、JavaScriptというプログラム言語を使ってアドオンのスクリプト機能を使う仕組み』と説明しましたが、この章ではスクリプトとScript APIの関係をもう少し詳しく見ていきます。

ビヘイビアーパックに含まれるスクリプトは、マイクラに含まれるスクリプトエンジンにより実行されます。その際、マイクラとスクリプトを繋ぐための窓口になるのが、先ほどから登場している「Script API」です。

作成したスクリプトの中でScript APIを呼び出し、マイクラの情報を取得したり、そのデータをもとにマイクラに情報を反映させたりしていくことがスクリプトを利用したアドオン作成の基本となります。

Script APIと
ポイント
  • スクリプトはJavaScriptで書かれたプログラム
  • プログラムの中でScript APIを呼び出し、マインクラフトの情報を取得したりマインクラフトに情報を反映させたりする
  • Script APIはスクリプトとマインクラフトがお話しするための窓口

スクリプトのメリット・デメリット

スクリプトのメリット・デメリット

最後に、スクリプトを利用したアドオン作成のメリット・デメリットをまとめます。

メリット

メリット1 変数、引数が簡単に使える

スクリプトを使わないでアドオンを作成する場合はスコアボードを駆使することで保存しておきたい値を保持したり、引数が使えない代わりにスコアボードの値によって実行するファンクションを切り替えたりしますが、スクリプトを利用すると変数、引数が使えますので、難解なスコアボードを駆使することから解放されます。

メリット2 複雑な条件分岐が簡単にできる

メリット1で変数が使えることがメリットと書きましたが、これにより複雑な条件分岐が簡単に実装できます。条件分岐のif文の中に変数を指定することができるからです。大規模なアドオンを作成すると、スコアボードの管理が非常に難しくなってきてしまいますので、これは結構大きいと思います。

メリット3 JavaScriptで書ける

メリットの3つめは「JavaScriptで書ける」ことです。

スクリプトを使わない場合、コマンドやタグ、スコアボード、JSONを駆使して実現したい機能を作っていきます。これがスクリプトを使うことによりJavaScriptを利用できるようになるため、難しいスコアボードのテクニックなどを覚えなくても直感的に実現したい機能を書くことができます。

また、利用する言語は特殊な言語ではなく世界中のあらゆる場面で利用されているJavaScriptなので、アドオンを作っていくうちにJavaScriptのスキルも鍛えられるのもメリットですね。

メリット4 慣れればコマンドを組み立てるより簡単

メリットの4つ目は「慣れれば簡単」という点です。

コマンドを組み立てたりJSONファイルを駆使するのは、正直かなり難しく、覚えることがたくさんあります。また、デバッグ(バグを取り除くこと)が難しいというかトライアンドエラーを多く繰り返す必要があり、まさに職人芸です(少なくとも私にはかなり難しいです)。

一方、スクリプトはプログラム言語で書ける上にデバッグも簡単にできますので、実は初心者にこそお勧めしたい方法です。

デメリット

デメリット1 JavaScriptを覚える必要がある

JavaScriptで簡単にアドオンが作れることがメリットと書いてきましたが、当然JavaScriptを覚えないとそのメリットを生かせません。まずはJavaScriptを覚えないと……

しかし、JavaScriptは他のプログラム言語と比べると比較的習得が簡単であることが救いです。JavaScriptを少し覚えてアドオンを作って、また少しJavaScriptを覚えてアドオンを作ってみてを繰り返していけば徐々に覚えていけると思います。

デメリット2 Script APIのアップデートが頻繁

デメリットの2つ目はScript APIの最大の弱点である「アップデート」です。

Script APIはそのほとんどの機能がベータ版であることから頻繁に機能の変更・削除が行われます。マイクラのアップデート前まで動いていたのに、今日アップデートしたらアドオンが動かない、なんてことが良く起こります。

ベータ版ではなくリリース版のScript APIもあるにはあるのですが、2023年3月時点では本当に限定的なAPIしか使えず、Script APIの良さをまだまだ生かせない状態です。

スクリプトのメリット・デメリットまとめ

スクリプトのメリット・デメリットをまとめておきます。

メリット
  1. 変数、引数が簡単に使える
  2. 複雑な条件分岐が簡単にできる
  3. JavaScriptで書ける
  4. 慣れればコマンドを組み立てるより簡単
デメリット
  1. JavaScriptを覚える必要がある
  2. Script APIのアップデートが頻繁

個人的にはマイクラのスコアボードやコマンドを組み立てるよりも簡単にアドオンを作れることが1番のメリットと感じています。スコアボードとコマンド難しいです💦

まとめ

少し長くなりましたが、マイクラのアドオンとScript APIの関係と、スクリプトとは何者か、Script APIのメリット・デメリットを解説してみました。

Script APIを使ってアドオンを作成する前などに参考にしていただけたら幸いです。