Chaos Visual Debugger (CVD) は、物理シミュレーションのレコーディングに使用できるツールです。 CVD を使用すると、マシン上で実行されているゲームやアプリケーションだけでなく、リモートマシンやマシンに接続されたプラットフォームからレコーディングすることができます。
CVD でレコーディングを再生することで、データを調査してデバッグを行うことができます。 これらのレコーディングはプロジェクトに依存しないため、Unreal Engine (UE) のプロジェクトファイルにアクセスできない場合でも読み込み可能であり、チーム間コラボレーションやリモートデバッグが可能になります。
CVD レコーディングの対象となるデータは次のとおりです:
パーティクル (速度、加速度、質量プロパティ、オブジェクトの状態を含む)
コリジョン ジオメトリ (コリジョン チャンネルを含む)
コリジョン コンストレイント (その状態とコンタクト ペア)
ジョイント コンストレイント (状態とジョイント設定)
キャラクター グラウンド コンストレイント (物理ベースのキャラクターの移動)
シーン クエリ (ライン トレース、スイープ、オーバーラップを含む)
剛体アニメーション ノード (RBAN)
CVD のコンテキストでは、パーティクルは通常、剛体を指します。
Chaos Visual Debugger を起動
CVD を起動するには次の 2 つの方法があります。エディタから開始したりスタンドアローン プログラムとして起動したりできます。
Unreal Editor 内
Chaos Visual Debugger を Unreal Editor から開くには、メニューバーで、ツール > デバッグ > Chaos Visual Debugger を選択します。 CVD を選択すると、新しいウィンドウでツールが開きます。
スタンドアローン プログラムとして使用する
CVD をスタンドアローン プログラムとして実行するには、Unreal Engine のソースコード ビルドを使用する必要があります。 ソースコードのビルドは、GitHub からダウンロードできます。 詳細については、「ソースから Unreal Engine をビルドする」を参照してください。
CVD は、実行可能ファイル (移植可能ではない) またはバッチ ファイル (移植可能) のいずれかからスタンドアローン プログラムとしてビルドして実行できます。 次の表では、各オプションのファイルの場所とビルド手順について説明します。
| ビルドフロー | 説明 |
|---|---|
CVD 実行可能ファイル | 実行可能ファイルは次のファイル パスにあります: CVD をビルドして実行するには、以下の手順に従います:
ビルドが完了すると、実行可能ファイルのショートカットを作成し、ワンクリックでツールを実行することができます。 |
CVD バッチ ファイル | 次のパスにあるバッチ ファイル; CVD をビルドして実行するには、以下の手順に従います:
|
CVD ユーザー インターフェースを学ぶ
このセクションでは、Chaos Visual Debugger で操作する、最も一般的なボタン、パネル、およびツールバーについて説明します。 これらの要素の一部は Unreal Editorのインターフェースに似ていますが、CVD と Unreal Editor のバージョンの間には視覚的な違いがあるため、CVD について理解しておく必要があります。
以下のセクションでは、各ユーザー インターフェース (UI) 要素が存在する場所と、シンプルなユースケースについて説明します。 詳細については、このページに記載されているリンクを参照してください。
| 番号 | 名前 | 概要 |
|---|---|---|
1 | メニュー バー | 最近のレコーディングを読み込んで CVD レイアウトを変更するオプションです。 |
2 | メイン ツールバー | レコーディングの開始/停止、レコーディングの読み込み、レコーディングするデータのカスタマイズを行うオプションです。 |
3 | ビューポート ツールバー | ビューポートに表示されるデータと、視覚的に区別する方法を変更するオプションです。 |
4 | シーン アウトライナー | レコーディング内のシーンコンポーネントのリストを表示します。 |
5 | ビューポート | 読み込み済みまたはライブレコーディングを表示します (Unreal Editor のビューポートと同様)。 これには以下が含まれます:
|
6 | 再生コントロール | 次を含む再生のタイムラインとログのコレクションを表示します: |
7 | 詳細パネル | パーティクルなどの専用のデータ インスペクターを持たないビューポート内で行われた選択の情報を表示します。 |
8 | データ インスペクター | 次の追加情報が表示されます: |
メニューバー
メイン ツールバー
| 番号 | 名前 | 説明 |
|---|---|---|
1 | ファイルを開く | 既存の「 |
2 | セッションに接続 | (レガシー) リモートデバッグ用にリモートマシンに接続します。 現在、これはコマンドラインを介してリモートセッションをレコーディングするときにのみ使用されます。 詳細については、「(レガシー) ライブ セッションをコマンド ライン インターフェースでレコーディングする」を参照してください。 |
3 | 結合 | CVD で開かれている複数のレコーディングを 1 つの「 |
4 | シーン クエリ ブラウザ | 単一フレーム用に作成されたすべてのシーン クエリを検査します。 これに関する詳細は、「データ インスペクター」を参照してください。 |
5 | セッション ターゲット | レコーディング対象のターゲットを選択します。 |
6 | ローディングモード | 単一または複数のレコーディングを読み込みます (データをマージします)。 |
7 | ファイルに記録 | レコーディングを開始してファイルに保存します。 |
8 | ライブセッションをレコーディングする | レコーディングを開始し、リアルタイムでビジュアライゼーションをレンダリングします。 |
9 | データ チャンネル | レコーディング時にキャプチャするデータを、次のようにカスタマイズします: |
10 | 設定 | CVD の UI とパフォーマンスをカスタマイズします。 |
ビューポート ツールバー
ハンバーガー メニュー
| 名前 | 説明 | 画像 |
|---|---|---|
レコーディング時のフレームレートで再生する | レコーディングされたフレームレートを固定フレームレートにオーバーライドします。 | |
オブジェクトトラッキング (F8) | ビューポート内のオブジェクトにカメラを固定します。 | |
FOV オプション | ビューポートの FOV (視野角) および最も遠いレンダリング距離を調整します。 | |
透過処理選択を有効にする (T) | 透過オブジェクトをクリックする機能を切り替えます。 | |
指定した位置に移動する | XYZ 形式を使用して、このフィールドに入力された位置にカメラをテレポートします。 |
表示モード
ビューポートの表示モードは、パースペクティブビュー、上面ビュー、下面ビュー、左ビュー、右ビュー、正面ビュー、背面ビューに切り替わります。
ライティングモード
ライティングモードは、ビューポートの「ライティングあり」、「非ライティング」、「ライティングありワイヤーフレーム」、「ワイヤーフレーム」の表示モードに切り替わります。
ライティング モード
ボタンを表示
「表示」ボタンにより、既存のレコーディングのビューポートに表示されるビジュアライゼーションフラグとデバッグテキストを変更できます。 データ フラグの詳細については、「データビジュアライゼーションフラグ」を参照してください。
このメニューの設定は、デフォルトにリセットされない限り、CVD セッション間で維持されます。
トランスフォーム/スナップツールバー
トランスフォームとスナップのツールバーは、Unreal Editor の以前のバージョンにおける従来のビューポートツールバーに似ています。 ほとんどの場合、これらのツールはライト アクタの操作に使用します。
| アイコン | 名前 | 説明 |
|---|---|---|
オブジェクトを選択 | ビューポート内のオブジェクトを選択します。 | |
オブジェクトを選択して平行移動 | 個別の軸、2 つの軸、または 3 つすべての軸に沿って、ライト アクタをワールド内で移動します。 | |
オブジェクトを選択して回転 | 個別の軸に沿ってライト アクタを回転させます。 | |
オブジェクトを選択してスケーリング | スケールギズモを使用してライト アクタをスケールします。 ギズモを使用して、個別の軸、2 つの軸、または 3 つすべての軸に沿って均一にオブジェクトをスケーリングできます。 | |
座標系 | ワールドとローカの間で座標系を切り替えます。 | |
サーフェスにスナップ | 別のオブジェクトのサーフェスに沿ってドラッグしたときのライト アクタのスナップ動作を設定します。 | |
グリッドにスナップ | ライト アクタがグリッドにスナップするかどうかを切り替え、増分を設定します。 | |
回転増分 | ライト アクタが小刻みに回転するかどうかを切り替え、度数を設定します。 | |
スケーリングの増加 | ライト アクタが増分してスケールするかどうかを切り替え、増分を設定します。 | |
Camera Speed (カメラ速度) | カメラがワールド内を移動できる速度に影響します。 |
シーン アウトライナー
シーン アウトライナーでは、レコーディング内のシーン コンポーネントのリストが表示されます。 各レコーディングには複数のソルバを含めることができるため、各ソルバのパーティクルは、属するソルバの名前と ID を持つフォルダの下に配置されます。 そのフォルダ内で、各パーティクルは Chaos 側のデバッグ名でラベル付けされます。
CVD では、物理ソルバは (通常はゲームワールドから) 物理シミュレーションのインスタンスを指し、Chaos 物理エンジンによって処理されます。
再生コントロール
Chaos Visual Debugger は、ゲームスレッドフレーム、物理ソルバフレーム、またはシミュレーションのステージに基づいて既存のレコーディングを再生および巻き戻すためのコントロールを備えています。 これにより、ネットワーク物理、非同期物理、または複数のゲームワールド (マルチプレイヤー ゲームなど) を使用する状況を最大限に調べることができます。
ゲームフレームのタイムライン
ゲームフレームのタイムラインは、レコーディングの各ゲームスレッドフレームを表します。
このタイムラインを使用してレコーディングを再生すると、ソルバのタイムラインも再生されることがわかります。 これは、再生するゲームスレッドの各フレームに対して、CVD がそのタイムスタンプで利用可能な最も近い物理ソルバのフレームを検索するためです。
ゲームフレームのタイムラインフレーム数は、ソルバのタイムラインと一致しない場合があります。 これは、ゲームスレッドのフレームが複数の物理ソルバのフレームに対応する場合があるためです。 両方のタイムラインにアクセスできるということは、非同期物理の使用時など、問題が発生した状況を調べることができるということです。
CVD が同期および非同期物理、複数のゲームワールドのデータ、および再シミュレートされたフレームをどのように視覚化するかについては、16:05 分のマークから Unreal Engine の Chaos 物理デバッグを参照してください。
ソルバのタイムライン
ソルバのタイムラインは、レコーディングの各物理ソルバフレームを表します。 各ソルバには専用のトラックがあります。 このタイムラインを使用して、任意のソルバトラックのデータを再生し、どのソルバフレームが特定のゲームスレッドフレームに対応しているかを確認することができます。
| 設定 | 説明 | 画像 |
|---|---|---|
タイムライン同期モード | 各ソルバトラックが同期される方法をコントロールします。
| |
再シミュレーションバッジ | ネットワーク非同期修正プロセス中に行われた再シミュレーションの一部であるフレームを含むすべてのソルバトラックに表示されます。 | |
可視性コントロール | 特定のソルバトラックから視覚化されたデータを表示または非表示にします。 |
ソルバステージのタイムライン
ソルバステージのタイムラインを使用すると、物理シミュレーションの特定のステージに移動することができます。 ステージは、単一の物理フレーム内のさまざまなポイントで取得されたシミュレーションのスナップショットです。
次のステージを視覚化することができます。例としてパーティクルシミュレーションを使用します。
| ステージ | 説明 |
|---|---|
進化開始 | ソルバステップの開始時にすべてのパーティクルのスナップショットを取得します。 |
統合後 |
|
コリジョン検出の幅広いフェーズ | コリジョン検出プロセスの広範囲フェーズの実行後に、すべての中間フェーズのスナップショットを取得します (その境界がオーバーラップするパーティクルのペアごとにオブジェクトが作成されます)。 |
コリジョン検出の狭いフェーズ | コリジョン検出プロセスの狭いフェーズを実行した後に、すべての中間フェーズのスナップショットを取得します。 |
プレコンストレイント解決 | 利用可能なコンストレイントを解決する前にすべてのパーティクルのスナップショットを取得します。 |
ポストコンストレイント解決 | コンストレイントを解決した後、すべてのパーティクルのスナップショットを取得します。 |
進化終了 | ソルバステップの最後にすべてのパーティクルのスナップショットを取得します。 |
ソルバステージのタイムラインは、オブジェクトがフレームの最初では正しい位置に表示されたものの、フレームの最後では予期しない位置に現れた場合など、単一のフレーム内の異常な動作を調べる際に便利です。
記録された出力ログ
「ソルバのタイムライントラック」タブの横にある「レコーディングされた出力ログ」タブでは、CVD がアプリケーションのログストリームをレコーディングして、事後調査を行うことができます。
出力ログ
出力ログは、アクティビティを監視するリアルタイムのログです。 このタブには、現在の CVD インスタンスのアクティブなログや、CVD 自体のエラーや警告が表示されます。
[Details] パネル
詳細パネルには、ビューポートで選択したものの情報が表示されます。
詳細パネルは、パーティクル データのデータ インスペクターとしても機能します。 詳細については、「パーティクル データ (詳細パネル)」を参照してください。
次の内容
データ インスペクター
Chaos Visual Debugger のデータ インスペクターを理解する。
データ ビジュアライゼーションフラグ
Chaos Visual Debugger におけるデータ ビジュアライゼーションフラグについて理解する。
Chaos Visual Debugger でデータをキャプチャする
Chaos Visual Debugger でレコーディングをキャプチャして再生します。