Projekt Z で現実感のあるビジュアルとパフォーマンスのバランスを取る:Beyond Order

Projekt Z:『Beyond Order』は、314 Arts初の商業大作タイトルです。映画のようなストーリーテリングと、チーム重視の熱烈なゲームプレイが融合した、4プレイヤー協力型ゾンビアクションシューティングゲームです。
チームは、力強いビジュアルとムーディーなライティングと環境を備えたマルチプラットフォームゲームの制作に着手しました。チームは目標から外れることはありませんでしたが、長い開発プロセスを通じてパフォーマンスの課題に直面しました。その克服方法をご紹介します。
課題:
パフォーマンスの制約を克服しながら、複数のプラットフォームで現実感のあるビジュアルを実現
プラットフォーム:
PC, Xbox Series X|S, PlayStation® 5
開発拠点:
ドイツ
プロジェクトのスタッフ:
利用
Projekt Z:注文を超えて:Unity のケーススタディ
スタジオはどのようにしてビジュアルの忠実度を高めつつ、さまざまなプラットフォームでパフォーマンスを維持するのでしょうか?
314 Arts が Projekt Z:Order を複数のプラットフォームに展開するだけでなく、同社の動機は単に市場にリーチすることだけではなく、技術的な課題に取り組むことでもありました。
「コンソールのリソースは限られているため、パフォーマンスを維持しながらビジュアルとゲームプレイの目標を達成するのは複雑ですが、それが楽しみなのです」と、314 Artsの共同創設者兼ゲーム/レベルデザイナーのJustin Miersch氏は言います。「常に最適化を行い、ハードウェアからあらゆるビットのパワーを引き出しています。ゲームが目標に近づいていくのを見ると、信じられないほど満足感があります。」
チームは開始当初から、自分たちの野望がハードウェアの限界を押し広げることを知っていました。「パフォーマンスは最大の課題でした」と Miersch 氏は付け加えます。「また、Unityの可能性を最大限に引き出すことで何ができるかもお見せしたかったのです。」

成果
Steam Deckのパフォーマンスがプレイアブルから安定した30 FPSに向上
GTX 1060 のフレームレートが 30 FPS から 55 FPS に向上
GPU 時間を約 2 ~ 3 ミリ秒短縮
HD レンダーパイプライン (HDRP) の活用
314 Artsは、Projekt Z:『Beyond Order』は、暗くて映画のような雰囲気を実現するために、強力なレンダリングテクノロジーを必要としていました。「HDRPは私たちの目標を達成するために不可欠でした」とMierrsch氏は言います。「私たちは、可能な限り高い柔軟性を備えた最高品質のソリューションを必要としていましたが、レイトレーシングなどの新しいテクノロジーにも対応できる将来性のあるソリューションが必要でした。」
HDRP を早期に採用したことで、チームはスクリーンスペースグローバルミネーション(SSGI)、ディープラーニングスーパーサンプリング(DLSS)、FidelityFX 超解像度度(FSR)、スケーラブルテンポラルポストプロセッシング(STP)などの進化する機能にアクセスでき、ローエンドハードウェアのビジュアル品質と実現性の両方が向上しました。しかし、プロファイリングにより、シャドウがパフォーマンスの主なボトルネックであることが判明しました。品質を犠牲にすることなくこの問題を解決するために、チームはカスタムツールであるHDRP Shadow Manager(HSM)を開発しました。

Projekt Z:Beyond Order』 | 314 Arts
HSM は、エンジンが影をレンダリングするタイミングと方法を動的に制御します。遠隔地では無効にし、静的シャドウをキャッシュして、必要な場合にのみリアルタイムレンダリングを有効にします。また、シャドウのサイズ、ライトのタイプ、距離を考慮し、ポップインを回避する手動チューニングオプションを使用して、スムーズなパフォーマンスを維持します。「HSM はその柔軟性により、HDRP で何ができるかを本当に示しています」と Miersch 氏は言います。「次に、フェイクライトとシャドウデカールを使用して、遠方のライティングのオーバーヘッドを排除する予定です。」
共同創設者兼プログラマーのMaximilian Kube氏は、レンダリングの問題の多くはチームのクリエイティブな野心から生じていると説明しています。「エンジンではなく、現実感のあるビジュアルを実現するためにスマートな選択をすることです。ボリューメトリック、シャドウ、テクスチャーを最適化することで、大幅な改善を実現しました。ボリューメトリックフォグのバジェットを削減し、シャドウの解像度を 512 または 1K に下げ、テクスチャのサイズを選択的にスケーリングしました。」
破壊可能なレベルの構築
チームはレベルデザインにゴアを加え、環境を強化しました。Timeline を使用してアニメーションとシネマティックエフェクトを作成および編集しました。「これは私たちにとって重要なシステムでした。私が最も興味を持っているのは、シネマティクス以外の用途でこのソフトウェアを使用したことです」と Miersch 氏は言います。「これは、私たちの典型的なレベルデザインワークフローで役立ちました。」
チームは独自のノードベースのミッションシステムを構築したため、レベルデザイナーはTimelineでアニメーションを作成し、それをノードエディターに接続してミッションを行いました。これにより、アイデアを迅速にテストすることができました。
「承認を受けた後、Timeline 内のモデルを更新し、VFX と SFX をいくつか追加しました。おかげで、ミッションのイテレーションをスピードアップできました」と Miersch 氏は言います。

Projekt Z:Beyond Order』 | 314 Arts
ゲーム開発を続ける中で、チームは直感的で満足のいくビジュアルフィードバックと最適なパフォーマンスのバランスを取るよう努めました。「私たちのようなゾンビゲームにとってゴアは必須要素ですが、フレームレートは最優先事項です。私たちは、FPSを増やさずに、手足の飛び立ち、血しぶき、傷口の見え方など、あらゆる衝撃をプレイヤーに感じてもらいたいと考えました」とKube氏は説明します。
彼らは、画面上で数十体のゾンビを同時に処理し、スタッターを発生させない、非常に効率的なゾンビダメージシステムを構築しました。Kube氏は、「すべての遭遇を残酷でシネマティックに感じさせることが目標でしたが、エンジン透視では技術的にシームレスでした」と続けます。
ワークフローの一環として、ゾンビは1つのマテリアルをすべてのダメージ状態で共有し、それがどれほどバラバラになっても1つのスキンメッシュのままになります。オブジェクト プールを通じて血液やその他のエフェクトを共有することで、可能な限り高コストなインスタンス化および破棄操作を回避します。

Projekt Z:Beyond Order』 | 314 Arts
GPU パフォーマンスの向上
パフォーマンスの課題が高まる中、チームはUnityのIntegrated Successチームに解決策を求めました。プレミアムサポートを利用することで、ほとんどの重大な問題を24時間以内に解決できました。
チームにとっての真のブレークスルーは、プロジェクトレビューから生まれました。「Unityエンジニアが数日間にわたって私たちのプロジェクトを深く掘り下げてくれたことは、ゲームチェンジャーでした」とMierrsch氏は言います。
NVIDIA RTX 3090のGPUキャプチャでは、1080pでもゲームがフレームバジェットを超えることがわかりました。SSGI やディファードライティングなどのパスはうまくスケーリングできましたが、GBuffer、マッピング、深度プリパス、モーションベクトルは最適化が必要でした。
「GBuffer パスだけで GPU 時間の 20% 以上を費やしました。PIX 分析によると、GPU 設定が正しくないために Early-Z をディセーブルにすると、一部の描画コールでコストが高くなることがわかりました。Early-Zは、ピクセル シェーダーの前に深度テストを実行することで、遮蔽されたピクセルのピクセル シェーディングをスキップします」とKube氏は説明します。「Early-Z最適化を無効にするシェーダー構成を修正した後は、1フレームあたり約2~3ミリ秒の時間を節約できました。」
次にコストが大きかったのがシャドウレンダリングで、特にポイントライトシャドウでした。「毎フレーム更新されるポイントライトが多すぎて、フェード距離が最大10,000メートルもあるものもあります」とMierrsch氏は言います。「可能な限りスポットライトに切り替え、フェード距離を短くし、シャドウをデマンドで更新するように設定することで、ビジュアルに影響を与えることなく GPU 使用量を大幅に削減しました。」

Projekt Z:Beyond Order』 | 314 Arts
深度プリパス最適化も重要でした。開発者は、すべてのメッシュをレンダリングして深度バッファに読み込む、完全深度プリパスオプションを使用しました。デフォルトでは、HDRPはこのパスをアルファクリップされたオブジェクトやサブサーフェススキャタリングオブジェクトなどの複雑なマテリアルに限定して、GPUのワークロードを軽減します。
「私たちは深度プリパスを使用した場合と使用しなかった場合のパフォーマンスをベンチマークしました。また、LOD レベルを最適化し、ジオメトリを簡素化し、遠くにあるオブジェクトのデカールやサブサーフェススキャタリングを無効にしました。これらはすべて、ビジュアル品質を犠牲にすることなくオーバードローを減らすのに役立ちました」と Kube 氏は言います。
モーションベクトルの強化により、GPUロードがさらに削減されました。「エンジンがモーションベクトルパスで多くの静的オブジェクトを不必要にレンダリングしていました」と Miersch 氏は説明します。「アニメーション化されていないオブジェクトをCamera Motion OnlyまたはForce No Motionに設定し、遠くにあるオブジェクトをカリングすることで、ビジュアルの忠実度に影響を与えることなく、GPU時間を大幅に短縮できます。」
これらの推奨事項を実装した後、パフォーマンスは劇的に向上しました。Steam Deckでは安定した30 FPSで実行されるようになり、GTX 1060ではフレームレートが30 FPSから55 FPSに向上しました。
「Integrated Successチームは、パフォーマンス修正のヘルプだけでなく、エンジンをよりよく理解する方法についても教えてくれました」とMierrsch氏は言います。「Unityエンジニアに直接アクセスし、実践につながるインサイトを得ることで、大きな違いが生まれました。」

Projekt Z:Beyond Order』 | 314 Arts
CPU パフォーマンスの最適化
GPUボトルネックが制御された状態で、CPUパイプラインに注目が集まりました。GeForce RTX 3090の4KではGPUバウンドですが、1080pではロードがシフトし、メインスレッドが28ミリ秒のフレーム時間の約半分をレンダリングに費やすようになりました。「プロファイリングの結果、HDRPのレンダーグラフとスクリプタブルレンダーコンテキストがCPUのオーバーヘッドの大部分の原因であることがわかりました」とMierrsch氏は言います。
レンダーグラフはライトデータを準備し、レンダーパスを記録およびコンパイルして順番に実行します。一方、スクリプタブルレンダーコンテキストはカリング結果に基づいて描画コマンドを処理します。パフォーマンスは、シーンライト、レンダーパス、およびパスごとのドローコールバッチによって異なります。
最適化のために、チームはHDRPの設定を評価し、動的レンダーパスカリングで不要なパスをスキップできるようにし、低解像度の透明度、距離カリング、レイヤーベースのカリング距離などのオプションをテストしました。「カメラに近い小さなオブジェクトをカリングすることで、描画コール、シャドウ キャスター、オーバードローを減らしました。これにより、CPU と GPU の両方のパフォーマンスが向上しました」と Miersch 氏は説明します。

Projekt Z:Beyond Order』 | 314 Arts
また、チームがUnity 6にアップグレードしたことで、CPUのパフォーマンスも向上しました。GPU常駐ドロワー(GRD)の特徴を使用して、BatchRendererGroup APIを活用して描画コールを削減し、フレームあたりのアップロードデータを減らし、メインスレッド ブロッキングを削減しました。「GRD を有効にすることで、メインスレッドとレンダースレッドの両方で大きな改善が見られました」と Miersch 氏は説明します。
また、Small-Mesh 画面-Percentage 設定を使用して小さなメッシュを自動的にカリングし、小さすぎてフレームに意味のある影響を与えるオブジェクトからの描画コールを減らしました。
「HDRPは、その実装でレンダーグラフ システムを幅広く使用しているため、CPUオーバーヘッドが発生する可能性があります。Unity 6では、以前のフレームコンパイル結果を再利用するレンダーグラフキャッシュを使用しました」とKube氏は言います。「エンジンがフレームごとにレンダーグラフを再コンパイルする必要がなくなったため、コストが大幅に削減されました。」
これらの最適化を組み合わせることで、314 Artsチームはパフォーマンスを大幅に向上させると同時に、複数のプラットフォームで野心的なクリエイティブVisionを実現しました。
Unity Pro を今すぐダウンロード
強力なツール、サポート、公認パートナー、活発なコミュニティの力を利用して、大規模スタジオがリリースするタイトルの品質と成功に勝るとも劣らないゲームの制作を開始しましょう。