異常な物理動作の特定に役立つように、Chaos Visual Debugger (CVD) には、ランタイム時には表示されないアプリケーションの各要素を可視化するデバッグ描画ツールが用意されています。
データフラグを切り替えることで、ビューポートに表示されるデバッグ描画ツールを制御できます。 データフラグは、次のカテゴリーに分類されます:
重心など、特定のフラグは、CVD にパフォーマンスに影響を及ぼすことがあります。 デバッグ描画の上限に達すると、ビューポートに次の警告が表示されます。
デバッグ行の描画の上限に到達しました! 選択するデバッグ描画カテゴリーを少なくするか、カメラの焦点を狭い領域に合わせてください。
コリジョン データ
視覚化されたコリジョン データは、コリジョンが予想外に動作している領域を特定する際に役立ちます。 たとえば、2 つのオブジェクトが互いに交差し、予期したとおりに衝突するのではなく、交差するなどが挙げられます。
コリジョン データを有効にするには、次の手順を実行します:
ビューポート ツールバーで、「表示 > コリジョン データのフラグ > 描画を有効化」をクリックします。 このオプションを使用すると、データフラグのリストが開きます。
データフラグのリストから選択し、オンとオフを切り替えます。
ビューポートでのデータの描画方法をカスタマイズするには、「コリジョン データのビジュアライゼーション設定」をクリックします。
ビジュアライゼーション設定設定には、次のオプションがあります:
デバッグテキストを表示する:ビューポートデバッグテキスト (存在する場合) のオン/オフを切り替えます。
深度優先度:ワールド空間または前景にデータを描画します (常に、他のシーンコンポーネントの前面になります)。
スケールと半径のオプション:デバッグ描画要素のサイズを制御して、ビューポートで見えやすくします。
ほとんどのデータフラグには、同様の切り替え可能な機能を含むビジュアライゼーション設定が含まれています。
シーン クエリ
視覚化されたシーン クエリ (ライン トレース、スイープ、オーバーラップ) は、ランタイム時にクエリを実行したものの、クエリで予期していたオブジェクトが見つからなかった場合のデバッグに役立ちます。
シーンクエリ データを有効にするには、次の手順を実行します:
ビューポート ツールバーで、「表示 > シーンクエリデータのフラグ > 描画を有効化」をクリックします。 このオプションを使用すると、データフラグのリストが開きます。
データフラグのリストから選択し、オンとオフを切り替えます。
ビューポートでのデータの描画方法をカスタマイズするには、「シーンクエリのビジュアライゼーション設定」をクリックします。
パーティクル データ
視覚化されたパーティクル データは、力を適用した後にパーティクルが予想よりも速く移動するなど、異常なパーティクル動作を特定する際に役立ちます。
パーティクル データを有効にするには、次の手順を実行します:
ビューポート ツールバーで、「表示 > パーティクル データ フラグ > 描画を有効化」をクリックします。 このオプションを使用すると、データフラグのリストが開きます。
データフラグのリストから選択し、オンとオフを切り替えます。
ビューポートでのデータの描画方法をカスタマイズするには、「パーティクル データのビジュアライゼーション設定」をクリックします。
CVD は物理スレッドのパーティクル データのみをレコーディングおよび視覚化します。ゲームスレッドのパーティクル データは含まれません。 ゲームスレッドのパーティクル データが視覚化されません。
ジオメトリ
ほとんどのパーティクルは、単純なコリジョン ジオメトリと複雑なコリジョン ジオメトリを持ちますが、コリジョン検出に使用されるのは 1 つだけです。
単純なジオメトリと複雑なジオメトリ、およびその他のジオメトリビジュアライゼーションフラグのオプションは、ビューポートツールバーの「表示 > ジオメトリフラグ」メニューにあります。
クエリのみのジオメトリは、半透明のマテリアルで可視化されます。 T キーを押して半透明マテリアルをクリック (または、ハンバーガーメニューの「透過処理選択を有効にする」をクリックすると、半透明の選択の有効/無効を切り替えることができます。
パーティクルの色付け
描画の可視性を高めるには、次のモードを使用してパーティクルに色付けすることを選択できます:
無効:デフォルトのグレーでパーティクルを描画します。
状態:シミュレーションの物理ボディの状態 (動的、スリープ、キネマティック、静的) に基づいて色付けします。
形状タイプ:コリジョン ジオメトリ タイプ (シンプルな形状、凸型、高さフィールド、三角形メッシュ) に基づいて色付けします。
クライアントサーバー:クライアントまたはサーバーがスポーンしたパーティクルに基づいて色付けします。
状態とデフォルトのグレー
モードを変更して色をカスタマイズするには、次の手順を実行します:
ビューポート ツールバーで、「表示 > パーティクルの色付け」の順にクリックします。
カラーモードのドロップダウンで、パーティクルカラーモードのドロップダウンをクリックして、使用するモードを選択します。
モードごとの色のドロップダウンメニューをクリックして色をカスタマイズします。 次に、カラータイルをクリックして、コンテキストカラー ピッカーを開きます。
次の表は、コンテキストに応じたカラー ピッカーのユーザー インターフェース (UI) を示しています。
| 番号 | 説明 |
|---|---|
1 | カラーホイール (表示されている場合はカラースペクトル) |
2 | 現在の色と以前に選択した色を表示します。 |
3 | sRGB プレビューを切り替えます。 |
4 | カラーホイールとカラースペクトルを切り替えます。 |
5 | 配色の表示/非表示を切り替えます。 |
6 | スポイトツール。 |
7 | RBG/HSV のスライダー。 |
8 | アルファスライダー。 |
9 | 現在のカラーの 16 進数コードを表示します。 |
10 | 配色:Adobe Photoshop や他のデザインプログラムでの色見本と同様に機能します。 |
ジョイント コンストレイント
視覚化されたジョイント コンストレイントは、ジョイントのねじれなど、ラグドールの望ましくない動作をデバッグする際に役立ちます。 CVD では、フレームごとにジョイント コンストレイント データを個別のデータとしてレコーディングします。 これにより、現在、ゲームプレイフレームにわたって選択を維持することはできません。
ジョイント コンストレイント データを有効にするには、次の手順に従います:
ビューポート ツールバーで、「表示 > ジョイント コンストレイント データ フラグ > 描画を有効化」をクリックします。 このオプションを使用すると、データフラグのリストが開きます。
データフラグのリストから選択し、オンとオフを切り替えます。
ビューポートでのデータの描画方法をカスタマイズするには、「ジョイントコンストレイントのビジュアライゼーション設定」をクリックします。
キャラクター グラウンド コンストレイント
CVD は、Mover 2.0 という Unreal Engine のキャラクター移動システムで使用されるキャラクター グラウンド コンストレイントの状態をレコーディングすることができます。 このフラグを使用すると、上方に浮かんでいるキャラクターや、地面を通過してクリッピングしているキャラクターなど、異常な動作を特定およびデバッグできます。
キャラクターのグラウンド コンストレイント データを有効にするには、次の手順に従います:
ビューポートツールバーで、「表示 > キャラクター グラウンド コンストレイント データのフラグ > 描画を有効化」をクリックします。 このオプションを使用すると、データフラグのリストが開きます。
データフラグのリストから選択し、オンとオフを切り替えます。
「キャラクター グラウンド コンストレイントのビジュアライゼーション設定」をクリックすると、ビューポートでのデータの描画方法をカスタマイズできます。
汎用デバッグ描画データ
次の C++ マクロおよびブループリントノードは、デバッグ描画形状を CVD に直接レコーディングします。 デバッグ描画形状は、物理計算のデバッグ時にコンテキストを提供することができます。
たとえば、空間内の 2 つのポイントを使用して物理本体に適用される力を計算した場合、CVD では力が適用される前後の本体のみが表示されます。 問題が発生した場合、汎用デバッグ描画マクロ (またはブループリントノード) を使用して、2 つのポイントと力をフレームごとに視覚化することができます。 このワークフローは、力の計算方法に関するコンテキストを提供し、修正するのに役立ちます。
C++ マクロ
描画する必要のある形状に応じて、各マクロには独自のパラメータセットがあります。ただし、各マクロで使用される以下のオプションパラメータは除きます。
| マクロ | パラメータ | 説明 |
|---|---|---|
TraceDebugDrawBox | InBox | レコーディングする形状。 |
すべてのマクロ | タグ | CVD のビューポートでテキストタグとして描画されるフィルタリング、検索、およびデバッグのタグとして使用される FName。 |
すべてのマクロ | Color | CVD でデバッグ描画されるときにこの形状に適用する色です。 |
すべてのマクロ | SolverID | この形状が関連付けられるべきソルバの ID。 ID が提供されない場合、この形状は現在のゲームの一部としてデータバケットに追加されます。 |
TraceDebugDrawLine、TraceDebugDrawVector | InStartLocation | ラインの開始点。 |
TraceDebugDrawLine | InEndLocation | ラインの終点。 |
TraceDebugDrawVector | InVector | レコーディングするベクター。 |
TraceDebugDrawSphere | Center (中央) | 球体の原点。 |
TraceDebugDrawSphere | 半径 | 球の半径。 |
すべてのマクロ | オーナー | このデバッグ描画形状が関係する任意の UObject。 これは、形状がサーバーソルバとクライアントソルバのどちらでレコーディングされたかを把握するために内部で使用されます。 |
ブループリント ノード
次の汎用デバッグ描画マクロは、ブループリントのイベントグラフの関数ノードとして実装することもできます。
CVD レコーディングデバッグ描画球体
CVD レコーディングデバッグ描画ボックス
CVD レコーディングデバッグ描画ライン
各ノードの詳細については、「Unreal Engine のブループリント API リファレンス」の「Chaos Visual Debugger」セクションを参照してください。
汎用デバッグ描画データを有効化
汎用デバッグ描画データを有効にするには、次の手順を実行します。
ビューポート ツールバーで、「表示 > 汎用デバッグ描画データのフラグ > 描画を有効化」をクリックします。 このオプションを使用すると、データフラグのリストが開きます。
データフラグのリストから選択し、オンとオフを切り替えます。
ビューポートでのデータの描画方法をカスタマイズするには、「汎用デバッグ描画データのビジュアライゼーション設定」をクリックします。
アクセラレーション構造
CVD は、シーン クエリ システムで使用されるアクセラレーション構造をレコーディングおよび視覚化することができます。アクセラレーション構造は、現在 AABB (軸に沿ったバウンディング ボックス) ツリーです。 AABB ツリーは、オブジェクト間のオーバーラップの可能性を判断するために使用できるバウンディング ボリューム階層です。
CVD では、AABB ツリー ビジュアリゼーションを使用して、ツリーの構成と、各オブジェクトがツリーに追加されたときのバウンドを確認できます。
このビジュアライゼーションは、シーンクエリでヒットするはずのオブジェクトがヒットしていない場合や、物理エンジンで評価されていない場合に役立ちます。 CVD で AABB ツリービジュアライゼーションを使用すると、オブジェクトのバウンドを検査し、バウンドが視覚的にオブジェクトを包含できなかったり、ツリー内のバウンドが正しくないなどのエラーの原因であるかどうかを判断できます。
描画するアクセラレーション構造体データフラグをカスタマイズするには、次の手順に従います:
ビューポートで、「表示 > アクセラレーション構造データのフラグ」をクリックし、目的のデータフラグを選択します。
ビューポートでのデータの描画方法をカスタマイズするには、「アクセラレーション構造のビジュアライゼーション設定」をクリックします。
共通表示フラグ
共通表示フラグメニューには、CVD での可視性をサポートするエンジン自体から派生したフラグが含まれています。
有効なフラグをカスタマイズするには、ビューポート ツールバーで、「表示 > 共通表示フラグ」をクリックします。
次の内容
データ インスペクター
Chaos Visual Debugger のデータ インスペクターを理解する。
Chaos Visual Debugger でデータをキャプチャする
Chaos Visual Debugger でレコーディングをキャプチャして再生します。