ジオメトリ コレクションのデバッグ描画

ジオメトリ コレクションのデバッグ描画を使用して Chaos 剛体プロパティを公開する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

使用するビルドによっては、Chaos プラグインを有効にする必要がありません。

  • Unreal Engine 4.26 以前の標準ビルドを使用する場合、Chaos Destruction ツールを有効にして、ソースビルドを使ってコンパイルする必要があります。

  • UE_4.26Chaos 以降のビルドを使用する場合は、Chaos はデフォルトで有効になっているので、このセクションはスキップしてください。 詳細は、「 Chaos Destruction の概要 」を参照してください。

ジオメトリ コレクションを操作するときに、特定のジオメトリ コレクション (またはジオメトリ コレクションのセット) の情報を確認すると役立つ場合があります。 Geometry Collection Debug Draw Actor (ジオメトリ コレクション デバッグ描画アクタ) は、 [Details (詳細)] パネルのプロパティやコンソール コマンドを使用して階層、クラスタリング、剛体に関する情報など、表示する情報を切り替える手段を提供します。

エディタからデバッグする

レベルにデバッグするジオメトリ コレクションがある場合、 Play in Editor (プレイ イン エディタ) セッション中に World Outliner (ワールド アウトライナー) を使用して GeometryCollectionDebugDrawActor を見つけて選択します。

DebugDrawActor_Outliner.png

これにより、現在のレベル内のジオメトリ コレクションで利用可能ななさまざまな種類のビジュアリゼーション モードを制御する [Debug Draw (デバッグ描画)] プロパティ パネルが表示されます。

剛体 ID を表示する

剛体 ID を表示することからデバッグを開始すると良いです。アクタの [Debug Draw (デバッグ描画)] カテゴリーと [Rigid Body (剛体)] サブカテゴリーで [Show Rigid Body Id (剛体 ID を表示)] チェックボックスを有効にします。

DebugDrawActor_RigidBodyIDs.png

[Selected Rigid Body (選択した剛体)] プロパティを使用すると、すべての剛体 (-1) を表示したり、視覚化する剛体の ID を入力できます。

DebugDrawActor_SelectedBody.png

上の画像では、 ID フィールドに 95 と入力しています。これによりシーンの両方のオブジェクトではなく、左側の柱のみを視覚化できます。

シーン内のすべてのジオメトリ コレクションで視覚化を有効にすると、小さなテスト シナリオでは便利でも、大きなレベルではフレーム レートに深刻な影響を与える可能性があります。

ID を [Selected Rigid Body (選択した剛体)] フィールドに入力することに加え、スポイト ツールを使用してシーンから物体を選択できます。

DebugDrawActor_EyeDropper.png

また、 [Debug Draw Clustering (デバッグ描画のクラスタリング)] オプションを有効にして、クラスタ化されたジオメトリ コレクションの非アクティブな子を視覚化すると、より多くの情報を取得できます。

DebugDrawActor_DrawClustering.png

クラスタ間を移動する

[Selected Rigid Body (選択した剛体)] オプションで子/親間を移動したり、異なるクラスタ間を循環できます。

上のビデオでは [Debug Draw Hierarchy (デバッグ描画の階層)] [Show Faces (面の表示)] を有効にして、各クラスタの面を繰り返し表示できます。

視覚化オプション

[Debug Draw Whole Collection (コレクション全体のデバッグ描画)] プロパティを使用して、コレクション全体を視覚化するか選択できます。これにより、選択した剛体 ID と同じジオメトリ コレクションに属するすべての剛体のデバッグ情報が表示されます。

ジオメトリ コレクション全体を有効にすると物体を視覚化するのが困難になり、コレクションのサイズによってはフレームレートに悪影響を与える可能性があります。

また、ジオメトリ情報をトップダウン方式で視覚化することもできます (デフォルトでは、ジオメトリ コレクションのグラフィック表現は最下層からです)。 フォーカスがトップ ノードのジオメトリを探索する場合、 [Debug Draw Hierarchy (デバッグ描画の階層)] オプションにより最初に親を視覚化する機能が有効になります。このオプションを [Debug Draw Clustering (デバッグ描画のクラスタリング)] オプションと組み合わせて、親と子を両方表示することもできます。

DebugDrawActor_TopDownGeo.png

[Debug Draw Hierarchy (デバッグ描画の階層)] オプションは、ジオメトリ コレクション コンポーネント プロパティの視覚化にのみ影響します。これは剛体の情報が既に親から提示されているためです。

ジオメトリを非表示にする

デフォルトでは、選択した剛体 ID に関連付けられているジオメトリは、コリジョン ボリュームが表示されている場合にのみ非表示になります。ただし Hide Geometry (ジオメトリの非表示) プロパティには他にもいくつかオプションがあります。

オプション

説明

Hide None (すべて表示)

どのジオメトリも非表示にしません。

Hide Collision (コリジョンを非表示)

コリジョン ボリュームの視覚化に対して選択した剛体に関連付けられたジオメトリを非表示にします (デフォルトのオプション)。

Hide Selected (選択したものを非表示)

選択した剛体に関連付けられているジオメトリを非表示にします。

Hide Whole Collection (コレクション全体を非表示)

3 コレクション全体を非表示、選択した剛体に関連付けられたジオメトリ コレクション全体を非表示にします。

Hide All (すべて非表示)

ジオメトリ コレクションをすべて非表示にします。

選択した 剛体 ID に -1 を使用する場合、最後 4 つのオプションは同等です (ジオメトリ コレクションがすべて非表示になります)。

視覚化するプロパティを切り替える

[Details (詳細)] パネルで (またはコンソールから)、視覚化する対象のプロパティを切り替えることができます。 複数のプロパティを組み合わせると、異なる結果が生成されます。たとえば、下の例では [Show Rigid Body Collision (剛体の衝突を表示)] [Show Rigid Body Id (剛体 ID を表示)] [Hide Geometry (ジオメトリを非表示)] とともに [Hide Selected (選択を非表示)] オプションで有効にします。

DebugDrawActor_MultipleOptions.png

レベル セット タイプのコリジョン ボリュームを表示する場合、たとえ [Debug Draw Whole Collection (コレクション全体のデバッグ描画)] オプションが有効になっていても、同時に 1 つのボリュームしか表示できません。

複数のカテゴリにグループ化される異なるカテゴリが複数あります。複数のカテゴリにグループ化される異なるカテゴリが複数あります: Rigid Body (剛体) Rigid Clustering (剛体クラスタリング) Geometry Collection Component (ジオメトリ コレクション コンポーネント) 。 これらのカテゴリは、選択した剛体や選択した剛体を含むジオメトリ コレクション全体に適用されます。

GeometryCollectionDebugDraw_Properties.png

ほとんどのプロパティは一目瞭然です。たとえば Show Vertices (頂点を表示) は剛体の頂点の表示をオンまたはオフに切り替え、 Show Bounding Box (バウンディング ボックスを表示) は剛体のバウンディング ボックスの表示をオンまたはオフに切り替えます。 いくつかの例外を以下に引用します。

  • Show Rigid Body Velocity (剛体速度を表示) - 線形速度 (矢印の長さ) と角速度 (円の半径) の両方を表示します。 GeometryCollectionDebugDraw_Velocity.png

  • Show Rigid Body Force (剛体の力を表示) - 力 (矢印) とトルク (円) の両方を表示します。

  • Show Rigid Body Infos (剛体の情報を表示) - 選択した剛体の完全なオンスクリーン テキスト デバッグ情報を表示します。 DebugDrawActor_ShowInfo.png

  • Show Connectivity Edges (接続エッジを表示) - クラスタ化された兄弟剛体への論理接続をそれぞれ示します。 DebugDrawActor_ClusterConnectivity.png

    子ノードの情報を視覚化するために Debug Draw Clustering (デバッグ描画のクラスタリング) オプションが必要です。

  • Show Single Face (片面を表示) および Single Face Index (片面インデックス) - 選択した面を表示して、ジオメトリのデバッグに役立てます。

    この視覚化は、特定のジオメトリ コレクションが選択された場合にのみ利用できます ( Selected Rigid Body (選択した剛体) は -1 に設定できません)。

視覚化の設定

[Settings (設定)] カテゴリでデバッグ視覚化設定を切り替えることができます。

GeometryCollectionDebugDraw_Settings.png

描画色やトランスフォーム スケール プロパティの変更などを、ここでカスタマイズできます。これは背景色で視覚化が見づらい場合に役立ちます。 これらのプロパティのほとんどは一目瞭然であり、基本的なデバッグ描画要素の描画に影響します。 また、 [Use Active Visualization (アクティブなビジュアリゼーションを使用)] を有効にして、ジオメトリ コレクションの各クラスターレベルで視覚化を変更可能にします。デバッグ ラインとテキストは暗くなりますが、クラスタ レベルが上がると変換軸は小さくなります。

DebugDrawActor_ActiveVisualization.png

コンソールからデバッグする

次の手順に従って、コンソールから Geometry Collection Debug Draw Actor (ジオメトリ コレクションのデバッグ描画アクタ) プロパティを直接すべて変更することもできます。

デバッグ描画コマンドのリスト

ジオメトリ コレクションのデバッグ描画 コマンドはすべて p.gc 接頭辞の下にあります。

GeometryCollectionDebugDraw_ConsoleCommandList.png

各コマンドの説明には、コマンドの末尾に質問マーク ? を追加してアクセスできます。

GeometryCollectionDebugDraw_ConsoleCommandInfo.png

各コマンドはデバッグ描画アクタのプロパティと一致するため、プロパティの効果に関する追加の説明については「

[Debug From the Editor (エディターからデバッグする)](InteractiveExperiences/Physics/ChaosDestruction\GeometryCollectionDebug#debugfromtheeditor)
」セクションも参照してください。

剛体 ID を表示する

使用するコマンド:

p.gc.ShowRigidBodyIds 1

デバッグ描画する剛体を選択する

使用するコマンド:

p.gc.SelectedRigidBodyId X

上記のコマンドでは、X を情報を視覚化する剛体の ID に置き換えます。

コレクション全体のビジュアリゼーションを有効/無効にする

使用するコマンド:

p.gc.DebugDrawWholeCollection 1

これにより、選択した剛体 ID と同じジオメトリ コレクションに属するすべての剛体のデバッグ情報が表示されます。

ジオメトリを非表示にする

デフォルトでは、選択した剛体 ID に関連付けられたジオメトリは、コリジョン ボリュームが表示されている場合にのみ非表示になります。次のコマンドを使用して別のオプションを選択します。

p.gc.HideGeometry [0|1|2|3|4|]
0 すべて表示、どのジオメトリも非表示にしない。
1 コリジョンで非表示、コリジョン ボリュームの視覚化に選択した剛体に関連付けられたジオメトリを非表示にします (デフォルト)。
2 選択したものを非表示、選択した剛体に関連付けられたジオメトリを非表示にします。
3 コレクション全体を非表示、選択した剛体に関連付けられたジオメトリ コレクション全体を非表示にします。
4 すべて非表示、ジオメトリ コレクションをすべて非表示にします。

選択した 剛体 ID に -1 を使用する場合、最後 4 つのオプションは同等です (ジオメトリ コレクションがすべて非表示になります)。

デバッグ描画プロパティを有効化/無効化/クエリする

次のコマンドもコンソールから使用できます:

コマンド

説明

p.gc.DebugDrawHierarchy [0|1]

選択した剛体 ID (または何も選択されていない場合はルート) から開始して、リーフ ノードの代わりに階層の上からデバッグの視覚化を表示します。デフォルト = 0。

p.gc.DebugDrawClustering [0|1]

現在選択している剛体 ID の、クラスタ化された子のデバッグ視覚化を表示します。デフォルト = 0。

p.gc.ShowRigidBodyCollision [0|1]

選択した剛体のコリジョン ボリュームを表示します。デフォルト = 1。

p.gc.CollisionAtOrigin [0|1]

ローカル空間での、原点のコリジョン ボリュームを表示します。デフォルト = 0。

p.gc.ShowRigidBodyTransform [0|1]

選択した剛体のトランスフォームを表示します。デフォルト = 1。

p.gc.ShowRigidBodyVelocity [0|1]

選択した剛体の線形速度および角速度を表示します。デフォルト = 0。

p.gc.ShowRigidBodyForce [0|1]

選択した剛体に適用される力とトルクを表示します。デフォルト = 0。

p.gc.ShowRigidBodyInfo [0|1]

選択した剛体の情報を表示します。デフォルト = 0。

p.gc.ShowConnectivityEdges [0|1]

選択した剛体のクラスタリング接続エッジを表示します。デフォルト = 0。

p.gc.ShowTransformIndex [0|1]

選択した剛体と一致するジオメトリ コレクションのトランスフォーム インデックスを表示します。デフォルト = 0。

p.gc.ShowLevel [0|1]

選択した剛体と一致するジオメトリ コレクションの階層レベルを表示します。デフォルト = 0。

p.gc.ShowTransform [0|1]

選択した剛体と一致するジオメトリ コレクションのトランスフォームを表示します。デフォルト = 0。

p.gc.ShowBoundingBox [0|1]

選択した剛体と一致するジオメトリ コレクションのバウンディング ボックスを表示します。デフォルト = 0。

p.gc.ShowFace [0|1]

選択した剛体と一致するジオメトリ コレクションの面を表示します。デフォルト = 0。

p.gc.ShowFaceIndex [0|1]

選択した剛体と一致するジオメトリ コレクションの面インデックスを表示します。デフォルト = 0。

p.gc.ShowFaceNormal [0|1]

選択した剛体と一致するジオメトリ コレクションの面の法線を表示します。デフォルト = 0。

p.gc.ShowVertex [0|1]

選択した剛体と一致するジオメトリ コレクションの頂点を表示します。デフォルト = 0。

p.gc.ShowVertexIndex [0|1]

選択した剛体と一致するジオメトリ コレクションの頂点インデックスを表示します。デフォルト = 0。

p.gc.ShowVertexNormal [0|1]

選択した剛体と一致するジオメトリ コレクションの頂点の法線を表示します。デフォルト = 0。

剛体のコリジョン

剛体のコリジョンを表示するには、次のコマンドを使用できます。

有効化:

p.gc.ShowRigidBodyCollision 1

無効化:

p.gc.ShowRigidBodyCollision 0

クエリ:

p.gc.ShowRigidBodyCollision

視覚化の設定を変更する

デバッグ情報の描画方法をカスタマイズするには、次のコマンドも使用できます。

コマンド

説明

p.gc.PointThickness [float]

ポイントの密集度。デフォルト = 6。

p.gc.LineThickness [float]

ラインの密集度。デフォルト = 1。

p.gc.TextShadow [0|1]

インデックスの下の読みやすくするテキストの影。デフォルト = 1。

p.gc.TextScale [float]

テキストのスケール。デフォルト = 1。

p.gc.NormalScale [float]

通常サイズ。デフォルト = 10。

p.gc.TransformScale [float]

トランスフォーム サイズ。デフォルト = 20。

p.gc.ArrowScale [float]

法線の矢印サイズ。デフォルト = 2.5。

ポストプロセスの効果

デバッグ描画ラインにアーティファクトがある場合、ポスト プロセスがデバッグ描画ラインのレンダリング方法に影響している可能性があります。

ラインのポスト プロセスを無効化

コンソール コマンドを使用して、ポスト プロセスを無効に切り替えることができます:

ShowFlag.PostProcessing 0

ポスト プロセスが有効な、前の状態:

GeometryCollectionDebugDraw_PostprocessingOn.png

ポスト プロセスが無効になった、後の状態:

GeometryCollectionDebugDraw_PostprocessingOff.png

ポスト プロセスを無効に切り替えると、LevelSet コリジョン ボリュームがレンダリングされなくなります (次のセクションを参照)。

LevelSet レンダリングのポスト プロセスを有効にする

デバッグ描画を使用して LevelSet を視覚化する前に、ポスト プロセスが有効なことを確認する必要があります。無効の場合は Ray March マテリアルがレンダリングされません。

ShowFlag.PostProcessing 2

ポスト プロセスが無効の前の状態、LevelSet がレンダリングされません:

GeometryCollectionDebugDraw_LevelSetPostprocessingOff.png

ポスト プロセスが有効になった後の状態、LevelSet が期待通り描画されます:

GeometryCollectionDebugDraw_LevelSetPostprocessingOn.png

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる