##半透明の問題点
上の画像はAの方が挙動としては正しいのですが、複雑なメッシュの場合Opacityを1に近づけると描画エラーが発生します。
静止画だと分かりにくいかもしれませんが、奥にあるはずの面が手前側に描画されてしまっています。
これを回避するために一番手前側にある表面だけを描画します。
##方法
まず、すでに置いてあるオブジェクトをCtrl + C & Ctrl +Vで全く同じ位置にコピーします。
分かりやすいように片方の名前を変えておきましょう。
###片方
オブジェクトの詳細パネル>Renderingにある、
1.Render in Main Passのチェックを外す
2.Render Custom Depth Passのチェックを入れる
これでCustom Depthのみに描画されます。
こちらはDefault Materialなど不透明のマテリアルにしてください。
###もう片方
Translucentマテリアルをアサインし、以下のようにノードを組んでOpacityピンに刺します。
すでに何かの処理が刺さっている場合はMultiplyでブレンドすればOKです。
https://blueprintue.com/blueprint/vv4r5lg1/
こちらにもアップしてあります。
具体的に何をしているかというと、Custom Depthに描画された不透明のオブジェクトの深度と、微量にスケールした半透明のオブジェクトの深度を比較し、Custom Depthの方が奥にあれば半透明を表示、手前にあれば非表示にしています。
スケールする理由はそのまま比較するとZ Fightingのようなエラーが起きるためです。
##注意点
Custom Depthに描画するということは一回分多く描画負荷がかかるということになります。
処理負荷を気にする場合は過度な使用はおすすめしません。
Depth描画する方は頂点数を抑えるなどしてもいいかもしれません。
##参考リンク
こちらのフォーラムで検証されている内容を参考にしました。
https://forums.unrealengine.com/development-discussion/rendering/18285-translucent-water-material-displacement-banding-issue?45945-Translucent-Water-Material-Displacement-Banding-Issue=