2024-02-06

【ムービーレンダーキュー】影を美しく書き出す【UE5/Lumen】

UE5のLumen環境下でどうしても影がキレイに書き出せず困ったので調査。

Article Image
使用ソフトウェアバージョン備考
Unreal Engine5.3.1

影が汚い!?

UE5のムービーレンダーキューで書き出し時、どうしても影にノイズが乗ってしまうという現象に遭遇。

この記事ではこれをどのように解決したのかという点を解説する。

この件は私が仕事で検証した内容ですが、会社よりBLOG記事化の許可を頂けたこと、Epic公式のスタッフ様と直接Zoomでお話できたこと、この場を借りて感謝いたします。

恐らく完全網羅ではないので注意

UE5はライティングやシェーディングに関してとても細かい設定がさまざま存在する。

この記事はその中でも私が「効果が高い」と判断したものを掲載している。

この問題に関する設定を徹底的に掘り起こす記事ではないので注意。

Lumenを前提

この記事はLumenを使用している前提とする。

設定によっては効果がないかもしれないので今回のプロジェクト設定を掲載しておく。

設定参考

この設定でLumenをオンにしている。

この設定の他に書き出し画像サイズが4k以上になっておらずそもそも映像がキレイに書き出されないというのが初心者あるあるなので注意しよう。

4k設定

影のノイズって?

設定参考

※サムネイルは画質が悪いのでクリックして拡大してもらうとわかりやすい。

斜めに鉛筆を走らせたようなノイズが影に出ている

jpg圧縮による劣化もあるが、それ以上にハッキリとノイズが出ている。

実際に仕事で使用している映像は使えないので、こちらは私個人が制作したプロジェクトで再現したもの。

対策1:Render Warm Up Frames

ムービーレンダーキューの設定にてAnti-aliasingを入れておいてRender Warm Up Framesをオンにする。

また、下部のRender Warm Up Countに適当な数字を入れる。

この数字は100フレのようにもっと長くしたほうがよいかもしれないとのこと。

設定サンプル

なにこれ?

下部のRender Warm Up Count, Engine Warm Up Countに数値を入れておくとシミュレーション系を事前に計算してくれる。

逆にこれが入ってないと映像がスタートした時点でシミュが大きく暴れて使い物にならなくなることが多い。

つまりこの設定をいれておけば、シミュレーションが落ち着くのでキレイに動画をスタートさせることができる

いや、影をキレイにする目的じゃないんですか?

更にここにRender Warm Up Framesのチェックが入っているのが重要!

ここにチェックが入るとどうやら事前に光の反射も予備計算するようで、なんとこれだけで影のノイズが一気にキレイになる。

次がサンプル

対策前 対策後
対策前 対策後

拡大してみてもらった方が良いが、よくみるとサムネイルでも十分わかる。

ここでは特に境界線を引っ掻いたようなザラザラが取れている。

動画の場合は最初の方のフレームのみに効果

私のテスト範囲ないでは、これは単一のフレームを書き出すときには有効な処理だが...

動画で書き出す場合、結局後ろの影はワームアップありとなしで変わらなかった。

あくまで動画最初の影をキレイにする程度の効果しかないと思われる。

対策2:Sample Per Pixel

ライトそれぞれの設定にSamples Per Pixelという設定がある。

ここを上げることによって影が美しくなる。

ここの設定は8 > 16 > 32 > 64 > 128...のように倍々にするとのこと。

Sample 1, Warm Upなし Samples32, Warm Upなし
対策前 sample 32

Warm Upを入れることなく自然な影になっている。

ただ、まだノイズ感はのこる

上げすぎると重くなるそうなので注意。

個人的には32より上げても効果が薄いイメージ。

1と2を組み合わせる

では1と2を組み合わせた例

Samples32, Warm Upなし Samples32, Warm Upあり
sample 32 sample 32, warm up

ここでかなりキレイになった。

対策3:Anti-aliasing

更にムービーレンダーキューの書き出し設定にあるAnti-aliasingの二種

Spatial Sample Count, Temporal Sample Countを増やしアンチエイリアスをかけると更に影が美しくなる。

Anti-aliasing設定

1,2を組み合わせ 1,2,3を組み合わせ
sample 32, warm up 1,2,3を組み合わせ

更に一歩美しくなっているのがわかる。

設定に注意

アンチエイリアスをかけると一気にレンダー時間がかかるので注意しよう。

また、こちら2種類あるが違いは次の動画で解説してくれているのでこちらを参考にしてみてほしい。

次の動画ではTemporal Sample Countを16にしてSpatial Sample Countは1のままにするのがほとんどだとのこと。

で、どっちを使えば良い?

フレーム間の動きに対するブラーはTemporal Sample Count、1フレームごとのアンチエイリアスはSpatial Sample Countと覚えればよいのではないだろうか。

さいごに

ひとまず私が分かる範囲でサクッとできる影ノイズ対策は以上。

影のノイズのみならずライト全般に関して美しく描画する効果があるので覚えておいて損はないと思う。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)