UE5で映像制作を進めるに当たりはまったこととかをTip的に。
ワークフローはUE5で諸々制作したものをEXRで書き出して、DepthMapやCryptomatteを使ってAftereffectsでコンポジットという流れ。
Movie Render Queue関連
EXRで書き出すと背景が透明 or 半透明になってしまう
ディファードレンダリング > Accumulator Includes Alpha: trueでEXRで書き出したものをAftereffectsで読み込むとSkyAtmosphereなどがアルファのせいで無くなる or 見た目がおかしくなってしまう。
Aftereffects > プロジェクトパネル > フッテージを変換 > メイン > アルファ: 無視で解決。
DepthMapやAOを書き出したい
以下に MovieRenderQueue_WorldDepth・MovieRenderQueue_AmbientOcclusion など該当アセットを追加。
ディファードレンダリング > Deferred Render Data > Additional Post Process Materials
DepthMap・AO以外にも書き出せるものがあるので必要なものを適当に。
/Engine/Plugins/MovieScene/MovieRenderPipeline/Content/Materials/
アセットを表示するには エンジンのコンテンツ・プラグインコンテンツを表示 にしておきましょう。
ついでなので書き出したDepthMapがAftereffectsで真っ白なときの対処法
EXtractoRのProcessのWhite Pointを調整。Aftereffects的にはけっこう極端な数値になることがある。
ちなみにZ-Depth=R / High-Deptht=B。
レンダリング(リモート)でCryptomatteが正しく書き出されない
レンダリング(リモート)では未サポートなので レンダリング(ローカル) でレンダリング。
レンダリング パス > Object ID
bject Ids のレンダリング パスは、Unreal Engine の実験段階の機能です。これは、Unreal Editor でのみ使用可能で、シッピング ビルドでは使用できません。
ついでなのでCryptomatteの使い方(Aftereffects)
AftereffectsでEXRを読み込むとImport Optionsが開くのでOKを押すと各要素ごとにコンポジションを自動作成してくれる(正しくないところもちょこっとあるけど…)。
DepthMap使ってDoFあとがけとかAO調整とか要素ごとに色調整とか色々と出来るので必須機能かな。
EXRインポート時にImport Oputionを聞かれるので必要に応じて設定をしてOK。
そうするとコンポを自動生成し必要に応じてやEXtractoRやCryptomatteエフェクトを適用してくれる。
強制LOD0でレンダー
LODがあると切り替え時にパカパカするので映像系では必須かな?
NaniteもパカパカすることあるのでNanite:無効/LOD:0が安定。
ゲームオーバーライド > レンダリング > Use LODZero: true
編集時に上記と同等のクオリティーで編集したい場合はコンソールコマンドで該当するものを設定。
foliage.ForceLOD 0
r.forceLOD 0
r.ParticleLODBias -10
foliage.DitheredLOD 0
r.SkeletalMeshLODBias -10
画像設定 > Game Overrides
Execute Console Commandを書いたEditor Utility Blueprintをスタートアップに設定しておくと便利。
UltraDynamicSkyのVolumetricCloudがレンダー毎に違うものになる…
UltraDynamicSky > Cloud Movement > Randomize Cloud Formation On Run: false
デフォルトでtrueになってるの罠すぎる…
編集関連
Foliageを大量配置すると消える…
フォリッジの表示数の上限値を上げる。
foliage.MaxTrianglesToRender xxx (デフォルトは100000000)
※重い場合はLOD使った方が良いかもしれないけどそこは見た目で判断。
編集: LOD有効 / レンダー: LOD0でもよいかと。
デカールを対象以外に影響しないようにする
デカールは適当にペタペタ貼るのに便利なんだけど必要ないところにも影響しちゃうのでその時の対処法。
-
StaticMesh設定
アウトライナ > 該当StaticMesh選択 > 詳細 > レンダリング > 詳細設定 > Receives Decals: false
-
ランドスケープ設定
Landscape Material > マテリアル > 詳細設定 > Decal Response (DBuffer): None
※StaticMeshのようにアウトライナー > 詳細パネルでは設定出来ずマテリアルまで潜らないといけないのでちょっとわかりにくい…
Foliageで草植えたときにのっぺりしないように
グラデーションマップを使ってフォリッジをカラライズする。
マテリアルファンクションを作っておいて使いたいアセットのマテリアルのベースカラー直前に割り込ませると便利!
AOが欲しい
- SSAO
UE5になってからLumenは便利なんだけどAOが使えない。。。
で、シーンによっては従来のAOが欲しくなることがあるんだけどそういうときは以下で簡単にGI設定を変更出来る。
PostProcessVolume > グローバルイルミネーション > メソッド: Screen Space(Bata)
※LumenかSSGIかシーンによってどちらを使うか見極める必要はある。
ランタイム バーチャル テクスチャ(RVT)
StaticMeshとLandscapeの接地部分のマテリアルをブレンドしてグラデーション化することにより境界線がぼやけて画的に馴染みやすくなる。
実際にチュートリアルとか説明見た方がわかりやすいので以下のリンクを。
これもマテリアルファンクション化しておくと楽。
映像用途での画作りはゲームと違ってフレームレートよりクオリティ優先だったり、カメラに映る範囲だけ作り込めばよかったり、そもそも書き出したものをコンポジット(編集)すること前提で色々お作法が違ったり。
その辺のわからないことをググっててもなかなか答えが見つからなかったりすることも多かったりするのでこのTipsが参考にでもなればと。