見出し画像

ベータ機能「外部通信機能」が使えるようになりました!、ベータ機能「メタデータ取得」の提供を再開しました 他【Cluster Creator Kit 2.7.0 リリースノート】

こんにちは、プロダクトマネージャーの Smith です。

メタバースプラットフォーム cluster では、クリエイターのみなさんの創造力をより加速できるように制作環境の改善を行っています。
この記事では Cluster Creator Kit v2.7.0のリリースで利用できるようになった新規機能や変更点について紹介します。


機能改善

onUpdate しきい値変更

ClusterScript.onUpdate などに渡される関数の実行時間のしきい値を 500ms から 50ms に変更しました。
多くのユーザーに安定した体験をお届けするために、意図しないスクリプトの処理負荷の高まりを回避するための変更です。

$.onUpdate((dt) => {
  // ここの処理時間のしきい値が 50ms に変わります
});
$.onInteract((dt) => {
  // 他のコールバック関数も同様です
});

// 初回のスクリプト読み込み全体の処理時間にも適用されます

onUpdate などのしきい値変更は、正確には Cluster Creator Kit 2.7.0 のリリースによる変更ではありませんが、変更が入るタイミングが Cluster Creator Kit のリリースと同じだったことと、その内容がクリエイター向けの情報であったため、このリリースノートに記載いたしました。

ベータ機能

外部通信機能 (callExternal)

クリエイターで指定した URL に対して通信ができるようになる API です。
通信には任意のデータを含めて送信ができ、URL から返されたデータに応じてアイテムの振る舞いを変えることができます。

制約事項

  • 外部通信機能はベータ版として提供されます

  • サーバーと送受信できるデータのサイズは 1kB以下となります。

  • callExternal は 1アイテムにつき、5回/分 まで実行できます

使い方

この機能を利用するためにはいくつかの準備が必要です。

  • 通信先 URL の登録

  • サーバーの用意

  • アイテムのスクリプトの実装

通信先 URL の登録
通信先の URL は Cluster Creator Kit がインストールされている Unity 上の画面から設定できます。
Cluster メニューから「外部通信(callExternal)接続先URL」を選択し、任意の URL を登録します。

URL への通信は cluster のサーバーを介して行われるため他のユーザーに知られることはありませんが、推測しにくい URL を設定することを推奨します。
登録ボタンを押下するとトークンが表示されるので、控えておいてください。
トークンはこのタイミングでしか表示されません、もしもトークンを紛失してしまった場合は同じ URL を登録しなおして新たなトークンを発行してください。

サーバーの用意
外部通信を利用したアイテムからのサーバーへのリクエストは、 POST メソッドで送信されます。
ペイロードには下記のスキーマの JSON 文字列が含まれます。
request には後述するアイテムのスクリプト API の callExternal に渡した引数が含まれます。

{
  request string;
}

サーバーからアイテムに返すレスポンスは、正常系の場合はステータス 200 を返してください。
異常系のステータスの指定はありません。
また、レスポンスボディは下記のスキーマを満たす JSON 文字列である必要があります。
verify には Cluster Creator Kit で URL 登録時に表示されたトークンを設定してください。
response には外部通信を実行したアイテムに返す文字列を設定します。

{
  verify    string;
  response  string;
}

アイテムのスクリプトの実装
外部通信用に 2つの API が追加されています。

ClusterScript.callExternal(request: string, meta: string): void
ClusterScript.onExternalCallEnd(callback: ((response: null | string, meta: string, errorReason: null | string) => void)): void

各 API の詳細はスクリプトリファレンスを参照してください。

これらの API を利用することで、Cluster Creator Kit で指定した URL に通信できます。
以下は指定した URL に “hello” というメッセージを送信し、返されたデータをログ出力するサンプルです。

$.onInteract(p => {
  $.callExternal("hello", "call external");
});

$.onExternalCallEnd((response, meta, errorReason) =>{
  $.log(response);
});

たとえばこんな使い方

外部通信機能単体は、任意の URL に対してデータを取りに行くだけという非常にシンプルな機能です。
ですが、これまで cluster 単体では実現が難しかった多くのことができるようになります。

ワールドの更新をせずにアイテムの振る舞いを変える
外部通信で返されたデータによってアイテムの振る舞いを変えるように実装することで、例えばその日の実際の天気に合わせたワールド内の天候の変化などが実現できます。

データの永続化
例えばテキスト入力機能で入力された文字列を外部通信先に保存することもできます。
ユーザーのメタデータ API と併用することで、ユーザー独自の合言葉などの永続化ができます。

外部サービス連携
例えば外部通信先が翻訳サービスの Web API と連携することで、テキスト入力を任意の言語に翻訳して返すことができます。

今後、サーバー側の開発を推奨していくの?

いいえ、 cluster はワールドクラフトや Cluster Creator Kit だけでできることを今後も増やしていく予定です。
外部通信機能は、今の cluster ではできないことや外部サービスに頼ったほうが良い処理に対してまったく打ち手がない状況を改善するために提供させていただきました。
将来的には、サーバーに頼らざるを得なかった機能やユーザー価値を、より安心・安全な cluster マネージドな機能として提供できるように努めて参ります。
また、サーバー側のエコシステム開発・提供を通したクリエイターの活躍の場も増やしていければと思っています。

不具合修正

メタデータ取得 API の提供再開

メタデータ取得 API は Cluster Creator Kit v2.6.0 で一度提供を開始しましたが、その後不具合が見つかったため提供を停止していました。
Cluster Creator Kit v2.7.0 のタイミングで提供を再開したのでぜひお試しください。
メタデータ取得 API の詳細は Cluster Creator Kit v2.6.0 のリリースノートをご確認ください。

Creator Kit 利用者アンケートへのご協力をお願いします

Creator Kit を利用しているユーザーの要望や習熟度を定性的に知るために、Creator Kit にアンケートを追加しました。
Settings ウィンドウやコンテンツのアップロードの際に表示されるようになります。
ご回答にご協力いただけると助かります。

ご意見・ご感想お待ちしています

cluster は、みなさんが楽しくバーチャル空間で創造できるように様々な改善を行っています。
Discord ではみなさんの要望を投稿したり、クリエイターさん同士でお互いの創作活動を支え合える場所を設けていますので、ぜひご活用ください!

Discordサーバー: Creator Community のご案内
https://docs.cluster.mu/creatorkit/support/creator-community/