【UE5】開発につきもの、それが処理負荷!
開発をしていると必ず「処理が重いから軽減してください」と言われます。必ずです!
わたしは、それが嫌なので、随時確認をしながらシーンデータを構築しているので、言われる前に終わっていることのほうが多いのです。ベテランですから(笑)
そこで「どうやって確認していますか?」と確認したところわかっていない人が大多数いて驚きを隠せなかった今日この頃です。
そこで簡単にではありますが基本を紹介したいと思います。
何かのヒントにしてください!
■処理負荷軽減の要因
- ポリゴン数
- テクスチャサイズ・枚数
- 影
- ポストプロセスマテリアル
- VFX
- AI
- 描画エラー
- UI
- ジョイント数
- メモリ配分
- 描画範囲内のアクタ数
- その他、システムの構造
- 他パートのデータ
13については、「ちゃんとしてくれよ」って思っています…
それはさておき、上記で上げた13の要因のうち背景に必ず関係してくる要因が下記になります。
1.ポリゴン数
2.テクスチャサイズ・枚数
3.影
7.描画エラー
10.メモリ配分
11.アクタ数
これら背景制作で最低限おさえておかなければいけない要因となります。
そして上記要因はUE5から導入されたNaniteとLumenをもってしても抗えない要因になるため、注意しましょう。
とは言っても、NaniteやLumenの使用をやめようというわけにはならず、
特にNaniteを使用しないという選択はあり得ないということは断言しておきましょう。
Naniteには未来が詰まっているから(笑)
さあ、それでは軽減を行っていきましょう。
ここで迷われた方いますか?「どうやってしらべるのか?」って。
これを機に学びましょう!
そんな難しいことはないので、おさえるところだけおさえてください!
■処理負荷確認を行うための準備
さて軽減作業を行う前に実際に軽減が必要な要因は何かを調べなければいけません。
というわけで、処理数値の可視化と詳細確認手順を紹介します。
・シーンデータを開き【Stat Unit】
とコマンドを入力します。
・メニューの【ウィンドウ】→【出力ログ】
を選択し開きます。
※必ずログまで確認するようにしましょう。
・【Profile GPU】
と入力しGPUビジュアライザーを開きます。
■さあ処理負荷を確認しましょう!
①ビュー画面の右上に表示された数値を見て一番負荷が高くなる場所に視点を合わせます。
②ビューを固定したら【Profile GPU】を入力し、エンターキーを押し、GPUビジュアライザーを表示します。
③一番長いバー(気になるバー)を選択すると下記の名前がアクティブになります。
④出力ログを表示して、その名前のログを探し詳細を調べていきます。
⑤処理軽減対応をする
そして①に戻ってと、繰り返していきます。
これが処理軽減の手順になります。
■まとめ
大体は影が一番処理的に重くなるのが常ですが、あらゆるものをNanitで使用するのはリスキーだ。
例えば草や花、樹木など小さいメッシュが多いアセットは、Naniteサポートを使用しない方が処理負荷的には軽くなるということが現状は見えていますし、使用しないのは正しい判断だと言える。
実際に公式から出ているサンプルデータも自然物の岩だらけのデータや都市データで紹介していたりする。つまりNaniteはまだ完成していないのだ!
そのため、なんでもかんでもNaniteを使用することはリスキーであると言わざる負えないです。
そういった判断も今回のように確認してみないとわからないため、憶測だけで(検証結果を視認化せずに)決めつけないようにしていきましょう!
処理軽減対応としては、他にもマテリアルの構築の仕方などでも処理が変わってきます。
そしてポリゴン数についても軽視できないのは事実です。
やはりただ作ればよいというわけにいかないという、なんて面白いパートなんだ!
背景アーティストは!
やはり最初のうちにテストを行い想定検証を行ってレギュレーション(仕様)を定めてしまわないといけないなと改めて実感しました!
言われたことだけやるのは三流、後でやればいいやは二流、
検証たのし~は一流というわけです。(わたしは一流ですからたのし~でです)
こちらの内容も何かの足しになれば幸いです!
応用を忘れずに日々精進していきましょう!
■豆知識
〇影の品質が選択できる場所がわかったので共有します。
右上にある【設定】→【エンジンの拡張機能設定】を選択し、品質を「低」「中」「高」「Epic」「シネマティック」と選べるようです。
「低」「中」:Lumenを使用しない
「高」:60fpsにしたい場合
「Epic」:30fpsにしたい場合
「シネマティック」高品質のカットの場合
と設定できるようです。これは保険として取っておきましょう!
〇複数フレーム処理:TSR(Temporal Super Resolution)
ほかには4Kのテクスチャを使用するのではなく1080pのシーンでレンダリングして%をかけて4Kにするシステム的な軽減の仕方もあるようです。
場合によっては半分くらいの軽減ができます。例えば50ms→26msといった具合です。
https://www.docswell.com/s/EpicGamesJapan/5ENRE6-EGC2024_NGraphicsTips#p25 ← 公式スライド
もちろん弱点もあります!キャラやカメラが激しい動きをすると確実にぼや~っとボケます。
といった具合に、情報がどんどん出てきていますので、検索して身につけましょう!