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

ロストフレームキャプチャツール

LINK PC-VR DOCUMENTATION
このトピックでは、PC SDKを使ったRift / Link PC-VRの開発について説明します。Meta Questアプリのパフォーマンスの最適化については、使用する開発プラットフォームに応じて、次のトピックのいずれかをご覧ください。
ロストフレームキャプチャツールは、VRアプリの実行中にドロップしたフレームに関する情報を収集します。その後、統計データを表示しながらドロップしたフレームをリプレイして、アプリ内のパフォーマンスの問題を突き止めることができます。

概要

RiftストアにVRアプリを申請すると、アプリがRiftバーチャルリアリティチェックリスト(VRC)に準拠しているかどうかをMetaのエンジニアが調べます。VRCには、パフォーマンスターゲット値など、アプリが満たす必要がある多くの要件が規定されています。VRCについて詳しくは、/distribute/publish-rift-app-submission/をご覧ください。パフォーマンスの問題でアプリが申請に通らなかった場合、通常、実行中のある時点で、必須のフレームレートである90フレーム毎秒を維持できなかったことが原因です。(ドロップフレームの大きなクラスタは、シーントランジション以外では認められていません。コードをメモリに読み込んでいる間、またはシーンからシーンに移行している間にフレームがドロップすることは許容されています。)
アプリがパフォーマンス上の理由で却下された場合は、これらの問題に対処して、アプリを再申請する必要があります。しかし、これまで開発者がアプリ内の問題箇所を正確に特定することは困難でした。間もなくOculusは、パフォーマンスの問題によりアプリが却下された場合、Oculusデバッグアーカイブ(ODAファイル)を開発者に提供するようになります。ロストフレームキャプチャツールを使用してこのODAファイルを読み込めば、アプリのパフォーマンスを分析できます。このツールを使用すると、パフォーマンスの問題が発生した場所を正確に突き止め、パフォーマンスの問題の原因となっているロストフレームを表示することさえできます。
Metaに申請する前に、ロストフレームキャプチャツールを使用してアプリを分析することもできます。こうすることで、申請前にパフォーマンスの問題があれば発見して対処することができます。
このドキュメントの残りの部分では、ロストフレームキャプチャツールの使用方法について説明します。

ロストフレームキャプチャツールを起動する

  1. Oculusデバッグツールを実行します。ツールはC:\Program Files\Oculus\Support\oculus-diagnostics\OculusDebugTool.exeにあります
  2. Oculusデバッグツールが表示されます。[Lost Frame Capture (ロストフレームキャプチャ)]ボタンをクリックします。
  3. ロストフレームキャプチャツールが表示されます。
  4. 適宜、次のアクションを実行できます: * [Record (記録)]をクリックして、現在実行中のセッションのロストフレームのキャプチャを開始します。* [Save (保存)]をクリックして、今キャプチャしたコンテンツをOculusデバッグアーカイブ(ODA)ファイルに保存します。* [Load (読み込み)]をクリックして、既存のOculusデバッグアーカイブ(ODA)ファイルを読み込みます。* [Summary (概要)]をクリックして、今読み込んだODAファイルまたは現在のキャプチャセッション(どちらか該当する方)に基づいた統計概要を表示します。

ロストフレームキャプチャのアウトプットを分析する

  • 以前自分で作成したODAファイル。
  • 受け取ったODAファイル(申請したアプリがVRCに合格しなかった場合)。
現在実行しているセッション中にキャプチャしたロストフレームキャプチャのアウトプットを分析することもできます。必ずしもそのアウトプットをODAファイルに保存する必要はありません。
アプリを申請する前に、アプリを実行してロストフレームキャプチャのアウトプットを収集することをおすすめします。アプリを実行する際には、エンドユーザーが遭遇する可能性のあるすべてのシナリオを一通り確認するようにしてください。次に、結果のアウトプットを分析して、シーントランジション以外でドロップしたフレームの大きなクラスタがあるかどうかを判断します。パフォーマンスの問題が見つかった場合は、アプリを申請する前にそれらの問題を修正してください。
ODAファイルを読み込んで分析するには、次の手順に従います。
  1. ロストフレームキャプチャツールを起動します(上記の方法で)。
  2. [Load (読み込み)]ボタンをクリックします。
  3. 読み込む.odaファイルを選択します。
  4. ロストフレームキャプチャツールのメインウィンドウにデータが読み込まれます。
このウィンドウには、ODAコンテンツをキャプチャしている間に失われたロストフレームがリストされます。フレームインデックスが最初の列にリストされます。ロストフレームがフォルダーのような構造にグループ化されていることもあります。これは、隣接する複数のフレームが失われている場合に、その箇所を認識しやすくするためです。一連のロストフレームがあり、そのロストフレーム間のどのギャップも1秒を超えない場合は、それらが1つのフォルダー構造にグループ化されます。これをロストフレームクラスタといいます。
リストの最上位にあるフレームまたはロストフレームクラスタに含まれるフレームを選択できます。フレームの左目と右目のレンダリングビューが右側に表示されます。その下にグラフが表示されます。このグラフは、ひとまとまりのロストフレームのフレームレートを示します。90フレーム毎秒がこのグラフの最大値です。グラフの下降は、フレームがより低いフレームレートで生成されていることを示します(この状態が継続しているなら、ユーザーエクスペリエンスが低下するので許容できません)。
上の例では、現在選択されているフレームは、水平線で示されているように、56.3フレーム毎秒のレートで生成されました。矢印キーを使用してロストフレームをステップ実行し、時間の経過に伴って線がどのように動くかを確認できます。グリッド内で、水平線が垂直の破線と交差し、垂直の破線がグラフとも交差している点は、現在選択されているフレームがタイムライン内のどこにあるかを示します。
このグラフビューを使用すると、現在選択されているフレームのフレームレートと近くのほかのフレームのフレームレートを比較して表示できます(クラスタ内のフレームをステップ実行している場合)。例えば、水平線の現在のレベルをグラフ全体と比較できます。これにより、問題が発生し始めた場所や最悪の場所を簡単に特定できます。多くの場合、フレームの中身を見るだけで、何が問題であるかを直感的に把握できるはずです。例えば、あるオブジェクトが徐々に表示されていくときに、フレームレートが低下するかもしれません。それは多分、そのオブジェクトに使用されているシェーダーが複雑すぎるか、そのオブジェクトのレンダリング処理のどこか他の部分でCPUまたはGPUリソースを過剰に消費しているからだと思われます。

表示される列

ロストフレームキャプチャツールに表示される各列について、次の表に示します。列ヘッダーをクリックすると、その列を基準に行を並べ替えることができます。ロストフレームインデックス以外の列を基準に並べ替えると、クラスタはリストの一番上にまとめられてソートされ、クラスタ化されていない個々のフレームはリストの一番下にまとめられてソートされます。
以下の列があります。
ロストフレームインデックスこの行のロストフレームのフレームインデックス。
キュー先行(ミリ秒)
フレームのキュー先行時間(ミリ秒)。(キュー先行時間について詳しくは、/documentation/native/pc/dg-render/#dg-queue-aheadを参照してください。)
アプリ時間(ミリ秒)
アプリがフレームの処理に費やした時間(ミリ秒)。
コンポジター時間(ミリ秒)
コンポジターがフレームの処理に費やした時間(ミリ秒)。
フレームカウント
行によって示されるフレームサイクルの数。単一フレームの場合、この数値はこのフレームに必要とされるフレームサイクル数を示します。この数値が2であることが多いですが、それは、フレームが一度失われると、単一フレームサイクル内でレンダリングできないからです。ロストフレームクラスタの場合、この数はクラスタ内のすべてのフレームで必要とされたフレームサイクルの数を表すため、非常に大きな数になることがあります。フレームカウント列は非常に便利で、列を一覧するだけで、相互に隣接する多数のフレームがすべてドロップされた箇所を確認できます。このような状態になっている場合は、その場所でパフォーマンスの問題が発生している可能性があります。
フレームレート(hz)
現在選択されている行のフレームレート。単一フレームの場合、これは現在選択されているフレームのレートでフレームが継続的に処理された場合のフレームレートで、フレーム毎秒(Hz)で表されます。クラスタの場合、これはクラスタ内のフレームの平均フレームレートが継続的に処理された場合のフレームレートで、フレーム毎秒(Hz)で表されます。これは、クラスタによって表される期間内のロストフレームの平均フレームレートであることに注意してください。他の多くのフレームはその時間枠内に処理され、ロストフレームにはならず、ロストフレームキャプチャツールに表示されないということはよくあります(実際、ほとんどの場合はこのケースに該当します)。
V-Sync
行のV-Sync (垂直同期)。単一のフレームが選択されている場合、これはそのフレームに対して垂直同期が発生したタイムライン中の位置になります(キャプチャ期間の開始時からの秒数で表されます)。クラスタが選択されている場合、これはクラスタ内の最初のフレームの垂直同期です。
期間(ミリ秒)
現在選択されている行について、フレームが持続的にドロップされた時間の長さ(ミリ秒)。単一のフレームが選択されている場合、これはそのフレームの処理にかかった時間の長さになります。クラスタが選択されている場合:* この期間は、システムがクラスタ内で最初にドロップされたフレームの処理を開始したときに始まります。* この期間は、システムがクラスタ内で最後にドロップされたフレームの処理を終了した時点で終わります。* この[期間]の値には、開始時間から終了時間までに処理されたすべてのフレーム(ドロップされたフレームとドロップされていないフレームを含む)の処理時間が含まれます。

ODAファイルを記録

アプリが失ったロストフレームをキャプチャし、そのコンテンツをODAファイルとして保存するには、次の手順に従います。
  1. [Record (記録)]をクリックします。
  2. VRアプリで好きなアクションを実行します。
  3. ヘッドセットを外して、記録を停止します。([Stop (停止)]ボタンはロストフレームキャプチャツールウィンドウにあります。)
  4. [Save (保存)]をクリックして、キャプチャしたデータをODAファイルに保存します。

パフォーマンスの概要を表示

現在開いているODAファイルまたは現在の記録セッションの全体的な統計情報のセットを表示するには、[Summary (概要)]ボタンをクリックします。[Performance Summary (パフォーマンスの概要)]ポップアップウィンドウが表示されます。
ナビゲーションロゴ
日本語
© 2026 Meta