【講演メモ】UNREAL FEST EXTREME 2022 SUMMER - 「アイドルマスター スターリットシーズン」におけるグラフィックス実装事例と最適化事例

UNREAL FEST EXTREME 2022 SUMMER
アイドルマスター スターリットシーズン」におけるグラフィックス実装事例と最適化事例
のメモ書きです。

 

Youtube

www.youtube.com

スライド 

www.docswell.com

 

・可変フレームレートを採用
→PCでは60FPS以上の駆動も行えるように。ビジュアルクオリティの上昇を目指す
UE4、Deferred Rendering採用

 

・描画分類
アイドル、衣装持ち物、動物
ToonShading

3D背景、小物
PBR

ポストプロセス
UE4の基本機能を利用、一部改造/追加

 

・トーンマッパ設定
レガシートーンマッパを利用
r.TonemapperFilm=0(UE5では利用できない)
→UE5での対応記事があった

qiita.com

 

ToonShadingについて
Shading Modelを追加している
ToonLit→アイドル&衣装
ToonHybridLit→DefaultLitとほぼ同じ挙動、一部衣装の金属など

 

→ShadingModelの追加実装、参考リンク

UE4.24で独自のShading Modelを追加する - Qiita

Creating a Custom Shading Model in Unreal Engine 5 - Asset Creation - Unreal Engine Forums



GBufferは一部用途変更(スライド参照)
→実装参考リンク(GBufferカスタマイズ)

エンジン改造-Gバッファの拡張 - UE4 Document@com04

 

レンダリングフロー(スライド参照)

 

ToonLitの挙動
リフレクション、LightShaftなども通常通り反映される

LightFunctionもそのまま利用できる
LightFunction

[UE4] Light Functionの基本と応用|株式会社ヒストリア

 

Pc,DirectX12環境でレイトレ使っている
→キャストシャドウが起きないように調整

 

レイトレリフレクション(反射(スライド参照)


レイトレの制約(スライド参照)

 

レイトレのパフォーマンス
品質を下げ、一部機能をカット

導入することが最初からわかっていたら
DLSS FSRのような超高解像度技術
DLDSR
などの導入も検討していた

 

キャラマテリアル→GCWorldの特集あり 
NdotLを利用したトゥーン描画が基本

 

2Dの特殊効果
背景に対してフローマップを適用して動きをつける。川、水面など
それ以上のことはエフェクト

 

Cinematic DOF
焦点範囲の調整が出来るように改造
コード例あり

 

半透明問題
アルファに補正をいれて浮き出ないようにする

 

ここらへんの問題

【UE4】被写界深度半透明物体共生戦略手法零式(Type-0) - だらけ者だらけ

 

FrameBufferのキャプチャ
SceneCaptureやFrameGrabberは重かった

描画結果を2箇所のタイミングでキャプチャ出来る機能作成
UDNでのやりとりがあった


RDG
https://docs.unrealengine.com/5.0/en-US/render-dependency-graph-in-unreal-engine/

 

最適化

DefaultEngine.iniの設定色々(スライド参照)

 

観客
5万人前後の観衆
Foliageとして設置している

Foliage ツール | Unreal Engine ドキュメント

恐らくHISMでの描画

UE4 Instanced Static MeshとHierarchical Instanced Static Meshの違い - Let's Enjoy Unreal Engine

 

PerInstanceRandom...インスタンス毎にランダムの値を与える

 

VATでアニメーション。VATのLODも作る

 

GlobalClipPlane
PlanerReflectionを利用するため、GlobalClipPlaneを有効に。

頂点シェーダにSV_ClipDistanceのシステムセマンティックが宣言されてしまうため
PlanarReflectionと関係ないメシュについては、SV_ClipDistanceを宣言させないように改造

 

多人数ライブ
CPUへの作業割当を調整

 

PCO→あんまり効果が出なかった
→保守コストもあり適用しない