サーバーエンティティスクリプト

Vircadiaのコンテンツは、エンティティにスクリプトを添付することでインタラクティブにすることができます。サーバエンティティスクリプトは、エンティティをホストするサーバ(またはドメイン)上で実行されるエンティティスクリプトです。これらのスクリプトは、ユーザーがいない場合でも、ドメイン内で永続的に実行されます。つまり、一度に実行されるスクリプトのインスタンスは1つだけであり、サーバー上で実行されます。クリプトによって制御される動作は、ドメイン内のすべての人に表示され、聞こえます。

コンテンツ

サーバーエンティティスクリプトをエンティティに添付する

サーバーエンティティスクリプトをエンティティにアタッチするには:

  1. インターフェイスにおいて、タブレットまたはHUDをプルアップし、作成に移動します。

  2. インターフェースでクリックするか、[エンティティリスト]で検索して、スクリプトを作成するエンティティを選択します。

  3. 作成アプリで、[プロパティ]タブに移動し、[動作]セクションまで下にスクロールします。

  4. [サーバースクリプト]には、サーバーエンティティスクリプトへのURLを入力します。

Note

An entity can have multiple server entity scripts attached to it, but all of these must be through a single file URL.

サーバーエンティティスクリプトの例

次のスクリプトは、ライトエンティティの強度を変更して、ティーライトを点滅させます。

(function() {
    var MINIMUM_LIGHT_INTENSITY = 100.0;
    var MAXIMUM_LIGHT_INTENSITY = 125.0;

    // Return a random number between `low` (inclusive) and `high` (exclusive)
    function randFloat(low, high) {
        return low + Math.random() * (high - low);
    }

    var self = this;
    this.preload = function(entityID) {
        self.intervalID = Script.setInterval(function() {
            Entities.editEntity(entityID, {
                intensity: randFloat(MINIMUM_LIGHT_INTENSITY, MAXIMUM_LIGHT_INTENSITY)
            });
        }, 100);
    };
    this.unload = function() {
        Script.clearInterval(self.intervalID);
    }
});

このスクリプトは、光の強さを更新するのに必要なアクターは1つだけなので、サーバーエンティティのスクリプトの良い例と言えます。同じスクリプトをエンティティクライアントスクリプトとして添付することもできますが、ティーライトを見ることができるすべてのクライアントが、ライトの強さを変化させて明滅させるためにエンティティを編集することになります。

スクリプトAPI

エンティティスクリプトサーバーは、APIのリストされたコンポーネントのすべてにアクセスできるわけではありません。アバター、コントローラー、記録、オーバーレイ、およびマウスとキーボードのイベント用のAPIは、エンティティスクリプトサーバーでは使用できません。

サーバーエンティティスクリプトで使用できるAPIの詳細については、こちらをご覧ください。

関連項目