Студия krem.productions поделилась опытом создания кинематографичного трейлера игры с помощью Unreal Engine 4.

Рустам Рябой

Свой первый синематик на Unreal Engine 4 мы создали осенью 2018 года. Это был ролик для Steamcraft. Его сегодня можно увидеть на странице проекта в Steam.

Трейлер Steamcraft

Использовать для трейлера именно движок не было внезапным решением. К этому нас подтолкнуло два обстоятельства.

Первое — неидеальность традиционных инструментов, которые сегодня используются для создания синематиков. Наш привычный pipeline — это Blender, Cinema 4D и 3ds Max. Минус этой связки — очень долгий рендер. Альтернатива у этого решения есть — связка After Effects и плагина Element 3D. С ее помощью возможно гораздо быстрее готовить ролики. Но есть проблема. Пакет работает нестабильно. Поэтому мы постоянно находились в поиске новых решений. Мы хотели, чтобы ролики можно было делать и быстро, и удобно.

Второе обстоятельство, которое навело нас на использование Unreal Engine 4, — хайп вокруг реалтаймовой визуализации. В последние годы все чаще говорят о возможностях рендера в режиме реального времени, близкого по качеству к кино.

В итоге летом 2018-го я внимательно посмотрел несколько синематиков, сделанных на Unreal и Unity, и решил, что наша студия должна попробовать поработать с одним из движков.

Именно на Unreal Engine 4 мы остановились из-за удобных встроенных инструментов для создания синематиков, а также шикарного ролика Reflections Real-Time Ray Tracing Demo, который был показан еще прошлой весной.

Чуть ниже — история о том, как примерно шла подготовка ролика. Но тут важно понимать, что очередность событий — немного условная. Часть вещей мы делали параллельно.

Аниматик

Я пропущу такие этапы, как написание сценария и раскадровки, однако остановлюсь на следующем после них — подготовке аниматика.

Раскадровка ролика

Под аниматиком, как правило, понимают анимированную раскадровку. Иными словами, серию статичных картинок, показанных друг за другом. В нашем случае аниматиком был черновой набросок ролика, сделанный на движке без использования проработанных моделей и окружения.

Когда мы приступили к созданию аниматика, мы не представляли, как в Unreal работает анимация. Нам хватило суток, чтобы в ней разобраться. Я думаю, это неплохое доказательство низкого порога входа в Unreal для CG-специалистов.

Поскольку каждая сцена рендерилась всего порядка двух минут, мы могли быстро вносить многочисленные изменения. В итоге принята была пятая версия аниматика. На этом закончился препродакшн.

Кадры из аниматика ролика

Подготовка моделей

Продакшн каждого ролика мы начинаем с подготовки моделей и окружения, которые попадут в кадр.

Модели автомобилей готовили наши 3d-специалисты. Что касается меня, то я отвечал за локации. По задумке, их должно было быть четыре — пустыня, ночной лес, зимний лес и гараж.

Изначально я планировал их создать самостоятельно. Однако после знакомства с редактором материалов движка, я понял, что у меня нет времени на его освоение. По этой причине я, как подобает приличному compose-специалисту, полез в Unreal Marketplace.

Редактор материалов Unreal Engine 4

Спустя всего пять минут я нашел пакет ландшафтов, в котором было все, что нужно. Оставалось только наполнить пустые локации объектами. И здесь мне помогла библиотека отсканированных объектов Quixel Scan.

Настройка освещения

После того, как получилось набить руку в Unreal Engine на работе с ассетами, я обратил внимание на настройку освещения. В After Effects я редко работал с лампами, так как это было очень неудобно. В Unreal все намного проще, поэтому появилась возможность поэкспериментировать.

Импорт анимации

Мы решили, что часть анимации будем готовить в Maya и 3ds Max, а затем импортировать ее в Unreal. Мы знали, что всю анимацию надо делать на костях, тогда проблем не возникнет. Но не обошлось и без багов. К примеру, если в одной папке лежат две разные анимации с одной и той же машиной, то Unreal Engine выдает ошибки и ломает всю анимацию в целом. Лечится это импортом анимации в новую папку без каких-либо файлов.

Анимация камеры

Один из важнейших плюсов при работе над роликами в Unreal Engine — возможность управлять положением камеры с помощью стандартной WASD-раскладки. Не надо настраивать большое количество переменных, достаточно просто нажать на пару клавиш.

Плюс есть широкий функционал настройки. Сразу же можно сделать даже постобработку. С версии 4.20 разработчики ввели новый метод DoF — Circle DoF, который дает чудесные боке. Но опять же не без артефактов.

Анимация авто

Одним из самых сложных этапов оказалось создание анимации автомобиля. Нужно было сделать универсальный риг автомобиля внутри Unreal. Через пару дней наши 3d-аниматоры выдали классный и полностью рабочий результат.

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

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

В итоге, чтобы не тратить драгоценное время, в ряде сцен приходилось идти на различные ухищрения, чтобы на камеру все смотрелось хорошо, даже если речь шла о летающих пулеметах.

Финишная прямая

Поскольку за финальный результат отвечал я, пришлось взять на себя и цветовую коррекцию с монтажом. Для этих задач я использовал After Effects. Но это можно было сделать и в Unreal Engine. Все необходимые инструменты там есть.

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

Эти изменения заняли последние два дня работы перед тем, как мы отправили первую версию трейлера клиенту. После немногочисленных правок ее приняли.

Эпилог

Очень важный момент, за который я всем сердцем полюбил Unreal — итеративность. Когда ты в окне сразу видишь конечный результат, а рендер минутного ролика занимает 20-30 минут, то освобождается время на творчество и эксперименты.

Некоторые сцены мы переснимали по 5-10 раз, несколько сцен мы сняли просто так, на всякий случай. Мы могли допускать ошибки и при этом не терять время на рендер, так как видели близкий к финальному результат в реальном времени.

Идея поменять привычный пайплайн с Blender, 3ds Max, Maya на Unreal Engine прямо перед началом проекта казалась сумасшедшей. Но у нас все получилось. Так что теперь для нас Unreal стал одни из инструментов для рендера роликов.

Тэги:

Комментарии