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

OVR Metricsツールを使ったパフォーマンスのモニタリング

更新日時: 2025/12/05
OVR Metricsツールは、Meta Questヘッドセットのパフォーマンスモニタリングソリューションで、幅広いパフォーマンス指標(フレームレート、熱、GPUとCPUのスロットリング、1秒あたりのスクリーンティアと期限切れフレームの数など)を提供します。組み込みのシステム指標に加え、アプリ開発者はカスタム指標を定義して、アプリ固有のパフォーマンスやデバッグ情報をトラッキングできます。指標は、画面上のオーバーレイを通じてリアルタイムで視覚化したり、後で分析するためにCSVレポートに自動で記録したりすることができます。OVR Metricsツールは、リモートデバイス管理機能も備えており、Meta Horizonストアで入手できます。
OVR Metricsツールについて詳しくは、OVR Metricsツール - エンジニア以外の方向けのベストプラクティスをご覧ください。

概要

OVR Metricsツールは、実行中のアプリに関するパフォーマンス情報を提供するMeta Questツールです。提供されるパフォーマンス情報の多くは、VrApiのLogcatログで提供されるものと同じです。OVR Metricsツールでは、コマンドラインではなくデバイス上のアプリから情報にアクセスします。Logcatの使用については、Logcatトピックをご覧ください。
OVR Metricsツールは2つのモードで動作します。レポートモードでは、VRセッションに関するパフォーマンスレポートを記録します。このレポートはセッション終了後に参照できます。レポートデータは、PNG画像付きのCSVとして簡単にエクスポートできます。パフォーマンスHUDモードでは、実行中のアプリにHUDオーバーレイを表示し、パフォーマンスのグラフと情報をリアルタイムで提供します。パフォーマンスHUDに表示される情報は、自由にカスタマイズできます。
アプリ開発者は、カスタム指標を定義してアプリから直接記録し、開発時のデバッグや最適化のための対象を絞ったインサイトを獲得することができます。これらの指標はHUDオーバーレイでリアルタイムでモニタリングしたり、CSVファイルに記録して後で分析したりできます。標準のシステム指標とともにアプリ固有のパフォーマンス指標をトラッキングすることで、開発者はアプリの動作についてより深く把握し、問題の特定と解決をより迅速に行えるようになります。
OVR Metricsツールには、多くの付加的なGPU統計データがあります。それらを利用するには、接続されているシェルからプロファイリングツールovrgpuprofilerを有効にする必要があります。このツールの有効化に関する情報については、ovrgpuprofilerをご覧ください。
OVR Metricsツールでトラッキングできるすべての統計情報について詳しくは、OVR MetricsツールおよびVrApi統計ガイドをご覧ください。

OVR Metricsツールによるパフォーマンスデータの収集

以下のセクションでは、OVR Metricsツールをインストールする方法と、ツールを使用してレポートモードおよびパフォーマンスHUDモードでアプリのパフォーマンス情報をキャプチャする方法を説明します。

インストール

Meta Horizonストアから最新バージョンをインストールしてください。または、ovr metrics tool (OVR Metricsツール)を検索し、ヘッドセットでApp Storeからアプリをダウンロードしてください。

OVR Metricsツールの使用方法

OVR Metricsツールアプリは、ヘッドセットのアプリの[Library (ライブラリ)]から起動できます。または、ADBを通じてヘッドセットをコンピューターに接続し、次のコマンドを発行する方法でも起動できます。
adb shell am start omms://app
ヘッドセットでOVR Metrics Toolが起動すると、次のようなメイン画面が表示されます。
OVR Metrics Tool main screen
メイン画面では、ツールの機能を有効にして構成することができます。

レポートモード

レポートモードでは、VRセッションのパフォーマンスデータが記録されます。レポートのデータは、ヘッドセットから取得するか、またはヘッドセット装着中に表示することができます。
レポートモードを有効にするには、[Record all captured metrics to csv files (キャプチャしたすべての指標をcsvファイルに記録する)]というトグルを有効にします。または、次のADBコマンドを発行してレポートモードを有効にすることもできます。
adb shell setprop debug.oculus.omms.enableOverlay true
レポートモードを有効にしたら、[Stats (統計)]タブで、またはプリセット済みのオプションボタンの1つを使用して、収集するメトリックを手動で選択します。
  • [Basic (基本)]には、以下の指標があります。
    • バッテリー残量
    • CPUレベル
    • GPUレベル
    • Average FPS (平均FPS)
    • Stale frame count (期限切れフレーム数)
    • CPU Utilization (CPU使用率)
    • GPU Utilization (GPU使用率)
    • App GPU Time (アプリGPUタイム)
  • [Advanced (拡張)]には、[Basic (基本)]のすべての指標に加えて、以下の指標があります。
    • Foveation level (中心窩形成レベル)
    • Early frame count (早期フレーム数)
    • Eye buffer width (アイバッファの幅)
    • Eye buffer height (アイバッファの高さ)
    • Timewarp GPU Time (タイムワープGPU時間)
    • VrShell+Boundary GPU Time (VrShell+境界GPU時間)
    • Spacewarp FPS (スペースワープFPS)
    • Max Consecutive Stale Frames (最大連続期限切れフレーム数)
OVR Metricsツールは、HUDディスプレイの幅広いパフォーマンス指標にアクセスする手段を提供します。ユーザーは、[Stats (統計)]タブを使用してHUDオーバーレイに表示する指標を手動で選択し、テキストをリアルタイムで出力できます。また、[Graphs (グラフ)]タブを使用してそれらの指標の短期的な履歴のトレンドを視覚化することもできます。これにより、アプリや分析のニーズに最も適合する特定のパフォーマンスデータが表示されるようHUDをカスタマイズできます。一部の高度なGPU統計を選択するには、接続されているシェルからプロファイリングツールovrgpuprofilerを有効にする必要があります。詳しくは、ovrgpuprofilerを使用したGPUプロファイリングをご覧ください。
統計には以下のものが含まれます。
  • 境界GPU時間
  • CPU使用率コア0-7
  • アプリVSS、RSS、Dalvik PSS
ovrgpuprofiler指標
  • フレームあたりの平均頂点数
  • 片目ごとのフィル割合の平均
  • フラグメントあたりの平均インストラクション数
  • 頂点あたりの平均インストラクション数
  • フラグメントあたりの平均テクスチャー数
  • フラグメントにシェードを付ける時間の割合
  • 頂点シェーディング時間の割合
  • 頂点フェッチ停滞割合
  • テクスチャーフェッチ停滞割合
  • L1テクスチャー欠落割合
  • L2テクスチャー欠落割合
  • 隣接フィルタリングを使用するテクスチャーサンプル割合
  • 線形フィルタリングを使用するテクスチャーサンプル割合
  • Texture Sample Percentage Using Anisotropic Filtering (異方性フィルタリングを使用するテクスチャーサンプル率)
これらのデータポイントについて、詳しくはovrgpuprofilerで統計を有効にするを参照してください。
メトリックを選択したら、アプリを実行してセッションを開始し、データを取得します。データはアプリの実行ごとにログに記録されることにご注意ください。セッション終了後にOVR Metricsツールを開き、右上隅のドロップダウンメニューをクリックして、[View Recorded Sessions(記録したセッションを表示する)]を選択します。セッションに対応するエントリを選択すると、パフォーマンスを示す一連のグラフが表示されます。記録されたセッションは、デバイスがコンピューターに接続されているときに、/OVRMonitorMetricsService/CapturedMetrics/からCSVファイルとして取得できます。Meta Quest開発者ハブを使って、ファイルマネージャから指標を取得できます。

パフォーマンスHUDモード

パフォーマンスHUDモードは、選択された指標を示すグラフを、実行中のアプリ上にリアルタイムで表示します。パフォーマンスHUDモードを有効にするには、メイン画面で[Enable Persistent Overlay (may require reboot)(永続的なオーバーレイを有効にする(再起動が必要な場合があります))]というトグルを有効にします。または、次のADBコマンドを発行してHUDを有効にすることもできます。
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_OVERLAY
HUDを有効にした後、それを表示するためにヘッドセットの再起動が必要になる場合があります。HUDは次のように表示されます(選択した指標に応じて異なります)。
Performance HUD over app
デフォルトでは、HUDにはFPSグラフ以外の指標は表示されません。ほかの指標を表示するには、[統計]タブで、またはレポートモードセクションで説明した[基本]および[拡張]ボタンを使って、表示する指標を手動で選択する必要があります。オーバーレイにどのグラフを表示するかを設定するには、[Graphs(グラフ)]タブを使います。
ボタンの下には、オーバーレイのその他のオプションがあります。グラフの統計と指標は切り替え可能です(デフォルトで有効になっています)。[Render Overlay on GPU (GPUでオーバーレイをレンダリングする)]オプションでは、オーバーレイのハードウェアレンダリングを切り替えられます(デフォルトで有効になっています)。
[Lock Overlay to Head (オーバーレイを頭部にロックする)]オプションは、デフォルトで有効になっています。このオプションを無効にすると、HUDはビューからロック解除されて空きスペースに配置されますが、予測できない結果になる可能性があるため、おすすめしません。このトグルの下には、HUDのスケールと位置に関するオプションがあります。
メイン画面の下部には、[Screenshot on Dropped Frames(ドロップフレームのスクリーンショットを撮る)]オプションがあります。このオプションを有効にすると、ドロップされたフレーム数が指定時間内の制限数を超えた場合、スクリーンショットが撮られます。
HUDのオプションの多くは、コマンドラインから以下のようなコマンドでコントロールできます。

オーバーレイを有効にする

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_OVERLAY
このコマンドには、以下の任意パラメーターを指定できます。
--eb headlocked (true|false) // whether the overlay should be locked to view
--ef pitch (-90.0 to 90.0) // the pitch of the overlay (negative is down)
--ef yaw (-180.0 to 180.0) // the yaw of the overlay (negative is left)
--ei scale (1, 2, or 3) // the scale of the overlay
--ef distance (0.1+) // the distance the overlay appears (headlocked only)

オーバーレイを無効にする

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_OVERLAY

グラフまたは統計を一括で有効/無効にする

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_GRAPH // enable all graphs
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_STATS // enable all stats
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_GRAPH // disable all graphs
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_STATS // disable all stats

グラフまたは統計を個別に有効/無効にする

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_GRAPH --es stat <stat> // add graph for <stat> to overlay
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_STAT --es stat <stat> // add <stat> to overlay
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_GRAPH --es stat <stat> // disable graph for <stat>
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_STATS --es stat <stat> // remove <stat> from overlay
<stat>の有効な値は、以下のとおりです。それらが表す統計情報については、OVR MetricsツールおよびVrApi統計ガイドをご覧ください。
"available_memory_MB",
"app_pss_MB",
"battery_level_percentage",
"battery_temperature_celcius",
"battery_current_now_milliamps",
"sensor_temperature_celcius",
"power_current",
"power_level_state",
"power_voltage",
"power_wattage",
"cpu_level",
"gpu_level",
"cpu_frequency_MHz",
"gpu_frequency_MHz",
"mem_frequency_MHz",
"minimum_vsyncs",
"extra_latency_mode",
"average_frame_rate",
"display_refresh_rate",
"average_prediction_milliseconds",
"screen_tear_count",
"early_frame_count",
"stale_frame_count",
"maximum_rotational_speed_degrees_per_second",
"foveation_level",
"eye_buffer_width",
"eye_buffer_height",
"app_gpu_time_microseconds",
"timewarp_gpu_time_microseconds",
"guardian_gpu_time_microseconds",
"cpu_utilization_percentage",
"cpu_utilization_percentage_core0",
"cpu_utilization_percentage_core1",
"cpu_utilization_percentage_core2",
"cpu_utilization_percentage_core3",
"cpu_utilization_percentage_core4",
"cpu_utilization_percentage_core5",
"cpu_utilization_percentage_core6",
"cpu_utilization_percentage_core7",
"gpu_utilization_percentage",
"spacewarp_motion_vector_type",
"spacewarped_frames_per_second",
"app_vss_MB",
"app_rss_MB",
"app_dalvik_pss_MB",
"app_private_dirty_MB",
"app_private_clean_MB",
"app_uss_MB",
"stale_frames_consecutive",
"avg_vertices_per_frame",
"avg_fill_percentage",
"avg_inst_per_frag",
"avg_inst_per_vert",
"avg_textures_per_frag",
"percent_time_shading_frags",
"percent_time_shading_verts",
"percent_time_compute",
"percent_vertex_fetch_stall",
"percent_texture_fetch_stall",
"percent_texture_l1_miss",
"percent_texture_l2_miss",
"percent_texture_nearest_filtered",
"percent_texture_linear_filtered",
"percent_texture_anisotropic_filtered",
"vrshell_average_frame_rate",
"vrshell_gpu_time_microseconds",
"vrshell_and_guardian_gpu_time_microseconds"

その他のadb設定オプション

adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_CSV // records all metrics to CSV files in /sdcard/OVRMontorMetricsService/CapturedMetrics/
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_CSV // disables writing metrics to disk
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.ENABLE_DROPPED_FRAME_SCREENSHOT --ei count <count> --ei time <time> // enables functionality that will take a screenshot if <count> frames are missed within a window of <time>
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.DISABLE_DROPPED_FRAME_SCREENSHOT // disables automatic screenshot functionality
adb shell am broadcast -n com.oculus.ovrmonitormetricsservice/.SettingsBroadcastReceiver -a com.oculus.ovrmonitormetricsservice.LOG_STATE // prints a json blob to logcat with the current configuration state of OVR Metrics Tool, useful for automated tooling

Unity用のOVR Metricsツールのツールキット

OVR Metricsツールのツールキットでは、OVRメトリックデータをアプリに統合する機能が公開されており、アプリでその機能を利用することにより、OVR Metricsツールのレポートとオーバーレイにデータを追加することができます。

ツールキットをダウンロードする

  • こちらのページからツールキットパッケージをダウンロードします。
  • ダウンロードしたパッケージからUnity/OVRMetricsToolSDK.unitypackageファイルを抽出します。
  • Unityで[Assets (アセット)] > [Import Package (パッケージをインポート)] > [Custom Package (カスタムパッケージ)]の順に選択して、パッケージをインポートします。

指標データへのアクセス

指標データにはOVRMetricsToolSDK.MetricsSnapshot構造体としてアクセスできます。この構造体には、上記の<stat>のすべての値のタイムスタンプとフィールドが含まれています。
以下のスニペットは、UnityアプリでOVR指標を表示するために使用できるメソッドの1つを示しています。
    void Update()
    {
        var metrics = OVRMetricsToolSDK.Instance.GetLatestMetricsSnapshot();
        GetComponent<TMP_Text>().text = metrics?.cpu_utilization_percentage.ToString() ?? "";
    }

CSVデバッグ文字列を付加する

AppendCSVDebugStringは、[Record To CSV (CSVに記録)]オプションが選択されてオンになっている場合に、カスタム開発者データをCSVの中に付加するために使用します。デバッグデータはCSVの最後の列に入れられます。1 Hzを超える高い頻度でデータが入力された場合、データはCSVの中で新しい行に入れられ、指標列は空になります。この機能は、シーンの遷移をマークしてCSV分析で利用するという用途を意図したものです。
以下のように呼び出すことでこのメソッドにアクセスできます。
OVRMetricsToolSDK.Instance.AppendCsvDebugString(debugString);

オーバーレイデバッグ文字列を設定する

SetOverlayDebugStringは、OVR Metricsツールオーバーレイに関するカスタム情報を表示するために使います。このデータを表示するには、[Show Debug Data(デバッグデータを表示する)]が有効になっていることを確認してください。データは、オーバーレイの下部に表示されます。オーバーレイデバッグ文字列は、フレームごとに1回アップデートできますが、永続的ではありません。デフォルトの場合、オーバーレイデバッグ文字列は白ですが、文字列に<color=#{hex value}>...</color>のタグを含めることによって色をカスタマイズできます。
ネイティブモバイルSDKの場合、次のメソッドにより文字列が設定されます。
OVRMetricsToolSDK.Instance.SetOverlayDebugString(debugString);

アプリ指標を定義して送信する

アプリ固有のデータ(プレイヤーのHP、敵の数、ゲーム固有のパフォーマンス指標など)をトラッキングするには、カスタム指標を定義します。これは初期化時に1回だけ、通常はStart()の中で呼び出します。
void Start()
{
    // Player Health Metric
    OVRMetricsToolSDK.Instance.DefineAppMetric(
        name: "player_health",
        displayName: "Player Health",
        group: "Player",
        rangeMin: 0,
        rangeMax: 100,
        graphMin: 0,
        graphMax: 100,
        redPercent: 0.2f,
        greenPercent: 0.7f,
        showGraph: true,
        showStat: true
    );

    // Active Enemies Metric
    OVRMetricsToolSDK.Instance.DefineAppMetric(
        name: "active_enemies",
        displayName: "Active Enemies",
        group: "Gameplay",
        rangeMin: 0,
        rangeMax: 50,
        graphMin: 0,
        graphMax: 50,
        redPercent: 0.8f,
        greenPercent: 0.5f,
        showGraph: true,
        showStat: true
    );
}
指標パラメーター:
  • name: 指標固有のID
  • displayName: OVR Metricsツールに表示される、人間が読める形式の名前
  • group: 指標を整理するためのカテゴリ(例: 「Player」、「Gameplay」)
  • rangeMin/rangeMax: 指標の有効な値の範囲
  • graphMin/graphMax: グラフ表示の範囲
  • redPercent: 赤の警告インジケーターのしきい値(0.0~1.0)
  • greenPercent: 緑のインジケーターのしきい値(0.0~1.0)
  • showGraph: 指標をグラフビューに表示する
  • showStat: 指標をテキスト統計として表示する
カスタム指標を定義したら、定期的に更新します(通常はUpdate()の中で、または値が変化したときに更新)。
void Update()
{
    // Update metrics with current values
    OVRMetricsToolSDK.Instance.UpdateAppMetric("player_health", currentHealth);
    OVRMetricsToolSDK.Instance.UpdateAppMetric("active_enemies", enemyCount);
}
ベストプラクティス: 値が変化していない場合は、指標をフレームごとに送信しないでください。オーバーヘッドを減らすには、必要な場合にのみ更新します。

Core Metrics Reporting

Unityの組み込みの指標は、Core Metrics Reportingコンポーネントを通じてOVR Metricsツールで自動的にトラッキングおよび視覚化できます。この機能は、メモリ使用量やレンダリング統計など、Unityの重要なパフォーマンスデータをリアルタイムでモニタリングし、開発時にパフォーマンスのボトルネックを簡単に特定できるようにします。
UnityプロジェクトでCore Metrics Reportingを有効にするには、次のようにします。
  1. シーンの階層で[Camera Rig (カメラリグ)] GameObjectを選択します。
  2. インスペクターで[Add Component (コンポーネントを追加)]をクリックして、[OVR Metrics Manager (OVR Metricsマネージャ)]を検索します。
  3. コンポーネントを追加すると、コンポーネントのUIで、モニタリングする指標を設定できます。
    • メモリ指標: メモリの割り当てや使用パターンをトラッキングする
    • レンダリング指標: レンダリング関連のパフォーマンスデータをモニタリングする
指標カテゴリごとに、次の視覚化の形式を選択できます。
  • 統計: 指標をオーバーレイ内の数値のテキストとして表示する
  • グラフ: 指標をリアルタイムのグラフとして視覚化し、長期的なトレンドを表示する
OVR Metrics Manager component in Unity Editor
これらのUnity指標は、OVR Metricsツールのオーバーレイ機能やCSV記録機能とシームレスに統合され、システムレベルのパフォーマンスデータとともに表示されます。この統合ビューにより、Unity固有の指標とデバイスのパフォーマンス指標を相互に関連付け、包括的な分析を行うことができます。
Core Metrics displayed in OVR Metrics Tool overlay

参考情報

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