PR

【UE5】Ambient Occlusion の表示、レンダリング方法

UE5

UE5においてLumenを使用しているときは、従来のSSAO(Screen Space Ambient Occlusion)やRTAO(Ray Tracing Ambient Occlusion)は表示されません

LumenにGIにAOの要素が含まれているため、仕様上このようになっています。

Buffer Visualization の Ambient Occlusion を選択しても、このような真っ白な画面で何も表示されません。

UE5でAOが表示されない

この記事では、UE5でSSAOやRTAOを使用する方法をご紹介します!

この記事は、こんな方におすすめです
  • LumenでAmbient Occlusion が表示されない
  • Ambient Occlusionを使用、出力したい
スポンサーリンク

Lumenを使用しつつ、SSAOを使う方法

SSAOの表示

やり方は簡単で、下記の2つのCVarを変更するだけです。

  • r.Lumen.DiffuseIndirect.SSAO 1
  • r.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の表示

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の「Console Variables」にて

  • r.Lumen.DiffuseIndirect.Allow: 0
  • r.RayTracing.AmbientOcclusion: 1

を追加します。

やっていることとしては、先ほどポストプロセスで行った設定をCVarでやっているだけです。

必要に応じて、ノイズを減らすために「r.RayTracing.AmbientOcclusion.SamplesPerPixel」を追加して、サンプル数を上げるのも良いでしょう。

ちなみにRTAOではなく、SSAOで良い場合は、前述の通り下記のCVarを使用します。

  • r.Lumen.DiffuseIndirect.SSAO: 1
  • r.Lumen.ScreenProbeGather.ShortRangeAO: 0

AOを書き出す設定

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を変更するだけで表示できるので、手間なく使用することはできます。

SSAOを使用する
  • r.Lumen.DiffuseIndirect.SSAO 1
  • r.Lumen.ScreenProbeGather.ShortRangeAO 0
RTAOを使用する
  • r.Lumen.DiffuseIndirect.Allow 0
  • r.RayTracing.AmbientOcclusion 1

UE5での制作の際の参考になれば幸いです!

このサイトでは、こういったゲームエンジンに関連した情報やUE5の使い方やチュートリアルなどを発信しています。
【UE5の使い方】シリーズでは、Unreal Engine5の使い方をUE4、UE5を使ったことのない方にもわかるようにUE5の基本的な使い方を解説しています。

コメント

タイトルとURLをコピーしました