見出し画像

【Cluster Creator Kit 利用者向け】2023〜2024/1にかけてのclusterのアップデートに伴う技術的な挙動の変更について

こんにちは、PM の Smith です。
この記事では近い将来に cluster に入る変更のうち、クリエイターにとって特に必要な情報をお伝えします。
今回の記事は Cluster Creator Kit を用いているクリエイターを主な対象としています。


パフォーマンス改善により挙動の変更が生じます

クラスターではすべてのユーザーが快適にバーチャル空間を体験できるように、アプリケーションのパフォーマンス改善に取り組んでいます。
その中でも特に Android 端末での体験がクラスターの理想とは離れているのが現状です。
そのため、ベンチマークとして Android 端末で平均的に 20 FPS は出せるようにするというパフォーマンス目標を掲げていますが、そこに到達するにはまだまだやるべきことがたくさんあります。
Cluster Creator Kit でも、パフォーマンス改善の一環として機能の最適化を実施する予定です。

本稿ではワールドやアイテムの挙動に影響を与える可能性のある以下の変更について説明していきます。

  • onUpdate の実行頻度の変更

  • Url Texture の圧縮形式の変更

なお、これらは振る舞いへの変更が生じるだけで、Cluster Creator Kit での使い方やワールド・アイテムの作り方に変更はありません
過去に作成してアップロード済みのコンテンツも、特に更新する必要はありません
本稿に記載した変更は2023年内から翌2024年頭にかけての導入を予定しています。

onUpdate の実行頻度の変更

Scriptable Item の API として提供されている onUpdate に登録されたコールバックの実行頻度が若干下がることがあります。
onUpdate コールバックは高頻度で呼ばれるほど処理の時間的精度が向上しますが、その一方でコールバック関数実行の負荷もかかります。
実行頻度の変更が入った後では、 onUpdate はデバイスにあまり依存せずにほどほどの頻度で呼ばれるようになり、負荷も低減されます。
なお、実行頻度が下がるのは onUpdate のコールバック関数のみであり、内部的な Update (一定間隔で実行される処理) の頻度は下がりません。
 
現在の onUpdate で部分的に実現できている、毎フレームの位置制御のような体験は、別途、アイテム間及びアイテムとアバター間の相対座標を固定するような新たな API を提供することで解決しようと考えています。
これにより同じ空間内のユーザー全員から見て綺麗に制御できるようになります。

外部から取得した画像の圧縮形式の変更

cluster 外部の画像を取得してコンテンツ内で利用する方法として Url Texture と Url Raw Image コンポーネントが提供されていますが、今回はこれらのコンポーネントで用いる画像の圧縮形式が変わります。
コンポーネントの使い方は変わらず、png や jpeg の URL を指定します。
実際に使われる画像は cluster のサーバーで各デバイス向けに最適化された画像データとなり、メモリパフォーマンスが大きく向上する見込みです。
この変更による振る舞いの変化は以下のとおりです。

  • 最適化後の画像には、若干の劣化が生じます

  • 一度最適化された画像は cluster のサーバー上でキャッシュされます、同じ URL で画像を更新した場合には、反映まである程度の時間がかかります

  • 指定した URL の画像キャッシュがない状態で画像を取得しようとした場合、通常よりもデータ取得に若干の時間がかかります。

  • 取得する画像の最大サイズに制限が加わります

    • サイズ: 縦横最大2048ピクセル (正方形である必要はありません)

    • 容量: 15MB まで

画像の劣化は画像サイズを縦横 4 の倍数にすることで抑えることができます。(べき乗ではありません)
画像がちょうど 4 の倍数のサイズでない場合は、余白を作ることで 4 の倍数のサイズにし、 UV で利用範囲を指定するなどのテクニックも活用できます。
この場合は併用しているシェーダーにご注意ください。
少し専門的な手法なので、詳細は別途 Creators Guide で解説できればと思います。

背景: なぜいま、パフォーマンス改善か?

今回の変更は、これまでの振る舞いの維持よりもパフォーマンス改善を選択する形になります。
できるだけクリエイターの表現力に影響を出さないように注意を払っていますが、それでも今回はこのように周知する必要のある変更を加えました。

cluster はクリエイターが作るコンテンツの力で、そこに住めるような豊かなバーチャル空間を目指しています。
しかしただ豊かさを追求するのではなく、誰一人取り残さずにその空間を享受できる必要があります。
クラスターでは誰もが cluster を体験できる状態を大切にしたいため、今回のパフォーマンス改善では挙動の変更を許容しています。
一方で、パフォーマンスへの影響の少ない新しい試みもどんどんやっていくので、誰も取り残さない最高の体験をクラスターと創っていきましょう!

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

バーチャルSNS「cluster」は、みなさんが楽しくバーチャル空間で過ごせるように、様々な改善を行っています。
「clusterへの要望」を投稿する場所を設けていますので、もっとこうなってほしい!ここがちょっと使いにくい!といったご意見・ご感想をいつでもお待ちしています😃

💌 Discordサーバー「#clusterへの要望」チャンネル
https://docs.cluster.mu/creatorkit/support/creator-community/