FPS Drop Detection を有効化して使用する方法
注釈:本資料はAI技術を用いて翻訳されています。
目的
Windows 上の Unreal Engine プロジェクトで自動 FPS Drop Detection をセットアップし、すべての Development ビルドセッションでフレームレート低下を動画クリップ、スレッドプロファイリングデータ、プレイヤーコンテキストとともにキャプチャできるようにします。これらのデータは、セッション終了後に ADT ダッシュボードで確認できます。
前提条件
-
ADT SDK が Unreal Engine 5.0 以降のプロジェクトにインストールおよび初期化されていること。SDK は FPS Drop Reporter モジュールを含むバージョンである必要があります。セットアップ手順については、ADT SDK 統合ガイドを参照してください。
-
名前空間管理者が Labs から
fps-drop-detectionを有効化した ADT 名前空間。以下のステップ 1 を参照してください。 -
Development ビルド構成 — FPS Drop Detection は Shipping ビルドからは自動的に取り除かれます。ビルドには Development 構成を使用する必要があります。
-
ネットワークアクセス — FPS ドロップデータをアップロードするため、ゲームを実行しているマシンがセッション終了時に ADT バックエンドへ到達できる必要があります。
-
開発マシンに ADT Hub がインストールされていること(アップロード進行状況の確認に必要です)。
手順
ステップ 1: Labs 設定で機能を有効化する
FPS Drop Detection は Labs トグルによってゲート制御されています。機能が利用可能になる前に、名前空間管理者による有効化が必要です。
-
ADT Web を開き、Namespace Settings に移動します。
-
Labs セクションに移動します。
-
リストから FPS Drop Detection を見つけて有効化します。
-
表示されるダイアログでアクティベーションを確定します。
有効化すると、ダッシュボード全体に FPS Drop Detection の UI 要素が表示されます。具体的には、サイドバーの FPS Drop 項目、FPS Drop Reporting 設定セクション、Flight Recorder タイムライン上の FPS ドロップマーカーなどです。

ステップ 2: 検出しきい値を設定する
-
ADT Web で Project Settings に移動します。
-
FPS Drop Detection セクションを見つけます。
-
FPS Drop Detection をオンに切り替えます。
-
検出しきい値を設定します。
-
Minimum FPS — システムが潜在的なドロップの追跡を開始するフレームレートのしきい値です。デフォルトは 30 で、1 から 120 までの整数を指定できます。
-
Minimum Duration (ms) — ドロップが確定するまでに、フレームレートがしきい値を下回り続ける必要のある時間です。デフォルトは 500 で、100 から 5000 までの整数を指定できます。
-
-
Save をクリックします。
Upload Strategy フィールドには「Queue until Session End」と表示され、編集はできません。すべての FPS ドロップデータのアップロードはセッション終了後に行われます。
FPS Drop Reporting は Development ビルドでのみ動作します。Shipping ビルドでは自動的に無効化されます。

ステップ 3: Development ビルドセッションを実行する
追加のコードは不要です。新しいセッションが開始されると、ADT SDK が自動的にフレームタイムの監視を開始します。
-
Development ビルド構成でゲームを起動します。
-
SDK は起動時に
bbx_start_new_session()を呼び出し、サーバーから FPS ドロップレポートポリシーを取得します。 -
パフォーマンス問題が想定されるエリアや、テストしたいエリアでプレイします。
-
SDK はバックグラウンドで毎フレームを監視します。設定したしきい値に一致する持続的な FPS ドロップが検出されると、自動的に以下の処理が行われます。
-
リングバッファから 10 秒間の動画クリップをダンプ
-
GameThread、RenderThread、GPU のタイミングデータをキャプチャ
-
現在のレベル名/マップ名およびプレイヤー座標を記録
-
ペイロードをディスク上のローカルキューに書き込み
-
ゲームプレイ中に検出システムをトリガーしたり、注釈を付けたり、操作したりする必要はありません。1 フレームあたり 0.1ms 未満のオーバーヘッドでバックグラウンドで動作します。
ステップ 4: セッションを終了してアップロードする
セッションが終了すると、SDK は自動的にキューに入っているすべての FPS ドロップデータをアップロードします。
-
通常どおりにゲームを終了する(SDK は
EndPlayにフックされます)か、メインメニューに戻ります。 -
ADT Hub は右下隅にアップロード進行状況パネルを表示し、以下の情報を示します。
-
キューに入っている FPS ドロップペイロード数とアップロード済み数
-
動画クリップのアップロード進行状況(例:「Video 2 of 3 uploading...」)
-
全体の完了率
-
-
アップロードが完了するまで待ちます。完了するとパネルに成功サマリーが表示されます。
アップロード進行状況パネルはノンブロッキングです。アップロードが進行している間も ADT Hub を引き続き使用できます。ただし、アップロードが完了するまでは ADT Hub を閉じないでください。
3 回リトライしてもアップロードに失敗した場合、パネルには失敗したペイロード数と Retry All Failed ボタンが表示されます。失敗したペイロードは、次回のセッション開始時にも自動的にリトライされます。
ステップ 5: ダッシュボードで FPS ドロップを確認する
アップロードが完了すると、FPS ドロップデータが ADT Web で利用可能になります。
Sessions List を確認する:
-
ADT Web で Sessions に移動します。
-
FPS Drops カラムには、セッションごとに確定された FPS ドロップイベント数が表示されます。
-
FPS ドロップのあるセッションには黄色の警告バッジが表示されます。セッションステータスには以下のいずれかが表示されます。
-
Clean — FPS ドロップなし、クラッシュなし
-
Has FPS Drops — FPS ドロップが検出された、クラッシュなし
-
Crashed — セッションがクラッシュした(FPS ドロップが発生していた場合でもこちらが優先されます)
-
-
ステータスフィルターを使用すると、FPS ドロップのあるセッションのみを表示できます。
FPS Drops List を閲覧する:
- サイドバーの FPS Drops(Crashes と Issues の間に表示)に移動します。

-
FPS Drops List には、Timestamp、Session ID、User、Level/Map、Duration、Min FPS、Bottleneck、Build などのカラムを持つ個別の FPS ドロップイベントがすべて表示されます。
-
フィルターを使用して、Bottleneck Type (GameThread / RenderThread / GPU)、FPS Drop ID、Level/Map、または Date Range で絞り込みます。
-
任意の行で View Clip をクリックすると、10 秒間の動画、統計の内訳、プレイヤーコンテキストを含む Inspector パネルが開きます。

Aggregated View でホットスポットエリアを特定する:
-
FPS Drops > Aggregated に移動します。
-
FPS ドロップは Level/Map ごとにグループ化され、平均 FPS ドロップ、記録された最小 FPS、発生回数、影響を受けたユーザー、ビルドが表示されます。
-
レベル名をクリックすると、そのレベルで事前にフィルターされた FPS Drops List にジャンプします。
Flight Recorder で個別の FPS ドロップを検査する:
-
セッションの詳細ビュー (Flight Recorder) を開きます。
-
各 FPS ドロップのタイムスタンプには、タイムライン上に黄色いピル形マーカーが表示されます。ピルが高いほどドロップがより深刻であることを示します。
-
マーカーにホバーすると、タイムスタンプと FPS 値が表示されます。
-
マーカーをクリックすると Inspector パネルが読み込まれます。
-
Video — 10 秒間のクリップが自動再生されます。, キーと . キーでフレーム単位の送り戻しができます。
-
Stat Unit Bar Chart — GameThread、RenderThread、GPU の積み上げ棒グラフです。フレーム予算を超えたときには、支配的なバーが赤でハイライト表示されます。
-
Context — レベル名、プレイヤー座標、継続時間、最小 FPS が表示されます。
-
-
左右の矢印キー を使用して、タイムライン上の FPS ドロップマーカー間を移動します。


検証
上記のステップを完了したら、セットアップが機能していることを確認します。
-
検出の確認 — パフォーマンスに負荷のかかる既知のエリアを Development ビルドセッションで実行した後、少なくとも 1 つの FPS ドロップイベントが FPS Drops List に表示されることを確認します。
-
動画の利用可否 — FPS ドロップ行で「View Clip」をクリックすると、10 秒間の動画クリップが再生されます。動画に「Video unavailable」と表示される場合は、S3 アップロードが失敗した可能性があります。アップロードエラーがないか ADT Hub を確認してください。
-
正しいボトルネック — Bottleneck カラムには GameThread、RenderThread、または GPU が表示されます。これがテストしたエリアの想定と一致するかどうかを確認します(例: 重いブループリントロジックを含むシーンでは GameThread が表示されるはずです)。
-
セッションステータス — Sessions List では、FPS ドロップのあるセッションに対して正しいステータスバッジが表示されます。
-
Aggregated view の表示 — Aggregated view では、FPS ドロップがレベルごとにグループ化され、発生回数が表示されます。
トラブルシューティング
-
明らかなヒッチを伴うセッションでも FPS ドロップが検出されない。 解決策: Project Settings > FPS Drop Detection で検出しきい値を確認します。たとえば、Min FPS が 10 に設定されていてゲームが 25 FPS まで下がった場合、システムはこれをドロップとみなしません。Min FPS のしきい値を下げるか、対象とするドロップタイプに合わせて Min Duration を増やしてください。
-
FPS Drop Detection セクションが Project Settings に表示されない。 解決策: 名前空間で Labs の fps-drop-detection 機能が有効になっていません。名前空間管理者に、Namespace Settings > Labs で有効化するよう依頼してください。
-
FPS Drop のサイドバー項目が ADT Web に表示されない。 解決策: 上記と同じです。Labs がオフの場合、FPS Drop Detection の UI 全体が非表示になります。
-
アップロードが繰り返し失敗する (ADT Hub に失敗したペイロードが表示される)。 解決策: ADT バックエンドへのネットワーク接続を確認します。SDK が有効な IAM 認証情報を保持しているか確認してください。失敗したペイロードはディスク上に保持され、次回のセッション開始時にリトライされるため、データが失われることはありません。
-
Inspector Panel で動画に「Video unavailable」と表示される。 解決策: メタデータのアップロードは成功しているものの、動画クリップの S3 アップロードが失敗しています。FPS ドロップレコードにはすべてのプロファイリングデータが含まれています。動画は、次回のセッション開始時のリトライで正常にアップロードされる場合があります。
-
エディタでは FPS ドロップが検出されるがパッケージビルドでは検出されない。 解決策: Shipping ビルドではなく Development ビルドとしてパッケージングしていることを確認してください。FPS Drop Detection コードは
#if !UE_BUILD_SHIPPINGによって Shipping ビルドから取り除かれます。 -
セッション途中のポリシー変更が反映されない。 解決策: これは仕様どおりの動作です。FPS ドロップ検出ポリシーはセッション開始時
(bbx_start_new_session())に一度だけ読み込まれます。しきい値の変更は次回のセッションから有効になります。 -
一部の FPS ドロップでレベル名が「Unknown Map」と表示される。 解決策: これは、ワールド参照が一時的に null になるレベル遷移中に FPS ドロップが確定したときに発生します。SDK はこれらのケースでレベルを「Unknown Map」として記録します。なお、動画クリップとプロファイリングデータは通常どおりキャプチャされます。
次のステップ
-
ホットスポットエリアを分析する — Aggregated View を使用して、複数のセッションとユーザーをまたいで最も FPS ドロップが多いレベルを特定し、最適化作業の優先順位を決定します。
-
ビルド間で比較する — FPS Drops List の Build フィルターを使用してビルド間の FPS ドロップ頻度を比較し、パフォーマンス修正が有効であることを確認します。
-
Full Profiling (Phase 2) を有効化する — 利用可能になった際に、フルプロファイリングをオプトインしてセッションの完全なエンジントレースファイルをキャプチャできます。AI 診断エンジンがこれらのトレースを分析し、各 FPS ドロップを引き起こしている正確な関数を特定します。AI 診断パイプラインの詳細については、FPS Drop Detection 機能ドキュメントを参照してください。