В рамках официального сотрудничества с компанией Unity мы продолжаем публиковать переводы статей о создании проектов на Unity 5. В этот раз рассмотрим этапы работы над анимацией, а также расскажем о подходе к созданию пост-эффектов, аудио и видео для короткометражки The Blacksmith.



Вы также можете ознакомиться с предыдущей статьей из серии Making Of, посвященной концепту и художественному оформлению. Все статьи о создании The Blacksmith можно найти на специальной страничке проекта.

Поэтапная работа над анимацией

Шаг первый: пре-визуализация

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

Благодаря такому подходу мы смогли рассчитать временные рамки, выполнить итерации сцен и ракурсов, а также внести некоторые правки. Таким образом, мы получили представление о динамике фильма уже на раннем этапе. Кроме того, мы смогли намного эффективнее ставить задачи сторонним подрядчикам и руководить производственным процессом.

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

Motion Capture

Для исполнения ролей героев ролика мы наняли шведскую студию каскадеров и mocap-специалистов Stuntgruppen, которые не только превосходно справились со своей задачей, но и дали нам много полезных советов касательно тех или иных сцен. Прежде чем перейти непосредственно к motion capture, у нас было несколько совместных репетиций.
Съемки на площадке Imagination Studios в Упсале прошли как по маслу. Превиз доказал свою пользу, послужив хорошим ориентиром для всех участников. А возможность увидеть результат на экране в реальном времени еще больше упростила нашу задачу.



Этапы работы над анимацией

Работа над анимацией состояла из следующих этапов:

• Подготовка ригов и джоинтов для дополнительного управления в системе Maya HIK;
• Экспорт ригов в формате fbx в Motionbuilder;
• Motion capture и перенос отснятого материала на риги в Maya;
• Создание лицевой анимации;
• Симуляция волос и одежды на дополнительных цепях джоинтов;
• Анимация дополнительных объектов, их регулировка и экспорт в формате fbx в Unity;
• Все риги были импортированы с установленным типом Generic; по карте имен джоинтов мы добавили к ним анимацию в инструменте Unity timeline/sequencer;
• Анимация камер была выполнена преимущественно в Motionbuilder; импортированные дубли добавлялись к камере рендера в Unity путем переноса на временную шкалу секвенсора.

Настройка в Unity

Приступив к работе в Unity, мы должны были первым делом настроить риги. Для двух главных ригов мы использовали настройку Generic Rig и выполнили автоматическое сопоставление привязанных к ним джоинтов для организации и оптимизации сцен.

Затем мы начали обрабатывать шоты в Scene Manager, но каждый шот всегда ссылался на один из двух главных ригов. По этой причине названия джоинтов должны были соотноситься 1/1 для более эффективного перенаправления. Итак, мы собрали шоты из большого количества fbx-файлов и расставили их по временной шкале так, чтобы они указывали на главных персонажей в сцене. В итоге временная шкала состояла из следующих проигрываемых элементов: Character Track, Camera Track, Prop Track, Event Track, Switcher/Shot Manager Track.

Симуляция одежды, волос и дополнительных джоинтов

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



Джоинты на лице соединяют глаза с элементом управления look at; остальные джоинты вокруг челюсти были использованы для соединения бороды с лицевыми вертексами с помощью данного метода риветинга в Maya.

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

Сборка отснятого материала mocap в студии

После съемок мы воссоздали отснятый материал в режиме Story в Motionbuilder.

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

Весь фильм был разделен на несколько основных сцен (отдельных fbx-файлов), а именно: «Кузница–горизонт», «Горизонт–противник», «Битва героев» и «Колодец». Такая организация сцен значительно упростила работу с файлами. На этом этапе все fbx-файлы уже содержали весь необходимый контент для финальной настройки и последующего экспорта в Unity. Затем мы разделили диапазоны дубль/кадр в инструменте импорта Unity.

Следующий шаг заключался в замене всего контента из превиза отснятым mocap-материалом, что позволило импортировать в Unity предфинальную анимацию. Это нужно было сделать как можно быстрее, чтобы перейти к окончательной настройке арта, освещения и спецэффектов.

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



Финальный экспорт в Unity

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

Вы можете посмотреть ролик ниже, чтобы сравнить разные стадии разработки, начиная от раскадровки и вплоть до финальной версии фильма.



Эффекты камеры

В рамках этого проекта мы хотели придать ролику кинематографическое изображение, поэтому в каждом шоте были использованы типичные для кино пост-эффекты, в частности некоторые стандартные эффекты Unity: Depth of Field, Noise and Grain, Vignette and Bloom.

image

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



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

Вот как выглядели настройки камеры в одном из шотов:




Для усиления кинематографического эффекта мы решили симулировать классический процесс переноса фильма на фильмокопию. Для этого мы импортировали скриншоты из Unity в DaVinci Resolve — внешнее приложение для профессионального видеопроизводства — и выполнили в нем цветокоррекцию и тональную компрессию. Там же мы создали таблицу поиска, которую затем импортировали в Unity и конвертировали в пользовательский эффект изображения. Во время выполнения этот эффект конвертировал линейные данные в логарифмическое распределение, которое затем прогоняли через таблицу поиска. Таким образом, мы объединили цветокоррекцию и тональную компрессию в один процесс.



Аудио

Саундтрек представляет собой аудиодорожку, импортированную в Unity и синхронизированную по временной шкале секвенсора. При написании и синхронизации трека композитор руководствовался офлайн-рендером — специальным превью к ролику. Для создания нужной атмосферы он ориентировался на песню Ilmarinen’s Lament, которую мы лицензировали у американо-шведского инди-музыканта Тео Хаколы (Theo Hakola), и также дополнил ее элементами собственного сочинения.

Видео

Мы хотели, чтобы эта короткометражка была целиком и полностью создана в Unity — без какой-либо постобработки и редактирования. Для этого мы разработали отдельный инструмент для покадрового рендеринга в установленном временном интервале. Затем каждый кадр был загружен в память кодировщика H.264, сопоставлен с аудиопотоком и записан в формате mp4 на диск. И наконец, финальная версия ролика была загружена прямиком на YouTube.

На этом все. Следите за обновлениями в нашем блоге, а тем временем обязательно зайдите на специальную страничку The Blacksmith.

Комментарии (4)


  1. StrangerInRed
    06.08.2015 15:24

    Вам не кажется, что это не похоже на подробные гайды? Или в оригинале статья такая?


    1. o_nix
      06.08.2015 15:56

      Но ведь это и не гайд, это история о том, как было сделано промо-видео технологии/платформы?


    1. Darina_PL
      06.08.2015 19:33

      Кажется, о подробных гайдах речь и не шла. Статьи прямиком из официального блога Unity.


  1. lifestar
    07.08.2015 11:47

    По моему, переводить LUT как таблицу поиска неверно!
    Таблица преобразований тогда уж — а лучше оставить оригинал — LUT