DrawDebugLine/DrawDebugPointはFColorを入力に持っており、FColor自体にはAlpha(透明度)が用意されているが、DrawDebugの描画として半透明は対応していますか?
もし対応していない場合、代用としてどのようなものがございますでしょうか?
お手数をおかけしますが、よろしくお願いいたします
[Attachment Removed]
DrawDebugLine/DrawDebugPointはFColorを入力に持っており、FColor自体にはAlpha(透明度)が用意されているが、DrawDebugの描画として半透明は対応していますか?
もし対応していない場合、代用としてどのようなものがございますでしょうか?
お手数をおかけしますが、よろしくお願いいたします
[Attachment Removed]
お世話になっております。
本件確認させて頂いたところ、DrawDebugLineに関してはデフォルト不透明として描画を行うようにエンジン内実装が行われておりますが、Thicknessが設定されている場合は半透明描画が行えるバッチとして作成されるため、Thicknessに0を超える値を設定しColorにAlpha値を設定することで半透明対応が可能です。
DrawDebugPointに関しては上記方法は使えないため、DrawDebugLineのStartとEndを同じ値に設定しThicknessで大きさを設定することでDebugPointと若干挙動が異なる部分はありますが疑似的に実現可能の見込みです。
※その他の方法としましては、Material Billboard Componentに半透明マテリアルを設定して表示するといった方法が挙げられます。
お手数おかけしますが、上記手法をお試しいただけますと幸いです。
よろしくお願いいたします。
[Attachment Removed]
ご連絡ありがとうございます。
こちら別途検討したいと思います。
もし再度検討し、質問がありましたら別途スレッドを立てさせていただければと思います。
[Attachment Removed]
ご回答いただきありがとうございます。
DrawDebugLineに関して以下のコードで実行してみたところ、添付させて頂いてた写真のように透明度設定がされていないように思います。
こちらコードおよび設定に不備がありますでしょうか?
お手数をおかけしますが、よろしくお願いいたします
実行環境
Debug Editor/Develop Editor, Editor/PIE
UKismetSystemLibrary::FlushPersistentDebugLines(World);
FColor color = FColor::Yellow;
color.A = 128;
DrawDebugLine(World, FVector(0, 0, 0), FVector(3000, 3000, 0), color, true, -1.f, 0, 10);
[Attachment Removed]
大変失礼いたしました。
今回ご紹介させていただいた半透明対応はCL36554310としてUE5.6より導入されていたものとなっておりました。
UE5.3で実現したい場合は独自のコンポーネント、SceneProxyを作成し、
FPrimitiveDrawInterface(PDI)からDrawTranslucentLine()を直接呼び出す形となってしまいそうです。
※実装の際にはエンジンのBoxComponent.cppのGetDynamicMeshElements()関数がPDIを取得して描画を行っていますので参考になりそうです。
\Engine\Source\Runtime\Engine\Private\Components\BoxComponent.cpp
お手数おかけしますが、よろしくお願いいたします。
[Attachment Removed]
ご確認ありがとうございます。
本件はクローズとさせていただきますが、また何かございましたらお気軽にご相談頂ければと思います。
よろしくお願いいたします。
[Attachment Removed]