Version: 2023.1
言語: 日本語
Unity のデバッグフレーム
フレームデバッガーのイベント階層

Frame Debugger ウィンドウのリファレンス

Frame Debugger ウィンドウは、Unity の Frame Debugger (フレームデバッガー) のユーザーインターフェースです。このウィンドウは、レンダリングイベントの情報を表示し、構築中のフレームの再生を制御します。

Frame Debugger ウィンドウ
Frame Debugger ウィンドウ
Label 説明 
Enable/Disable: フレームデバッガーを有効または無効にします。
ターゲットセレクター: どの処理にフレームデバッガーを設定するか指定します。デフォルトでは Unity エディターですが、これを使用して、ビルド済みアプリケーションにフレームデバッガーを設定することができます。詳細は、ビルド済みプロジェクトへのフレームデバッガーの設定 を参照してください。
イベントスライダー: 現在のフレームのレンダリングイベント間をリニアに移動できるスライダーです。
前のイベント: 現在選択されているイベントの直前のイベントを選択します。
次のイベント: 現在選択されているイベントの次のイベントを選択します。
イベント階層: フレームを構成するレンダリングイベントのシーケンスを一覧表示します。詳細は イベント階層 を参照してください。
イベント情報パネル: イベントに関する情報 (ジオメトリの詳細や、ドローコールに使用されたシェーダーなど) を表示します。詳細は イベント情報パネル を参照してください。

フレームのデバッグ

フレームデバッガーを使ってフレームをデバッグするには、以下の手順に従ってください。

  1. フレームデバッガーを開きます (メニュー: Window > Analysis > Frame Debugger)。
  2. ターゲットセレクターを使用して、フレームデバッガーを設定する処理を選択します。Unity エディターでフレームをデバッグする場合は Editor に設定します。ビルド済みアプリケーションのフレームをデバッグする場合は、ビルド済みプロジェクトへのフレームデバッガーの設定 を参照してください。
  3. Enable をクリックすると、フレームデバッガーがフレームをキャプチャします。フレームを構成するドローコールやその他のイベントがイベント階層に表示され、ゲームビューにフレームがレンダリングされます。
    ノート: アプリケーションが実行中の場合は、フレームデバッガーによって一時停止されます。
  4. イベント階層からイベントを選択すると、そのイベントまでの (そのイベントも含む) シーンが表示されます。また、イベント情報パネルにはイベントに関する情報が表示されます。前のイベントボタン、次のイベントボタン、矢印キー、あるいはイベントスライダーを使用して、フレーム間をリニアに移動できます。デバッグしたいジオメトリがどのイベントでレンダリングされているか分からない場合に、イベントが見つかるまでリニアに移動できるこれらのナビゲーションツールが役に立ちます。

ドローコールイベントがゲームオブジェクトのジオメトリに対応する場合、Hierarchy ウィンドウ 内でそのゲームオブジェクトが強調表示されます。

イベントが レンダーテクスチャ にレンダリングされる場合、そのレンダーテクスチャの内容がゲームビューと Frame Debugger ウィンドウに表示されます。これは、様々なオフスクリーンのレンダーターゲットがどのように累積するか確認するために役立ちます。以下はその例です。

ディファードレンダリング中に累積してディフューズ G バッファを生成するイベントの表示
ディファードレンダリング中に累積してディフューズ G バッファを生成するイベントの表示

ビルド済みプロジェクトへのフレームデバッガーの設定

ビルドされた Unity Player にフレームデバッガーを設定するために、フレームデバッガーのターゲットプロセスを変更することができます。Unity Player がフレームデバッガーと互換性を持つためには、以下の条件を満たしている必要があります。

  • Development Build ビルド設定 を使用していること。
  • マルチスレッドレンダリングをサポートしていること。これは WebGL を除く全ての Unity プラットフォームでサポートされています。
  • デスクトッププラットフォームでは Run In Background Player 設定 を使用していること。そうでない場合は、Unity エディターで Frame Debugger ウィンドウにフォーカスした時に Unity Player からフォーカスが外れ、レンダリングの変更が反映されません。

Unity Player が上記の条件を満たしていれば、次に フレームをデバッグ する時に、フレームデバッガーを Unity Player に設定することができます。

Unity のデバッグフレーム
フレームデバッガーのイベント階層