People Can Fly, студия, ответственная за такие проекты, как Gears of War Judgment и Outriders, раскрыла технические детали Project Maverick — шутера AAA-класса для Xbox Game Studios. Проект делает ставку на экстремальную графическую нагрузку, сосредоточенную на полном разрушении окружения и кинематографическом пост-процессинге с высоким воздействием. Основой разработки является Unreal Engine 5 в сочетании с инструментами симуляции, такими как Houdini, и традиционным моделированием в Maya.
Технический конвейер: От Maya и Houdini к разрушению в реальном времени 🛠️
Рабочий процесс Project Maverick разделен на две ключевые ветви. С одной стороны, Maya используется для создания ключевых ассетов и скульптур высокого разрешения, служащих основой для материалов. С другой стороны, Houdini является движком процедурного разрушения. Технические художники генерируют предопределенные системы фрагментации, которые экспортируются в Unreal Engine 5 как многомешная геометрия. Во время выполнения движок активирует эти фрагменты, используя систему Chaos Physics в сочетании с частицами Niagara для симуляции пыли, обломков и искр. Результатом является разрушение, которое соблюдает законы физики и поддерживает стабильную производительность благодаря использованию динамических LOD и окклюзионного отсечения.
Цена кинематографичности: Оптимизация на Xbox 🎬
Кинематографический подход подразумевает интенсивное использование пост-процессинга: адаптивное свечение, хроматическая аберрация, глубина резкости и тоновое отображение с пользовательскими LUT. Для поддержания 60 FPS на консолях Xbox компании People Can Fly необходимо балансировать динамическое разрешение с использованием Virtual Shadow Maps и Nanite. Ключ заключается в ограничении количества активных фрагментов на один взрыв и предварительном расчете наиболее сложных последовательностей разрушения в Houdini, чтобы избежать перегрузки процессора. Это упражнение в поиске баланса между визуальным зрелищем и технической плавностью.
Как Project Maverick на Unreal Engine 5 удается управлять производительностью и памятью при симуляции кинематографичного разрушения, не жертвуя плавностью в реальном времени
(P.S.: 90% времени разработки уходит на полировку, остальные 90% — на исправление багов)