シーン分析ツールは、Roblox Studio内の複数のビューを提供し、クライアントとサーバーのシーンがどのように構成されているか、どのリソースが使用されているか、どのインスタンスがそのリソース使用に関与しているかを一目で比較できる情報を提供します。シーン分析は、プレイやテストセッション中に使用するために設計されており、クライアントとサーバーデータモデルの両方を検査できます。

シーン分析を有効にする
- ファイル > ベータ機能でシーン分析を有効にします。
- メニューバーで、ウィンドウ > パフォーマンスサマリー > シーン分析を選択します。
シーン分析を使用する
シーン分析は、プレイまたはテストセッション中に使用することを想定しています。シーン分析ウィンドウを開き、利用可能なモードをブラウズします。モードがアクティブな場合、リソースの相対的なサイズや、それに寄与しているインスタンスを表示する箱のディスプレイ(スクワリファイドツリーマップ表示)が表示されます。
- スクワリファイドツリーマップ表示の下には、現在のビューのすべてのアイテムのリストがあります。
- シーン分析で選択したアイテムを右クリックすると、そのアイテムをExplorerで直接選択できます。
- 検索バーを使用して、現在の表示の名前でフィルタリングできます。
モード
シーン分析には、多くの異なるモードがあり、それぞれ異なる使用ケースに応じています。
スクリプトメモリ
このビューでは、各Script、LocalScript、およびModuleScriptがLuau VMで使用しているメモリの量を示します。これはスクリプトの割り当てによるテーブルなどが使うメモリであり、アニメーション、テクスチャ、サウンドなどのアセットが使用するメモリではありません。ビューは、スクリプトが実行される一般的な場所や、ScriptとModuleScriptに分けてさらに詳細に表示されます。
親なしインスタンス
親なしインスタンスのビューは、インスタンスへの参照を保持しているスクリプトやモジュールをタイプごとにカウントで表示します。
インスタンスへの参照を保持しているスクリプトは通常であり、それだけではバグやメモリリークの兆候とはなりません。しかし、メモリリークを調査している場合、このビューによりスクリプトが予期しないことをしているかどうかを簡単に把握できます。
メモリリークの根本原因を見つけるのにまだ問題がある場合、このツールはLuauヒープツールの補完的な役割を果たし、個別の割り当てに関する詳細情報を表示できます。
このビューの任意のスクリプトを右クリックして、Explorerで直接選択します。
インスタンス構成
インスタンス構成ビューは、クライアントまたはサーバー上に現在存在しているインスタンスを表示します。これは、大規模かつ複雑なビルドを行う際に非常に貴重です。なぜなら、各インスタンスには複製およびメモリコストがあるからです。
キャラクター、ジオメトリ、テクスチャなどのカテゴリは、シーンがどのようにバランスが取れているかを理解するのに役立ちます。例えば、25,000のパーティクルエミッタを持つつもりはなかったかもしれませんが、このビューによってそれが明らかにされます。
このビューでは、特定のタイプのすべてのインスタンスを選択するのも簡単です。
オーディオメモリ
オーディオメモリビューは、各オーディオアセットが現在消費しているメモリの量を示します。特定のオーディオトラックが使用する実際のメモリは非常に複雑ですが、実質的には、オーディオトラックを参照しているすべてのインスタンスを削除することで、そのメモリをアンロードできます。
このビューの任意のオーディオアセットを右クリックして、それを使用しているすべてのインスタンスを選択します。
アニメーションメモリ
アニメーションアセットは、プロダクションにおけるメモリリークの最も一般的な原因の1つです。Robloxは未使用のアニメーションアセットをアンロードすることに非常に積極的ですが、スクリプトが親モデルが破棄された後もアニメーションを生き残らせることが一般的です。
オーディオアセットと同様に、アニメーションアセットを参照しているすべてのインスタンスを削除することで、それをアンロードできます。
このビューは、親なしインスタンスのビューと併せて、アニメーションのライフサイクルと実際に使用されているメモリの量を簡単に追跡できるようにします。
このビューの任意のアニメーションを右クリックして、それを使用しているすべてのインスタンスを選択します。
三角形構成
三角形構成ビューは、メインビューポートで現在レンダリングされている三角形とドローコールの詳細な内訳を提供します。
これらの内訳には、影、Opaque、Transparent、Terrain、Grass、Particles、Sky、UIのカウントが含まれます。
この構成情報は、シーンのジオメトリがどのように構成されているかをよりよく理解し、シーンに予期しないジオメトリが含まれているケースを特定するのに役立ちます。
エンジンAPI
また、SceneAnalysisServiceを通じてプログラムでシーン分析データにアクセスすることもできます。これはMCPサーバーを介して公開されています。各メソッドは、視覚表示が使用しているのと同じデータを含むネストされた子を含むテーブルを返します。
| メソッド | 説明 |
| GetInstanceCompositionAsync | DataModelツリーからカテゴリとクラスごとのインスタンス数を返します。 |
| GetScriptMemoryAsync | スクリプトごとのLuau VMヒープメモリ使用量をバイト単位で返します。 |
| GetUnparentedInstancesAsync | Luauによって保持されているが、DataModelにはもはや存在しないインスタンスをホストスクリプトごとにグループ化して返します。 |
| GetTriangleCompositionAsync | レンダーパスごとの三角形とドローコールのカウントを返します。 |
| GetAnimationMemoryAsync | ロードされたアニメーションクリップのメモリをクリップごとに重複を排除して返します。 |
| GetAudioMemoryAsync | ロードされたオーディオアセットのメモリをアセットIDごとに重複を排除して返します。 |