Unreal Engine 5 は PC ゲームの最大の問題にどのように取り組んでいるのか

 Unreal Engine 5 は PC ゲームの最大の問題にどのように取り組んでいるのか

GDC 2023 の State of Unreal での講演 で、Epic は Unreal Engine 5.2 の幅広い機能スイートを発表しました。しかし、おそらく、更新されたエンジンに搭載される最も重要な機能は、ライティング、ジオメトリの詳細、またはレイ トレーシングに関連するものではありません。すべてはパフォーマンスです。

アンリアル エンジン ゲームは、良かれ悪しかれ、ここ数年、カクつきやカクつきを伴うものと関連付けられてきました。新しいリリースで、Epic はついにこの問題に正面から取り組んでいます。そのため、Unreal ゲームで頻繁に途切れが発生する理由、問題を解決するために Epic が何をしているのか、そしてそれらがいつ発生すると予想されるのかを詳しく説明する時期が来たと思いました。その取り組みは新しいリリースに反映されます。

吃音を思い出してください

PC 上の Gotham Knights のフレーム時間。

ここ数年、アンリアル エンジンは吃音の代名詞となっています。 『スター・ウォーズ ジェダイ:フォールン・オーダー』 から『ストレイ』、 『ゴッサム・ナイツ』に至るまで、 私たちはこの問題を何度も見て ましたが、それらはすべて同じ問題を抱えています。コンピレーション吃音です。

シェーダーのコンパイルが途切れるという話はよく聞きますが、最近の遅延の原因は個々のシェーダーが原因ではありません。 Vulkan や DirectX 12 などの最近のグラフィック API では、パイプライン ステート オブジェクト (PSO) として知られるパッケージを利用して、GPU の状態をゲームに伝えます。 PSO はレンダリングをより効率的にすることを目的としており、シェーダーを含む数十のパラメーターを 1 つのパッケージで API と GPU の間でやり取りできるようにします。

ただし、別の問題が発生します。 PSO には非常に多くの情報が含まれているため、その場で新しい PSO を生成するには長い時間がかかります ( Unreal のドキュメントに よると、100 ミリ秒以上)。このランタイム PSO の作成がスタッターの原因となり、実際のプレイ中にエンジンが新しい PSO を生成する必要があります。

これに対処するために、Unreal Engine では PSO キャッシュが利用可能です。これにより、可能な PSO のキャッシュが作成されるため、ゲームのプレイ中に新しい PSO を生成する必要がなくなりますが、完璧ではありません。 Epic が説明しているように、PSO の事前キャッシュは「大規模なプロジェクトにとっては負担が大きく、依然としてキャッシュにギャップが残り、問題が発生する可能性があります」。そのため、GPU 上でシェーダーをプリコンパイルするゲームでも、(たとえ非常に少ない場合でも) 時々途切れが発生することがあります。

Epic は、考えられるすべての GPU パラメータの考慮を開発者に任せるのではなく、PSO を収集することでこのプロセスを自動化しようとしています。 Epic のパブリック ロードマップ に載っていますが、現在は実験版のみが利用可能です。 Unreal Engine 5.2 の目標は、PSO キャッシュを改善して遅延をさらに減らすことです。

すべてはフォートナイトのために

Unreal Engine 5 で実行されている Fortnite のシーン。

アンリアル エンジン 5 には楽しみなことがたくさんあります (その一部については次に説明します) が、エンジンがどのように動作するかについてはまだ明確な見通しがありません。これまでのところ、メジャーリリースの中で技術デモと フォートナイト でのみ使用されています。 Redfall のような、Unreal Engine 5 を活用することを約束していたゲームでさえ、Unreal Engine 4 に後退しました。

明確にしておきますが、Unreal Engine 4 で利用可能なツールを使用すると、開発者はゲームを最適化して途切れを回避できます。 アトミック・ハートは その多くの例のうちの 1 つです。しかし、PSO の状態が複雑なため、ゲームプレイ中に問題が発生する可能性があり、Epic の自動 PSO 収集は Unreal Engine 5.1 でのみ導入されました。

Epic がこの問題に直接取り組んでいることを嬉しく思いますが、自動 PSO キャッシュが実行されているのをまだ見ていません。小規模なチームからより複雑で多様なリリースが生まれるにつれて、PSO 生成の需要が高まり、遅延や途切れが発生する可能性が高くなります。

Unreal Engine 5 はレイ トレーシング PSO の PSO キャッシュをサポートしていないため、これは レイ トレーシング を含むゲームの場合に特に懸念されます。 Nvidia が説明している ように、レイ トレーシング PSO の作成作業を複数のスレッドに分散することは可能ですが、それは必ずしも開発者がこのプロセスを使用することを意味するわけではありません。

まだまだ楽しみなことがたくさんあります

アンリアル エンジン 5 のライティング。

Unreal Engine 5 で自動化された PSO が収集されるのをまだ確認する必要がありますが、実際にはこのエンジンには期待できることがたくさんあります。まずはルーメン。ライティングはグラフィックの忠実度にとって非常に重要であり、 Portal RTX で紹介されているパストレースされたライティングなどの高価な技術 ハードウェアに厳しいです。ルーメンが違いを分けます。

Lumen はレイ トレーシングを活用していますが、これは高度に最適化された形式です。 レイトレーシング 。詳細なオブジェクトの無限バウンスを丹念に計算する代わりに、Lumen は抽象化を使用してシーンの大部分の照明を計算し、デフォルトではカメラに最も近い詳細な照明のみを使用します。この最適化により、Lumen をソフトウェアで実行できるようになります レイトレーシング 、専用の必要性をなくす レイトレーシング グラフィックス カード 上のアクセラレータ。

結果はすでに明らかです。 Fortnite は、ルーメンを備えたコンソール上で 60 フレーム/秒 (fps) で実行されており、PC 上では、 Fortnite の漫画の世界であっても驚くほど美しく見えます。

Unreal Engine 5 の Nanite ショーケース。

Nanite は Lumen と連携して動作します。これは、ゲームプレイ中に調整できる、非常に詳細で高圧縮されたメッシュを含む仮想化ジオメトリ システムです。これは基本的に、カメラが見ている場所に応じて、詳細なメッシュと曖昧なメッシュを自動的に切り替えるメッシュの複雑な詳細レベル (LOD) です。

さらに重要なのは、Nanite は独自のレンダリング パスで実行されるため、従来の GPU パイプラインに巻き込まれないことです。つまり、Nanite がメッシュの複雑さを交換している場合でも、ゲームプレイはスムーズに保たれます。 Nanite と Lumen の間には、グラフィックの忠実度の水準を高める、視覚的に印象的で計算効率の高い 2 つの機能があります。

ただし、Epic は State of Unreal での講演中にさらに多くの情報を共有しました。 Substrate は、より詳細なシェーダー制御を含む Unreal 5.2 の新しいマテリアル システムです。 Epic は、オパールの表面マテリアルを使用してこれをデモし、複数のレイヤーとそれら全体にわたる正確な光の屈折を紹介しました。

Unreal Engine 5 のオパール マテリアル。

新しい Procedural Content Generation Framework (PCG) も、たとえ視覚的な忠実性に直接関係しないとしても、興味深いものです。 PCG は限られた入力で新しいオブジェクトを生成し、開発者が高レベルの詳細を備えた世界を迅速に構築できるようにします。あらゆる隅々にアーティストのタッチを必要としない、より広大な世界にとって、これはエキサイティングです。

MetaHuman の進歩から Unreal Engine 内の完全なパス トレースまで、他にもたくさんの機能があります。これは興味深いことですが、Unreal Engine のリリースによく関係する吃音の問題はまだ残っています。 PSO キャッシュにおける Epic の進歩によってこの問題が回避されることを願っていますが、そのシステムがどのように動作するかを確認できる Unreal Engine 5 ゲームはまだ多くありません。

この記事は、 の一部です。ReSpec は、PC ゲームの背後にある技術に関するディスカッション、アドバイス、詳細なレポートを含む隔週の継続的なコラムです。

「 Unreal Engine 5 は PC ゲームの最大の問題にどのように取り組んでいるのか」についての動画選定!

UnityとUE4を比較解説します【ゲームエンジン】
【UE5】無料で簡単にゲーム作りを始めよう!【Unreal Engine 5】