開発
開発
プラットフォームを選択

OVR Metricsツール - エンジニア以外の方向けのベストプラクティス

OVRメトリックツールは、Questハードウェア上で実行されているアプリのパフォーマンスを測定するために使用されます。その基本的な形では、VRCに関してアプリのフレームレートを判別するために使用します。またこのツールには高度なトラッキング機能も用意されており、開発者は自分のアプリのパフォーマンスの問題をさらに的確に特定しトラブルシューティングすることができます。

OVR Metricsツールの設定

[Settings (設定)]タブの下で、[Enable Persistent Overlay(永続的なオーバーレイを有効にする)]を選択すれば、テスト中のアプリの上にパフォーマンスグラフを表示できます。
[Quick-set Enabled Stats (有効な統計値のクイック設定)]の下に、利用可能な3つのトラッキングに関するプリセット、[None (なし)][Basic (基本)][Advanced (高度)]があります。指標のトラッキングでは、[Advanced (高度)]は使用せず、[Basic (基本)]を使用するようにしてください。[Advanced (高度)]では余分のオーバーヘッドがかかり、パフォーマンスの最終結果が誤ったものになる可能性があります。これは特殊なケースでGPUボトルネックを検出するために使用されます。VRCに関するパフォーマンスを確認する場合、[Advanced(高度)]は不要です。
主要な指標には、次のものがあります。
  • FPS - 1秒あたりのフレーム数
  • アプリT - アプリGPU時間
アプリT指標は、アプリがグラフィック処理を実行したときのタイムスタンプからフレームを生成したときのタイムスタンプまでの経過時間の平均を示すものです。

CSV出力

OVR Metricsツールでは、CSVファイルフォーマットでデータを出力することができます。データを保存するには、ツールの[Record all captured metrics to CSV file (キャプチャしたすべての指標をcsvファイルに記録する)]を切り替え、プレイセッションの後で、ファイルを自分のPCに転送します。
また、1回のプレイで複数のCSVファイルを記録することもできます。例えば、1回のプレイで3つのゲームをブートする場合、QuestをPCに接続した際に、3つのブートアップについてそれぞれ別個の3つのCSVファイルが存在することになっています。下記の図に示されているように、Excelでtimestampに対するaverage_frame_rateの分布グラフを描画することができます。
Scatter graph
X軸はミリ秒単位のタイムスタンプです(数値を1000で除算すると秒数になる)。上記の例には10分強のセッションが示されています。各点は、直前のタイムスタンプからターゲットタイムスタンプまでの平均フレームレートを表します。

ベストプラクティス

アプリをフレッシュインストール後に実行してからOVR Metricsツールを使用する

アプリがまだ開発中の場合は、フレッシュインストール後にいずれかのレベルを1回最後まで実行してから、コンテンツのそのセクションのパフォーマンスを判定するようおすすめします。シェーダーは、アプリの初回実行時に1回だけコンパイルされます。そのため、1回限り発生するオーバーヘッドが追加されて結果が歪んでしまう可能性があります。コンパイルが実行された後は、再インストールされるまでデバイス上に保存されます。つまり、同じレベルを2回プレイした場合、2回目の実行結果のほうがより正確なものとなるということです。

レベル読み込みのタイミングを見極める

レベルが最初に読み込まれるタイミングを記録するようにしてください。多くの場合、それは、CSVファイルの中でフレームレートの低下として示されます。
同じように、エンジニアはツールを設定して、重要なシーンの遷移状況が分かるようなカスタム開発者データをCSVに出力できます。その後、開発者は対象とするイベントに関係するパフォーマンスを正確にトラッキングすることができます。詳しくは、「OVRメトリックツールを使用したパフォーマンスのモニタリング」の中の「CSVデバッグ文字列を付加する」をご覧ください。
VRC.Quest.Performance.1は、次のように定めています。
「アプリは許可されているリフレッシュレートで実行され、最低でも60 fpsのレンダリングレート(fps)を維持する必要があります。」
  • アプリは、最低でも60 fpsのレンダリングレートを維持しなければなりません。
  • インタラクティブアプリで使うリフレッシュレートは、72 Hz、80 Hz、90 Hz、96 Hz、100 Hz、120 Hzのいずれかでなければなりません。(96 Hz、100 Hz、120 Hzを利用できないデバイスもあります)
  • QuestおよびQuest 2のメディアアプリでは、60 Hzのリフレッシュレートを使用できます。
アプリのフレームレートが、リクエストされた表示リフレッシュレートを下回る状態が長時間続かないようにしてください。ブラックスクリーンまたはシーンのロード中は例外です。」
Quest上で実行されているアプリ(求められているリフレッシュレートが72 Hz)の場合、通常のゲームプレイの間、数秒間パフォーマンスが若干低下(>65 fps)してすぐに回復することが、システム上の問題ではなく単発で発生するのは許容範囲内です。それらは本質的に循環発生/反復発生するものではありません。
オーバーレイの結果と、ユーザーに対してリアルタイムで画面表示されるものとの間には、1秒ほどの遅延があります。したがって、グラフ上に赤で示される低下の発生時点は、低下の正確な瞬間ではなく、直前の1秒間の画面の状態を記録しています。
  • 多くの場合、パフォーマンスが低下するのは、画面暗転時や画面読み込み時です。ゲームの遷移画面が終わった時点で、グラフ上ではまだ赤になっていることがありますが、コンプライアンスの問題があることが示されるまで1秒の遅延があることを考慮してください。

CPUまたはGPUのボトルネックの検出

時間はマイクロ秒の整数値として記録されるため、6000と表示されているなら、作業が6msで完了していることを意味しています。毎秒72フレームなら1フレームは13.8ミリ秒です(1000/72)。アプリGPU時間が13800を超える場合、その部分のフレームがグラフィック処理(そして場合によってはCPU処理)上のボトルネックになっています。アプリGPU時間指標が13.8ミリ秒を下回り(想定値未満)かつフレームレートが72 fps未満なら、CPUボトルネックがあります。どこがボトルネックになっているかが分かると、かなり役立つことがあります。
まとめ
  • アプリT > 13800かつFPS < 72なら、100% GPUボトルネックです(CPUも想定値超の可能性がありますが、GPUがそれを上回っています)
  • アプリT < 13800かつFPS < 72なら、100% CPUボトルネックです。

参考情報

ナビゲーションロゴ
日本語
© 2026 Meta