Top
Работа

Захват ангара: как в Luxoft создавали деморолик для AMD

Команда Luxoft — Ксения Логинова и Николай Никифоров — рассказывает, как совместить игровой сценарий и при этом показать возможности нового продукта, если ваш заказчик производит видеокарты.

Задача

Нашей задачей было создание видеоролика для демонстрации возможностей видеокарт AMD Radeon RX 6000 Series. Они используют архитектуру нового поколения AMD RDNA 2, которая позволяет вывести игровые визуальные эффекты на совершенно новый уровень графики и производительности. В работе мы использовали эффекты трассировки лучей на базе DirectX 12 Ultimate, технологии Variable Shading и растровый рендер с использованием compute shaders.

Робот-ниндзя в ангаре

В процессе создания сцены мы перебрали множество сценариев и вариантов сеттинга, пока в итоге не остановились на идее короткой истории о роботе-ниндзя, который похищает космический корабль из охраняемого фантастического ангара. В каком-то смысле сценарий этой демо ссылается на предыдущий деморолик, сделанный для запуска DirectX12 Ultimate для Xbox: в конце ролика на сцену приземляется чёрный робот, видимый только в отражениях. Ангар таким образом рассказывает предысторию, поясняя, откуда этот робот прилетел и где он взял транспорт.

Для разработки визуальной концепции и создания раскадровки мы обратились за помощью к талантливому концептеру Дмитрию Цмоху.

За основу мы взяли StarFighter model by cleanrender. Это высококачественная модель космического корабля, выполненная с предельной точностью и практически готовая к использованию. Нам оставалось лишь оптимизировать корабль под работу в реальном времени и подобрать для него более подходящую цветовую гамму.
Изначально помимо модели корабля мы хотели использовать всю сцену целиком, но более современный стиль не совсем подходил под нашу задумку. Поэтому мы решили создать окружение с нуля, сохранив лишь несколько небольших фоновых объектов для заполнения сцены.

Концепт-арты

Один из важнейших этапов разработки ролика — создание концепт-артов главных элементов сцены на основе одобренных референсов. Это первое визуальное представление нашей идеи. От качества и проработки рисунков зависят все дальнейшие этапы производства. Чем более детальным и полным будет выполненный концепт, тем точнее заказчик сможет представить конечный результат. А это в свою очередь делает процесс моделирования всех частей сцены проще и понятнее для 3D-художников. Дмитрий Цмох и Сергей Гумилин, наш собственный концептер, выполнили несколько десятков итераций дизайна важнейших элементов сцены — модулей ангара, робота и дронов-охранников.

Раскадровка

Этап разработки визуального образа, тестирования движка и моделирования основных элементов начался сразу после завершения работы над раскадровкой и её утверждения заказчиком. Эта демо была не первой, где мы задействовали эту часть процесса, незаменимую в любой работе над фильмом или анимацией. Несмотря на наличие опыта, для нас этот этап оказался весьма сложным. В создании раскадровки в той или иной мере приняли участие все члены команды, но итоговый вариант подготовил Дмитрий Цмох. 

Мы отразили ключевые точки пути робота-ниндзя: проникновение в космический ангар, взламывание системы запуска шаттла, уклонение от дронов-охранников и успешный угон звездолёта. Раскадровка отражает цветовое настроение видеоролика и содержит эффектные композиционные решения. К сожалению, нам пришлось урезать тайминг сцены почти вдвое, а потому мы были вынуждены вырезать процесс сборки корабля из деталей.

Персонажи

Параллельно мы искали 3D-модели на стоках, которые бы вписались в антураж и помогли нам уложиться в сжатые сроки реализации проекта. В качестве основного персонажа был выбран Robot 3D model by Michael Weisheim.

Изначально мы хотели переработать его под себя, и Дмитрий даже подготовил несколько концепт-артов альтернативного дизайна робота. Однако в итоге мы решили не менять исходную модель, а лишь перестроить ноги (в оригинале у робота широкие штаны) и изменить риг — скелет и систему управляющих элементов для анимации. Эти изменения были необходимы, чтобы исключить скиннинг — мягкие деформации модели, привязанной к скелету, — и симуляцию ткани. Мы хотели избежать любых потенциальных проблем с простоями видеокарты, а потому следовало убрать всё, что нагружает центральный процессор больше необходимого. Просчёт скин-деформаций и последующая синхронизация ускоряющей структуры для трассировки лучей были тем, чем можно было пожертвовать ради производительности и скорости.

Сборка

Собрав все элементы будущей сцены, мы приступили к основному и самому трудоёмкому этапу — 3D-моделированию окружения. Основываясь на концептах художников и приобретённых моделях, мы сконструировали ангар, состоящий из повторяющихся модулей. Помимо этого для наполнения помещения нужно было разработать дрона-охранника, большие ворота и различные мелкие предметы в едином стиле. Части будущей модели мы распределили между всеми членами команды.

Основной сложностью стало требование вписать всю сцену в два миллиона полигонов — опять же, чтобы избежать любых возможных проблем с производительностью. Для обычного растрового движка такой бюджет может показаться очень маленьким, но в нашем случае мы специально использовали высокоточные compute shaders и трассировку лучей на базе профессионального рендера Radeon Pro Render. Он используется в визуализации и кинематографе — например, с его помощью выполнен рендеринг для Resident Evil: Infinite Darkness. 

Мы осознанно избегали обычных приёмов для оптимизации и аппроксимации, к которым часто обращаются современные игровые движки. По этой причине основная часть работы лежала на команде художников: каждый член команды занимался оптимизацией, ретопологией и бейком каждого элемента сцены, стараясь по максимуму использовать модульность и инстанцирование объектов.

Да будет свет

Когда модели были готовы, мы перешли к завершающим этапам освещения сцены. Нам нужно было добавить объёмный и драматичный свет, который создавал бы правильное настроение у зрителя, а также демонстрировал новые возможности видеокарты AMD Radeon RX 6000 Series. 

Освещение изначально было одной из важнейших частей сцены. Мы пытались поймать настроение и атмосферу, прибегая к помощи узких прожекторов, светящихся полос и тумана. Рендер демонстрировал на тот момент крайне редкую в игровых движках технологию трассирования излучения от физических поверхностей, и нам удалось добиться того, что прежде было возможно только в офлайн-рендерах — способность сделать источником света любую поверхность и получить абсолютно натуральные тени от неё. 

Вообще это добавило некоторую сложность сцене — как правильно показать такие источники в динамике? Чем больше источников и чем больше площадь каждого из них, тем хуже видно тени, так как они растворяются друг в друге — в точности как это происходит в реальном мире. Чтобы решить эту проблему, нам необходимо было рассмотреть, как работает кинематографический свет на реальных съёмочных площадках, и повторить эти принципы на сцене. Мы многому научились в процессе создания ролика, но в то же время многое не успели воплотить. И нам не терпится опробовать полученные знания в следующих демо.

Камера, мотор!

Один из финальных этапов создания ролика — анимация и постановка камер. Задача сложная и в то же время очень интересная. Нужно тщательно продумать путь каждой анимируемой модели в кадре, а также следить за нелогичными движениями и столкновениями. На этом этапе создания ролика ценность раскадровки становится особенно очевидной. И хоть сцена, на базе которой строилась раскадровка, успела поменяться в габаритах и очертаниях, композиция кадров, продуманная заранее, помогла нам проделать эту работу относительно быстро.

Наш аниматор Артур Розгон занимался риггингом ниндзя — процессом построения скелета модели, чтобы в дальнейшем, привязав к нему саму модель, можно было ею управлять. Исходная модель уже имела скелет и риг, но для наших целей они не подходили, так как были несовместимы с уже имеющейся у нас базой анимаций (ручных клипов и клипов из библиотеки Adobe Mixamo), а потому это надо было проделать заново. После завершения рига аниматор выстроил путь робота по сцене и, подставив клипы ходьбы, бега, жестов и прочих движений, составил всю последовательность.

У нас было техническое ограничение: анимация должна была лежать в одном клипе от начала до конца, чтобы сцену можно было экспортировать в виде единого GLTF-файла. Именно в таком виде сцена и отправлялась в движок напрямую из Maya, вместе с json-файлом со скриптовыми событиями (переключение света, диспетчер камер, управление постпроцессом).

Заключение

Деморолик HANGAR 21 — это результат слаженной и упорной работы наших художников и программистов. Каждый этап работы над ним дал команде массу новых знаний и опыта в создании сложных анимированных сцен, а также возможность прокачать навыки разработки собственного real-time-движка. 


Подписывайтесь на нас в Facebook, Telegram, Vkontakte, Pinterest.

+1
2
+1
0
+1
1
+1
0
+1
0
+1
0
+1
0
Поделиться: