
概要
Chaos Visual Debugger (CVD) は Chaos 物理シミュレーションのビジュアル デバッギング ツールです。これは、Chaos 物理シーンのグラフィック ビューを提供し、データを視覚化しシミュレーション結果を分析するためのさまざまなツールを備えています。
CVD は、ゲームプレイ時に物理シミュレーションの状態を記録するエディタ ツールおよびランタイム システムとして Unreal Engine に含まれています。ツール内でこれらのシミュレーションをリプレイしたり、指定されたフレームまたはシミュレーションのサブステップのデータを調査したりすることができます。
サポート対象の機能
Chaos Visual Debugger は、シーン内のすべてのアクティブな 剛体 および Rigid Body Animation ノード (RBAN) ソルバの記録をサポートしています。これには、すべての物理パーティクル、コンタクトおよびコンストレイントなどのステート データやコリジョン データが含まれています。
物理シーンを保存およびロードする

このツールはセッションを記録し、その後の調査のためにディスクに保存できます。保存されたアセットはプロジェクト自体に依存しないので、誰もが CVD アセットを Unreal Engine にロードして物理シーンを分析できます。
シーン データを視覚化する


ロードすると、ステート、形状タイプ または クライアントまたは サーバーでアクティブ かどうか別にパーティクルを色分けすることでシーンを視覚化できます。
次のように視覚化することもできます。
- グローバル パーティクル データ: 速度、加速、衝撃、接続エッジ、選択したパーティクルの重心またはビューポートのすべてのパーティクルを表示します。
- グローバル コリジョン データ: 接触点、法線、衝撃や、選択したパーティクルのプッシュ出力またはビューポートのすべてのパーティクルを表示します。
- グローバル シーン クエリ: スイープ、ライン トレース、オーバーラップなどのシーン クエリをソース別に描画します。
- グローバル ジョイント データ: プッシュ出力、コネクタ、ストレッチ、軸、およびパーティクルがシミュレートされるか、選択したパーティクルに対してキネマティックであるか、ビューポートのすべてのパーティクルであるかを表示します。
デバッグ コリジョン

CVD では、パーティクルごとに次のデータを表示することで、デバッグ コリジョンに役立ちます。
- 接触点: パーティクルでコリジョンの接触点を描画します。
- 接触情報: パーティクルの貫通などによって、追加のコリジョン情報を描画します。
- 実質的なプッシュ出力: パーティクルのプッシュ出力の力を描画します。
- 実質的な力積: この接触点によって適用される合計力積を描画します。
- 接触面法線: 2 番目の形状における、1 番目の形状から離れる方向の、形状空間接触面法線を描画します。
- 蓄積力積: コリジョン コンストレイントの蓄積力積を描画します。
- 非アクティブな接触の描画: 生成されたコリジョンの接触点を描画しますが、これらは無効としてフラグを付けられるか、計算済みプッシュ出力の力または力積値がありません。
デバッグ シーン クエリ

CVD では、パーティクルごとに次のデータを表示することで、デバッグ シーン クエリに役立ちます。
- ライン トレース クエリ: パーティクルに関連付けられたライン トレースを描画します。
- スイープ クエリ: パーティクルに関連付けられたスイープを描画します。
- オーバーラップ クエリ: パーティクルに関連付けられたオーバーラップを描画します。
- ヒット: パーティクルに関連付けられたヒットを描画します。
- サーバー クエリ: サーバーで実行されたパーティクルのクエリを描画します。
- クライアント クエリ: クライアントで実行されたパーティクルのクエリを描画します。
ライブ セッション デバッグ

ライブ ゲームプレイ セッションに接続すると、リアルタイムで Chaos 物理シーンを確認できます。これは、ゲームの実行中にコンテキスト内のランタイム デバッグ機能を提供します。セッションはローカル (同じワークステーションまたは PIE) でもネットワークを介しても可能です。
いつでもライブ セッションを停止したり、記録済みデータでデバッグを継続したりできます。
デバッグ サーバーのステージ
現在、記録に使用可能なソルバのステージは次のとおりです。
- 進化の開始: ソルバ ステップの開始時にすべてのパーティクルのスナップショットを取得します。
- 統合後 パーティクルの統合の計算の実行後にすべてのパーティクルのスナップショットを取得します。
- コリジョン検出の広範囲フェーズ: コリジョン検出プロセスの広範囲フェーズの実行後に、すべての中間フェーズのスナップショットを取得します (その境界がオーバーラップするパーティクルのペアごとにオブジェクトが作成されます)。
- コリジョン検出の狭いフェーズ: コリジョン検出プロセスの狭いフェーズの実行後に、すべての中間フェーズのスナップショットを取得します (その境界がオーバーラップするパーティクルのペアごとにオブジェクトが作成されます)。
- 事前コンストレイントの解決: 使用可能なコンストレイントの解決を開始する前に、すべてのパーティクルのスナップショットを取得します。
- 事後コンストレイントの解決: コンストレイントを解決した後で、すべてのパーティクルのスナップショットを取得します。
- 進化の終了: ソルバ ステップの終了時にすべてのパーティクルのスナップショットを取得します。
物理データを調査する
パーティクル データ インスペクター

パーティクル データ インスペクター または [Details (詳細)] パネルでは、シーンで選択したパーティクルに関する情報を表示します。
指定したパーティクルに対して、インスペクターでは、ビジュアライゼーション フラグ、回転や速度などのパーティクル データ、パーティクルのダイナミクス、パーティクルの質量プロパティ設定を表示します。
コリジョン データ インスペクター

コリジョン データ インスペクター は、選択したパーティクルのデータを表示します。パーティクルが選択されると、ドロップダウンを通じてパーティクルが含まれる、すべての 中間フェーズのペア を確認できます。特定の中間フェーズのペアを選択して、それを調査してコンストレイント データを確認できます。
中間フェーズのペア は、その境界がオーバーラップするパーティクルのペアごとに作成されるオブジェクトです。これは衝突する可能性のある形状のペアのセットを作成し、ティックごとにそのペアでコリジョン検出を実行します。
接触が選択されると、すべての接触データ、およびパーティクルが属するコンストレイント データを確認できます。
シーン クエリ インスペクター

シーン クエリ インスペクター はシーン内の特定のシーン クエリの調査に役立ちます。視覚化されたクエリを選択した場合、結果を収集するために実行された各内部ステップ (SQ 訪問) を含め、インスペクターですべての関連データを確認できます。
シーン クエリをアクセラレーション構造 (AABBTree など) に対して実行して、評価する必要があるオブジェクト数を減らします。クエリを実行すると、クエリの領域に対応するアクセラレーション構造のノードが評価されます。このノードはシーン クエリ インスペクターが SQ 訪問として表示する内容です。ここで、クエリの特定のポイントで収集されたデータを確認できます。
シーン クエリ インスペクターには、記録された SQ 訪問を通じてステップに使用されるステップ タイムライン コントロールがあります。インスペクター内でステップが変更されると、ビューポートがクエリを選択したステップまで描画するように更新されます。
これは、クエリの結果 (オーバーラップなど) にオブジェクトが存在することが期待されるが、オブジェクトが検出されないケースのデバッグに便利です。各 SQ 訪問をステップ スルーすると、オブジェクトが最初の場所で評価されたかどうかを決定できます。評価された場合、無視された理由を調査できます。
一部のクエリはサブトレースを実行できます。この場合、インスペクターに、親クエリに移動するためのボタン、または可能な場合はサブクエリ データに移動するボタンが表示されます。
ジョイント コンストレイント データ インスペクター

ジョイント コンストレイント データ インスペクター は、ビューポートの選択したジョイントの調査に役立ちます。視覚化されたジョイントを選択すると、インスペクターが開き (閉じている場合)、そのフレームのジョイントのステートが表示されます。
インスペクターに、ジョイント ステート、およびそれがそのフレームの角および線形力積を受信するかどうかが表示されます。さらに、剛性、線形投影と角投影、衝撃波の伝播、テレポート距離および角度などのいくつかのジョイント設定が表示されます。
Chaos Visual Debugger の詳細については、「Chaos Visual Debugger - ユーザー ガイド」を参照してください。