世間ではUE5が登場して久しいですが、私はいまだにUE4を使ってます。
理由は、UnrealEngineは自主制作モデルのレンダリング目的でしか使ってなく、UE5に乗り換えるほどの理由が自分の中でまだ見つかっていないからです。
さて、私が自分で制作したモデルをUE4でレンダリングしていると、エミッシブの光の反射が汚くなってしまう現象が発生しました。
原因が分かり何とか解決したので、解決策について紹介していきます。
問題の現象
emissive colorを適用したビームソードを持たせたロボットのレンダリングをUE4で行っている途中、
上の写真のように、ビームソードの照り返しの光らしきものがロボットの装甲に写り、汚いノイズとなってしまいました。
誰が見ても気になるレベルなので、これではレンダリングの使い物になりません。
エミッシブの光の出力が大きすぎたせいか?と思い、emissive colorの出力を下げてみたところ、
確かに光のノイズは減りましたが、ビームの光が小さすぎてビームソードっぽさが失われてしまいました。
ビームの明るさが犠牲になってしまうのはレンダリングの制限としてはあまりにも不便すぎるので、根本的な部分の解決が必要だと感じ、解決のためいろいろ試してみました。
解決方法
結論から言うと、ビーム部分のマテリアルにOpacityを適用して透明にすれば解決しました。
マテリアルのリザルトノードをクリックし、
Blend ModeをTranslucentに変更します。
Opacityの項目にScalarParameterのノードをつなげます。
ScalarParameterの値は0.1にしました。
この設定でApplyし、ビューポート画面に戻ってみると、
光のノイズが消えました!
ビームの明るさも確保されたうえで問題が解決しました。
さいごに
ノイズが出てしまう原因は分かりませんでしたが、とりあえず解決。
Opacityを使いたくない状況になってしまったらどうするんだという話ですが、私がその状況に遭遇したときにまた考えさせてください(ごめんなさい)。