【Minecraft BE 插件讲座#14】什么是Scripting API?/ 服务器和客户端的区别

本ページは アドオン講座#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)はワールドに参加しているプレイヤー全員が実行します。
それぞれが実行することを書く感じですね。

具体来说,可以监听的事件(即可检测的条件)是不同的。
阅读文档可能更快解决问题。

 

在开发的过程中,这些差异是这样的,但是在使用完成的插件时,这些差异变得非常重要。

只要是服务器,即使不是win10版的用户也可以进入世界!!

サーバーはワールド主の端末のみがスクリプトを実行するので、ワールド主がwin10版であれば、アドオンの他の要素と同じようにクロスプラットフォームでマルチプレイをすることができます!!

整理成表格的话,大概是这样的。

<サーバーのみ>win10版win10以外のBEワールド主(ホスト)○×参加者(ゲスト)○○
<クライアント使用>win10版win10以外のBEワールド主(ホスト)○×参加者(ゲスト)○×

在除了Windows 10之外的BE平台上,例如iOS、Android和Switch,几乎适用于BE的大部分内容,因此如果使用客户端,可以使用该附加组件的用户将相当有限。

因此,我几乎不会对客户端进行解释。
由于语法与服务器几乎没有差别,所以我打算只解释其中的不同之处。

关于ScriptingAPI的解释到此为止!在下一期的第15集中,我们将使用ScriptingAPI的服务器端,实际上创建一个Kill Count插件!

由于功能的增加,处理可能会变得更加繁重,这是一个可能的原因。 ↩如果是这样的话,那还不如用Java呢!因为它无法与Java版本的可扩展性相媲美…。 ↩

虽然通过组合使用组件和动画控制,可能也可以实现一些功能,但实际上非常困难,而且有很多限制。 ↩

因为我几乎没有使用过…。 ↩

广告
将在 10 秒后关闭
bannerAds