本ページは アドオン講座#14、「スクリプト編、ScriptingAPIとは?/サーバーとクライアントの違い」 です。
目次や、この講座については#1の記事をご覧ください。
スクリプト編で理解してほしいこと!
2022年4月19日のアップデート、Minecraft 1.18.30(Bedrock)(ベータ版では2022年1月27日のMinecraft Beta 1.18.20.21)をもって ScriptingAPIは削除されました。
本Addon講座#14、#15で解説されているScriptingAPIは、これ以降のバージョンで使用できません。
スクリプトの実行は、代わりにGameTestFrameworkが担っていくようです。
ScriptingAPIは執筆現在、Minecraft Bedrock Edition for Windows10(通称:win10版)でしか動作しません。(でした)
条件を満たさない場合、iOS版、Android版などでは実行できないのでご注意ください。
この制限について、またこの制限の対策について、詳しくは#14「サーバーとクライアントの違い」をご覧ください。
スクリプト編はこのアドオン講座の他の応用編と異なり、.json
ファイルではなく、Javascriptを使用することもあり、レベルとしては応用編の中でも発展寄りになります。
しかし、Javascriptに少しでも触れたことがある方にとってはスクリプト編の方が簡単に感じるかもしれません。
スクリプト編は2ページからなり、前半#14はスクリプトの書き方(記法)と仕組みの理解について扱い、後半#15ではどのように使うのか実際にアドオンを作ってみます。
このスクリプト編では、Javascriptを使うことで、.json
などの限られた機能だけではできなかった検知や、それを利用したシステムの製作ができるようになることを目的としています。
- (前提#3~#4)基礎編
- (前提#8)ファンクション編復習、コマンドの実行主の理解
- (#14)
ScriptingAPI
とは? - (#14)サーバーとクライアントの違い
- (#15)[実践]キルカウントを作ってみよう
ScriptingAPI
とは?
アドオン講座も#14と、だいぶ大きな数字になってきましたが、ここまでで解説してきた内容や使用した機能は、ファンクション編を除き、全て既にマイクラ側に実装されているものを利用する形で成り立っているものでした。
ScriptingAPI
は、Java版で根付いた「ユーザー製作のコンテンツでMinecraftを盛り上げる!」という文化をBEにも取り入れようと、試験的に追加されたModに近い要素です。
.json
の書き換えレベルではなく、MoLang
という限られた使用しかできない独自言語でもなく、Javascript
という世界的によく使われているプログラミング言語を取り入れたこともあり、拡張性を高めようという気概が感じられます。
しかし、ScriptingAPI
には、その拡張性のために二つの条件が付けられました。
- 「試験的」設定を有効にしたワールドであること。
- Windows10版であること。
この二つの条件を満たさなければ、ScriptingAPI
を実行することはできません1。
特にWin10版のみという制限は、クロスプラットフォームマルチプレイを売りにしている(と勝手に思っている)BEにとってはあまりに大きすぎる制限で、BEでAddonを作っているクリエイターにもあまり広まらず、という結果になってしまいました2。
マイナス面ばかりの話になってしまいましたが、その代償の分、できることも多いです。
特に、次回紹介するキル検知は、基本スクリプトでしか行うことができません3。
また、プレイヤーの場合、プレイヤーを指名してセレクタを使えるので、@p
で起きやすい「判定が吸われて…」といったことが一切起きません。
詳しい機能については、次回#15で触れていきます。
まだまだ説明が続きます。今日は座学の日です(笑)。
サーバーとクライアントの違い
ScriptingAPI
には、 サーバー(server)とクライアント(client) の二種類があります。
ファイルフォルダ構成(#3)でも紹介した通り、それぞれscripts/server
とscripts/client
を使用します。
サーバー(server)はワールドを開いているプレイヤー(の端末)のみが実行します。
ワールド全体のことを書く感じですね。
クライアント(client)はワールドに参加しているプレイヤー全員が実行します。
それぞれが実行することを書く感じですね。
具体的にはListenできるevent(=検知できる条件)が違います。
これ以上はドキュメントを読んでもらった方が早いです。
開発していく上での違いはこんな感じですが、完成したアドオンを使っていく上ではこの違いはものすごく重要になってきます。
サーバーだけならwin10版じゃない人もワールドに入ることができるのです!!
サーバーはワールド主の端末のみがスクリプトを実行するので、ワールド主がwin10版であれば、アドオンの他の要素と同じようにクロスプラットフォームでマルチプレイをすることができます!!
表にまとめるとこんな感じ。
<サーバーのみ> | win10版 | win10以外のBE |
---|---|---|
ワールド主(ホスト) | ○ | × |
参加者(ゲスト) | ○ | ○ |
<クライアント使用> | win10版 | win10以外のBE |
---|---|---|
ワールド主(ホスト) | ○ | × |
参加者(ゲスト) | ○ | × |
win10以外のBEには、iOS、Android、Switchなど、BEのほとんどが当てはまるので、クライアントを使用してしまうとそのアドオンを使えるユーザーはかなり限られてしまいます。
そのため、クライアントについてはほとんど解説しません4。
構文はサーバーとほとんど変わらないので、異なる点のみ解説しようと思います。
ScriptingAPI
についての説明はこれで以上です!
次回#15では、ScriptingAPI
のサーバーの方を使って、実際にキルカウントアドオンを作ってみます!