コリジョン形状のデバッグ機能をTestビルドで実機でも確認できるようにしたい

お世話になっております。

一度、次の手順を試していただけますでしょうか。

まず、プロジェクトのTarget.csを下のように拡張し、Test ビルドでUE_ENABLE_DEBUG_DRAWINGとCHAOS_DEBUG_DRAWが有効になるように設定します。

`public class YourProjectTarget : TargetRules
{
public YourProjectTarget (TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
// 省略

// 下記を追加
bool bIsTest = Target.Configuration == UnrealTargetConfiguration.Test;
if (bIsTest)
{
GlobalDefinitions.Add(“UE_ENABLE_DEBUG_DRAWING=1”);
GlobalDefinitions.Add(“CHAOS_DEBUG_DRAW=1”);
}
}
}`これでビルドをかけていただければ(エンジンにもコンパイルがかかりますが)、TestビルドでShowFlag.Collision 1を入れたときに最低限のコリジョン形状が表示されるかと思います。ただし、エンジンコードの中にはデバッグ表示機能や、そのデバッグ表示機能に関わるプロパティ、関数類を、#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)~#endifで囲み、Testビルド時に無効になるように組んであるものがあります。下記はその一例です。

#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) for (int32 ViewIndex = 0; ViewIndex < Views.Num(); ViewIndex++) { if (VisibilityMap & (1 << ViewIndex)) { if( PhysicsAssetForDebug ) { DebugDrawPhysicsAsset(ViewIndex, Collector, ViewFamily.EngineShowFlags); }この場合、後ろに || UE_ENABLE_DEBUG_DRAWING を繋げるなどして、テストビルドでもデバッグ周りのコードが通るようにエンジンに手を入れる必要があります。ここではすべての改変箇所をご提示することはできませんが、コードを追いかけて「デバッグ表示に必要なオブジェクトを返す関数が、Testビルドだと決め打ちでnullptrを返す」といった箇所にも手を入れるなど、やや入念な作業が求められます。

ただ、スタティックメッシュのコリジョン表示であれば、上のTarget.csの改変だけで動かせるのではないかと思います。

一度、ご確認ください。

以上、よろしくお願いいたします。