Maintain Your Domain with Scripts

ドメインのメンテナンスタスクを定期的に実行する 割り当てクライアントスクリプト を使用すると、ドメインを「クリーンアップ」することができます。たとえば、スクリプトはデフォルトのコンテンツセットに含まれないエンティティを削除したり、ドメインのコンテンツを検査するためのツールをロードしたり、ドメイン内のラウドアバターとそれらを特定したりすることができます。

Write a Script

スクリプトでは、JavaScript API を使って、あなたのプログラミングの専門知識と創造力でどんなタスクでも自由にコーディングすることができます。ここでは、1時間ごとにドメインのコンテンツをデフォルトの状態に戻す、割り当てクライアントスクリプトの例を書いています。これは、私たちのドメインでrezz'dされた他のエンティティは、スクリプトによって1時間以内に削除されることを意味します:

var SEARCH_CENTER = {x: 0, y: 0, z: 0};
var SEARCH_AREA = 60000; // search area (sphere) in meters radius
var CLEANUP_INTERVAL_MIN = 60;

var MINUTES_TO_MILLISECONDS = 60000;
var ENTITIES_TO_KEEP = ["{ENTITY_ID1}", "{ENTITY_ID2}"]

var initialized = false;
var interval;

Agent.isAvatar = true;
Avatar.skeletonModelURL = "AVATAR_FST_URL";
Script.update.connect(initialization);

function cleanup() {
  EntityViewer.queryOctree();
  var foundEntities = Entities.findEntities(SEARCH_CENTER, SEARCH_AREA);
  print("Found: " + foundEntities.length + " entities");
  foundEntities.forEach(function(entityID){
    if(ENTITIES_TO_KEEP.indexOf(entityID) === -1) {
      print("Need to delete: " + entityID);
      Entities.deleteEntity(entityID);
    }
  });
}

function initialization(deltaTime) {
  if (!initialized) {
    if(Entities.serversExist() && Entities.canRez()) {
     Entities.setPacketsPerSecond(60000);
       EntityViewer.setPosition(SEARCH_CENTER);
       EntityViewer.setCenterRadius(SEARCH_AREA);
       Script.setInterval(function() {
         EntityViewer.queryOctree();
       }, 1000);
      initialized = true;
      interval = Script.setInterval(cleanup, CLEANUP_INTERVAL_MIN * MINUTES_TO_MILLISECONDS);
      Script.update.disconnect(initialization);
    }
  }
}

Script.scriptEnding.connect(function(){
  Script.clearInterval(interval);
});

Add Assignment Client Script to Domain

To run your script on your domain:

  1. Save and upload your script to a cloud hosting site.

  2. ドメイン設定を開く。

    • クラウドでホストされているドメインの場合:ブラウザを開き、URL http://<ここにサーバーのIPアドレスを挿入>:40100/settingsを入力します。プロンプトが表示されたらログインします。

    • Windows上のローカルサーバーの場合:システムトレイのVircadiaアイコンをクリックしてから、[設定]をクリックします。

    • Macのローカルサーバーの場合:上部のメニューバーにあるVircadiaアイコンを右クリックし、[設定]をクリックします。

    • 任意のOSの場合:ブラウザを開きhttp://localhost:40100/settingsを入力します。

  3. On the top menu bar, select Content > Scripts.

  4. Under 'Persistent Scripts', click the + icon.

  5. Paste the URL to your script under ‘Script URL’.

  6. Save and restart your domain.

これで、スクリプトを削除するか、ドメインを完全にシャットダウンするまで、スクリプトはドメインで永続的に実行されます。