Анимация в KAPIA


image

Добрый день! Меня зовут Павел. Я являюсь программистом и аниматором маленькой семейной команды по разработке игр. Я и моя жена делаем 3Д адвенчуру в постапокалиптическом мире. За время разработки мы изобрели свои технические “велосипеды” с которыми я хотел бы с вами поделится. Хочу начать с анимации и рассказать как мы ее делаем.

Уже много лет мы работаем в 3D пакете Softimage XSI. Хоть проект уже давно не поддерживается и закрыт, но мы до сих пор им пользуемся. Я думаю, что примерно такой же пайплайн возможно воспроизвести и в других пакетах. Поехали!

Риггинг



Для риггинга я использую Gear. Очень удобный и простой инструмент для автоматического риггинга персонажей.

image

Иногда для не человекоподобных персонажей приходится собирать риггинг вручную или модифицировать собранный с помощью Gear.

Анимация


Анимацию мы снимаем с помощью мокап костюма Perception Neuron. Все пропорции персонажей перенесены в программу от Axis Neuron (родная программа от Perception Neuron). Сначала мы пробовали использовать Motion Builder для чистки анимации. Но это отнимало слишком много времени, так как нужно использовать 3 программы(Axis Neuron -> MotionBuilder ->Softimage). Но затем стали использовать Softimage. Для этого был написан драйвер для Perception Neuron чтобы можно было его напрямую использовать в Softimage в реально времени. Чистить мокапы в Softimage оказалось очень удобно. Единственный минус это конечно проскальзывания ног. Но и этим мы быстро справились написав соответствующий плагин.

Затем чистим анимацию.

И немного пайплайна, как делаем это мы.

Процесс анимации выглядит так.

1. Сначала идет озвучка текста.

image

Как видите. Весь текст разбит по цветам(персонажы), а также у каждой фразы есть свое имя-номер(G11,R12,I13 и т.д.).

2. После озвучивания персонажей мы получаем аудиофайл, который затем помечаем маркерами.
И каждому маркеру даем то самое имя-номер.

image

3. После этого этапа идет запись мокапа и его чистка.

image

Для того чтобы анимация точно совпадала с маркерами из Adobe Audition маркеры выгружаются в csv файл такого вида:

Name Start Duration Time Format Type Description
Eye29 00:00:00:00 00:00:02:14 30 fps Cue
Ren30 00:00:02:26 00:00:04:29 30 fps Cue

4. Затем этот файл загружается скриптом в Softimage.

image

После небольшой регулировки по таймингу автоматически строится таблица всех анимаций для экспорта в Unity.

5.И далее все улетает в Unity. Вместе с файлом fbx формируется файл *.agrd

_Ren67;5832.0;5950.0
_Ren65;5601.0;5656.0
в котором лежит разметка анимации. С помощью класса наследуемого от AssetPostprocessor Unity автоматически нарезает всю анимацию, которая идеально совпадает с озвученным голосом.

Вообщем весь процесс не сложный и не отнимает много времени. На 10 минут анимации сейчас уходит примерно 5-6 часов (съемка, чистка, экспорт).

Далее идет автоматизация загрузки аудио и анимации в Unity.

Articy


Все диалоги построены в Articy:

image

image

Если посмотреть внимательнее на поля, то видно все те же названия маркеров.

Был написан импорт из Articy в Unity. Он автоматически считывает весь текст и вилки диалога и сопоставляет им аудиофайлы и анимацию так как названия аудио файлов, липсинка, анимации совпадают с названиями маркеров, которые считываются из articy.

image

Lipsync


Для липсинк�� мы используем Softimage Face Robot. Здесь есть очень удобный инструмент риггинга лица.

image

После того как риггинг построен подгружаются фонемы. Этот этап автоматизирован.

Всего их 25: 9 на звуки речи, 6 на движение и моргание глаз и 10 на мимику.

image

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

По сути анимация глаз это притреканный null объект к видео движения реального глаза.

Далее персонаж грузится в unity. И там уже все это подгружается в lypsinc.

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

Вот так вкратце устроен наш пайплайн анимации мимики и персонажей в игре. С помощью
небольших утилит и скриптов получилось идеально скрестить Unity, Articy, Axis Neuron и Softimage.

И конечный результат: