添付画像の緑のものの中に茶色のものがあり、緑色の範囲は茶色が見えるはずがないのに、茶色が手前に表示され見えてしまいます。
この現象の原因が何なのかわかりません。
緑色のものがある範囲は、茶色のものが中に入っているので見えてしまうとおかしいのですが、なぜだか見えてしまいます。
緑色のものが透けているのか、茶色のものが手前に表示されているのか・・・
茶色オブジェクトを選択し、レンダリングの中のTranslucency Sort Priorityの値を緑色が0なので-1にしてみましたが、表示順番は確かに変わりましたが、
例えば画面右上のビューだと、一番手前に茶色のものが表示されていましたが、緑色が表示され茶色のものが反対方向へ移動したようで、緑色のものの中に茶色のもものが入り込んでいるという表現になりませんでした。
茶色、緑色それぞれのマテリアルは、オパシティにマテリアルコレクションのパラメターを接続し、
シーケンサーにて、完全透明から徐々にオブジェクトが表示されていき、最後には完全表示(透過が全くなし)に変わるようなものをつくろうとしています。
ですので、マテリアルにマテリアルコレクションのパラメーターを作成し、オパシティに接続し、シーケンサーで制御するように作成しています。
残念ながら、仕様です
UnrealEngineでは、Translucentに設定されたMaterialは深度の情報を持ちません
つまりそれは、ポリゴン単位、ピクセル単位でどちらが手前にあるかを判別できない、という意味になります
特に、Translucent同士の重なりは、どちらも深度情報を持たないため、どちらが手前にあるのかが全く判別できません
なので「明らかに片方が奥側にあると断定できる場合」以外、例えば今回のような「座標的には奥側に存在するが、Mesh(Bounds)の一部が手前にあるような状態になっている」場合には、前後関係が意図通りにならない場合があります
そのために、SortPriorityが存在し、SortPriorityで前後関係の優先度を調整する、というワークフローになっています
「Translucentのオブジェクトはオブジェクト単位で描画されるもの」と捉えるのが一番理解しやすいでしょう
仕様ということなのですね・・・
教えていただきましてありがとうございます。
Translucency Sort Priorityにて値を調整しても見た目が思わしくない場合ですが、
下記の目的を達成するには、他に方法はありませんでしょうか?
先に添付していた画像の緑のオブジェクトと茶色のオブジェクトのセットが横に10セット並んでいます。1セット目から順にオブジェクトが表示されていくものをシーケンサーで動画にしたいというものです。
詳細としては、
何も表示されていない状態(0フレーム) → 0フレームから60フレームで1セット目の緑のオブジェクトが徐々に表示され60フレームで完全に表示される → 60フレームから120フレームで1セット目の茶色のオブジェクトが徐々に表示され、120フレームで完全に表示される →
120フレームから180フレームで2セット目の緑のオブジェクトが徐々に表示され180フレームで完全に表示される → 180フレームから240フレームで2セット目の茶色のオブジェクトが徐々に表示され、240フレームで完全に表示される → 240フレームから300フレームで3セット目の茶色の・・・・
というように1セット目から10セット目までオブジェクトが徐々表示されていくというものを、シーケンサーにて作成し動画として書き出したい
というものです。
下記試してみましたが、徐々に表示ということができませんでした。
・シーケンサーでの可視性の追加でチェックONOFF
・シーケンサーでのマテリアルスイッチャー
という経緯から、今回のマテリアルを透明から徐徐に表示させていくことで、オブジェクトが順番に表示されていくというものを再現できるかと思ってたやっていたところです。
何か他に方法がありましたら、ご教示いただけますでしょうか?
どうぞ宜しくお願いいたします。
Translucent同士のオブジェクトの交差を表現することは現状不可能です
どうしても交差が必要なのであれば、MaskedとDitherTemporalAAによる疑似半透過を検討してください
必要ならそのようにさせていただきます。