Запуск Suicide Squad: Kill the Justice League поставил перед Rocksteady серьезную техническую задачу: сохранить качество повествования, присущее их предыдущим играм, в массивном открытом мире. Используемый движок Unreal Engine 4 является основой, на которой построен яркий Метрополис, но настоящее достижение заключается в том, как студия справилась с переходом от закрытых и линейных локаций к живому и отзывчивому городу, не жертвуя детализацией персонажей.
Лицевая анимация и оптимизация стриминга города 🎭
Самой большой технической проблемой стало сосуществование двух систем, которые обычно являются антагонистическими: рендеринг города в большом масштабе и высокодетализированная лицевая анимация. Для кинематографических сцен Rocksteady внедрила систему захвата лицевой мимики, использующую высокоплотные блендшейпы в сочетании с риггингом на основе лицевых костей (joints) в Unreal Engine 4, что позволяет передавать микровыражения без необходимости предварительного рендеринга. Однако для поддержания плавности в открытом мире студия применила систему потоковой передачи данных (HLOD), которая приоритизирует загрузку текстур кожи и глаз, когда камера приближается к персонажу, активно выгружая LOD города в фоновом режиме. Яркое дневное освещение достигается с помощью системы динамического направленного света, взаимодействующего с постоянными частицами пыли и дыма, имитируя смог Метрополиса без перегрузки конвейера рендеринга.
Дилемма производительности в плотных окружениях ⚙️
Несмотря на достижения, игра обнажает неудобную правду современной разработки: грань между кинематографическим качеством и игровым процессом в реальном времени остается размытой. В то время как анимации тел главных героев плавны и отзывчивы, NPC и городской трафик демонстрируют явное снижение частоты анимации для поддержания 60 FPS. Решение Rocksteady приоритизировать постоянные эффекты частиц (взрывы, обломки) над симуляцией толп предполагает, что для создания открытого мира с детализированными героями жертвование ИИ окружения по-прежнему остается технически наиболее жизнеспособным путем.
Как Unreal Engine 4 управляет динамической загрузкой текстур и ассетов, чтобы избежать падения производительности при рендеринге открытого и детализированного мегаполиса, такого как в Suicide Squad, без ущерба для плавности в многопользовательских боях
(P.S.: Оптимизация для мобильных устройств — это как пытаться запихнуть слона в Mini Cooper)