CapcomはExoprimalで、RE Engineがサバイバルホラーだけのエンジンではないことを証明しました。最大10,000体の恐竜を同時に画面にレンダリングし、安定した60FPSと高品質なダイナミック照明を維持する能力は、あらゆる開発者にとって魅力的な技術的疑問を投げかけます。エンジンはどのようにして、グラフィックパイプラインを崩壊させることなく、これほど高密度なエンティティを管理しているのでしょうか?その答えはコードだけではなく、シミュレーションツールとアグレッシブなカリングシステムの相乗効果にあります。
大群シミュレーション:パイプラインにおけるHoudiniの役割 🦖
圧倒的なパフォーマンスの鍵は、Houdiniによる大群の事前シミュレーションにあります。ここで軌跡や群衆行動が生成され、その後、圧縮されたアニメーションデータとしてRE Engineにインポートされます。これにより、実行時に各恐竜に複雑なAIを処理する必要がなくなります。エンジンは非常にアグレッシブなLOD(詳細レベル)システムを採用しており、遠くの個体はスプライトや50ポリゴン未満のメッシュにまで削減されます。ダイナミック照明は、カメラの視錐台内のエンティティに対してのみ影を計算し、それ以外はハードウェアによるオクルージョンカリングで破棄するクラスターライトシステムによって管理されます。Naniteを使用して大量のジオメトリを処理するUnreal Engineと比較すると、RE Engineはインスタンシングによるドローコール削減に基づいた、より伝統的だが非常に効果的な最適化を選択しています。
インディー開発者のための実践的な教訓 🛠️
小規模スタジオがこの偉業を再現するのに、AAAエンジンは必要ありません。主な教訓は、群衆ロジックをHoudiniやBlenderなどのオフラインツールに外部化し、リアルタイムAIではなくデータ駆動型アニメーションを生成することです。4~5段階のLODシステムを実装し、繰り返しオブジェクトにGPUインスタンシングを使用することで、驚くべき結果が得られます。さらに、ダイナミック照明をプレイヤーの近くのオブジェクトのみに制限し、背景にはライトプローブを使用することで、計算コストを大幅に削減できます。Capcomの秘訣は魔法ではありません。どの恐竜を詳細にレンダリングする価値があるのか、そしてどれが単なるシルエットで済むのかを知ることです。
Exoprimalにおいて、RE Engineは10,000体の恐竜を同時にレンダリングする負荷を、ゲームの滑らかさに影響を与えずに管理するために、どのようなカリング技術とメモリ最適化を実装していますか?
(追記:シェーダーはマヨネーズのようなものです。分離したら、最初からやり直しです)