UE5においてLumenを使用しているときは、従来のSSAO(Screen Space Ambient Occlusion)やRTAO(Ray Tracing Ambient Occlusion)は表示されません。
LumenにGIにAOの要素が含まれているため、仕様上このようになっています。
Buffer Visualization の Ambient Occlusion を選択しても、このような真っ白な画面で何も表示されません。
この記事では、UE5でSSAOやRTAOを使用する方法をご紹介します!
Lumenを使用しつつ、SSAOを使う方法
やり方は簡単で、下記の2つのCVarを変更するだけです。
r.Lumen.DiffuseIndirect.SSAO
1r.Lumen.ScreenProbeGather.ShortRangeAO 0
「r.Lumen.DiffuseIndirect.SSAO」は、LumenのGIで、SSAOを使用するかどうかの設定です。
1にすることオンになり、SSAOを使用できるようになります。
「r.Lumen.ScreenProbeGather.ShortRangeAO」は、Lumenに含まれるAO(ShortRangeAO)を使用するかどうかの設定です。
0にすることでLumenに含まれるAOを使用しない設定になります。
SSAOとLumenのAOを両方使用することはできないので、このCVarでShortRangeAOを使用しない設定に知り必要があります。
CVarの使い方がわからない方やあまりなじみがない方は、こちらの記事で詳しく紹介しているので、ご覧ください!
RTAO を使う方法
RTAO(Ray Tracing Ambient Occlusion)は、残念ながらLumenのGIと一緒に使うことができません。
(Lumenの反射は一緒に使用できる)
そのため、Lumen GIをオフにする必要があるので、RTAOの用途としては基本的に映像でハイディテールなAOの素材が欲しいときになるかと思います。
こちらもやり方は簡単です。
ポストプロセスボリュームにて
- Global Illumination – Method: None (Lumen GIがオフになる)
- Ray Tracing Ambient Occlusion – Enabled: ☑ (オン)
にすることで RTAOが表示されます。
プロジェクト設定でLumenをオフにしてもOKです。
ノイズを抑えたい場合は「Sample Per Pixel(ピクセルごとのサンプル)」の数値を上げます。
ただし、処理負荷が上がり、FPSが下がります(MRQでのレンダリングでは、レンダリング時間が多少長くなります)
ポストプロセスボリュームについては、こちらで詳しく紹介しています!
Movie Render Queueのレンダリング時にRTAOを書き出す
コンポジットでRTAOを使いたい!といったときに
Movie Render Queue(MRQ)でAOを書き出すことができますが、わざわざLumenをオン、オフして2回書き出すのは面倒です。
MRQの設定の「Console Variables」を使用することでわざわざLumenをポストプロセスでオン、オフせずに書き出すことができます。
ただ、2つのJOBでレンダリングする必要があるので、ファイルはAO以外のBeautyなどとAOの2つになります。
1度のレンダリングの実行で複数のJOBをレンダリングできるので手間は減ります。
Console Variables の設定
Console Variablesの「Console Variables」にて
r.Lumen.DiffuseIndirect.Allow: 0
r.RayTracing.AmbientOcclusion: 1
を追加します。
やっていることとしては、先ほどポストプロセスで行った設定をCVarでやっているだけです。
必要に応じて、ノイズを減らすために「r.RayTracing.AmbientOcclusion.SamplesPerPixel」を追加して、サンプル数を上げるのも良いでしょう。
ちなみにRTAOではなく、SSAOで良い場合は、前述の通り下記のCVarを使用します。
r.Lumen.DiffuseIndirect.SSAO
: 1r.Lumen.ScreenProbeGather.ShortRangeAO: 0
AOを書き出す設定
Deferred Renderingの設定の中の「Deferred Renderer Data」にて「Additional Post Process Materials」の「Index[0]」の設定を下記のように変更します。
- Enabled: ☑ (オン)
- Material: MovieRenderQueue_AmbientOcclusion
- Disable Multisample Effect: ☑
SSAO と RTAO の違い
SSAOは、スクリーンスペースのAOでリアルタイム向けなアンビエントオクリュージョンです。
画面に映っているものしか計算せず、RTAOに比べてディテール感の低いAOです。
対して、RTAOは、レイトレーシングを使用しているので、MayaやBlenderなどでのプリレンンダリングに近いアンビエントオクリュージョンを生成することができます。
SSAOと比べてディテール感があるので、コンポジットなどでディテール感出すのに使用したい場合などは、こちらが向いています。
しかし、SSAOより圧倒的に処理負荷が高くなります。
まとめ
UE5でのSSAOとRTAOの使用方法についてご紹介しました。
SSAOは、Lumenと一緒に使用することができますが、RTAOは現状一緒に使用することができません。
ただ、どちらも2つのCVarを変更するだけで表示できるので、手間なく使用することはできます。
UE5での制作の際の参考になれば幸いです!
このサイトでは、こういったゲームエンジンに関連した情報やUE5の使い方やチュートリアルなどを発信しています。
【UE5の使い方】シリーズでは、Unreal Engine5の使い方をUE4、UE5を使ったことのない方にもわかるようにUE5の基本的な使い方を解説しています。
コメント