
Unreal Engine ゲームのスタッタリング問題への対処: Unreal Fest 2025 からの洞察
フロリダ州オーランドで開催されたUnreal Fest 2025で、シニアソフトウェアエンジニアのAri Arnbjörnsson氏が、PCゲーマーにとって深刻な問題である、Unreal Engineで開発されたゲームにおけるスタッタリングについて言及しました。パフォーマンスの低下に悩まされるタイトルが続々と登場する中、ゲームコミュニティはこの問題へのEpic Gamesの対応に疑問を抱いています。
問題の核心:「グレート・ヒッチ・ハント」
「グレート・ヒッチ・ハント」と題された興味深いテーマのプレゼンテーションで、アーンビョルンソン氏は魔女狩りの衣装を身にまとい、開発者に対し、スタッタリングの原因を積極的に排除するよう訴えました。ゲームプレイの中断につながる7つの主な要因を概説し、パフォーマンス向上を目指す開発者向けに実践的なベストプラクティスを示しました。
吃音の原因を特定する
1.レベルストリーミングの問題
最初の大きな原因はレベルストリーミングです。これは、ゲーム環境の動的なロードとアンロードに関連する様々な問題を網羅しています。Arnbjörnsson氏は、テーブルや食器といった複雑なオブジェクトを含むスタティックメッシュアクタの不適切な使用は、特に広大なAAAワールドにおいて、ゲームパフォーマンスに大きな負担をかける可能性があると指摘しました。これらの問題を軽減するために、彼はインスタンス化スタティックメッシュ(ISM)または階層化インスタンス化スタティックメッシュ(HISM)の使用を推奨し、さらにパックレベルアクタ機能を利用して多数のスタティックメッシュを、より少ないリソース消費の少ないアクタに凝縮することを推奨しました。さらに、彼は、実行時にスタティックメッシュアクタをインスタンス化メッシュに自動的に変換するUnreal Engine 5.5のCell Transformersの今後の進化についても言及しました。
2.物理最適化
もう一つの問題の原因は、物理演算関連の処理です。開発者は最適化の必要性を過小評価しがちです。特にUnreal Engine 5にNaniteテクノロジーが導入されて以降、複雑なメッシュでもシームレスに動作するという思い込みが強くなっています。Arnbjörnsson氏は、よりシンプルな衝突形状、つまり球体、カプセル、ボックス、そして凸ポリゴンといった形状を採用することを推奨しています。また、遠く離れた非インタラクティブなオブジェクトについては、物理演算のインタラクションを無効にすることの重要性も強調しました。Epic Gamesの実験的な機能「Async Physics Initialization」は、ゲームスレッドの物理演算負荷を軽減することを目的としていますが、開発者は慎重に検討することをお勧めします。
3.アクター生成の遅延
アクターのスポーン遅延は、次の大きな課題です。キャラクターモデルなど、複数のコンポーネントを備えた重いアクターは、初期化中にフレームレートが著しく低下する可能性があります。この問題を解決するために、Arnbjörnsson氏は、フレームごとにスポーンされるアクターの数を制限すること、アクターのコンポーネントのアクティベーションを遅延させること、そして既存のオブジェクトを繰り返し破棄して再作成するのではなく再利用するアクタープーリング戦略を実装することを提案しました。Unreal Engineのデフォルト機能としてアクタープーリングを実装することは検討中ですが、開発者には現在のところ、特定のアクタータイプに合わせてカスタマイズされたプールを作成することが推奨されています。
4.パイプライン状態オブジェクト(PSO)のコンパイル
スタッターの最も一般的な原因の一つは、パイプラインステートオブジェクト(PSO)のコンパイルに関連しています。ハードウェア構成が均一なコンソールとは異なり、PCではゲームプレイ中のシェーダーコンパイルに課題があり、シェーダーをオンザフライでコンパイルする必要がある場合にスタッターが発生します。この問題を軽減するためにUnreal Engine 5.3でPSOのプリキャッシュが導入されましたが、開発者は独自のPSOコンパイル戦略を考案し、PSO Cache Busterプラグインなどのツールを活用してパフォーマンスをさらに最適化する必要があります。
5.ガベージコレクションの急増
ガベージコレクションは、未使用のUObjectインスタンスが過剰に蓄積され、ガベージコレクション処理が長引くと、パフォーマンスの低下につながる可能性があります。開発者はUObjectの数を積極的に管理し、ガベージコレクションを賢くスケジュールして、中断を最小限に抑える必要があります。Epicは現在、これらの問題を軽減するために、ガベージコレクションタスクを複数のフレームに分散させることを目的とした、実験的な増分到達可能性分析機能を検討しています。
6.同期ローディングヒッチ
同期ロードのヒッチは、ゲームスレッドがアセットのロードをブロックすることで停止し、長時間の中断につながることで発生します。この問題に対処するには、開発者は非同期ロード技術を厳格に採用し、Arnbjörnsson氏のCommonValidatorsのようなアセットバリデータを使用して問題のあるロード動作を追跡する必要があります。Unreal Engineバージョン5.4および5.5では、非同期キューの部分的なフラッシュを可能にする機能を導入することで、この状況の改善を目指しています。
7.ブループリントとコンテンツの不具合
最後に、ブループリントやコンテンツスクリプトが過度に複雑になると、過剰なタイマー、頻繁な更新、あるいは膨大なシーケンスなどが発生し、パフォーマンスが低下する可能性があります。開発者を支援するため、Epic GamesはUnreal Insightsツールを強化し、プロジェクト内のパフォーマンスボトルネックを容易に視覚化して修正できるようにしました。
結論:最適化の課題を受け入れる
プレゼンテーションの締めくくりに、アーンビョルンソン氏は、技術の進歩がゲーム業界を絶えず変革する一方で、開発者は固有の限界を常に意識しなければならないと強調しました。効果的な最適化戦略と創造的な問題解決は、可能な限りスムーズなゲーム体験を提供するために不可欠です。彼のセッションは、開発者がプロジェクトにおけるスタッターの問題に対処するための情報を提供するだけでなく、行動を起こすよう促すことも目的としていました。
詳細については、講演全編をご覧ください。
ここ
。
コメントを残す