В этой статье я расскажу как анимировать персонажа с помощью MoCap данных, полученных с использованием ipi mocap studio и 2х сенсоров Kinect.
Для этого понадобятся:
1-2 сенсора Kinect
iPi Studio, iPi Recorder
Autodesk Motionbuilder 2013 лучше, но я использую 2012, т.к. 2013 у меня не работает
Часть 1. Получение MoCap данных
Калибрация
Устанавливаем iPi Studio и iPi Recorder, подключаем Kinect. Более подробно об этом можно прочитать на wiki ipisoft инструкция для старой версии программы, в последней версии настройка происходит немного иначе.
Для того чтобы получать MoCap данные с 2х сенсоров, необходимо записать видео для калибрации Сенсоры могут быть расположены в 2х конфигурациях:
- Угол между сенсорами 30-90 градусов:
- Угол между сенсорами 110-180 градусов:
Для калибрации используется картонка/дощечка размером от 0,5м. в ширину (рекомендуется 1м. — 1,3м.) и от 0,7м. в длину (рекомендуется 1 — 1,5м.) Калибрационная поверхность должна быть хорошо видна с каждого сенсора. Так неправильно:
Важно: желтый цвет на карте глубины означает, что сенсор не может различить глубину в этих точках. Нужно, чтобы их было как можно меньше.
Важно: если изменить положение сенсоров их надо будет заново калибровать.
- Запускаем iPi Recorder, выбираем 1-2 кинекта в качестве устройства для записи
- Далее программа анализирует фон, в области видимости сенсоров должны быть только неподвижные объекты
- Жмем на Start, встаем и держим картонку так, чтобы она была видна с каждого сенсора. Нужно поводить картонкой в разные стороны, при этом ее поверхность должна быть видна с обоих сенсоров. Э
- Жмем Stop
- Открываем iPi Studio -> New project -> выбираем видео которое только что записали -> Calibration project -> calibrate based on 3d plane -> Ждем -> Scene -> Save Scene
Запись движений и импорт анимации
- Запускаем iPi Recorder
- Далее программа анализирует фон, в области видимости сенсоров должны быть только неподвижные объекты
- Жмем на Start, встаем в T-позу на 2-3 секунды, воспроизводим движение которое хотим записать
- Жмем Stop
- Открываем iPi Studio -> New project -> выбираем видео которое только что записали -> Action project -> если видео записывалось с нескольких камер нужно будет открыть scene полученную ранее -> Выбираем кадр с хорошей T-позой -> смотрим как начать MoCap, мне удобно когда выключено видео и убран фон (в view)
- Жмем Export -> import target character -> импортируем biped из 3dmax Теперь при просмотре видео рядом с человечком, повторяющим ваши движения, будет виден скелетик
- Жмем Export animation и сохраняем файл в формате fbx
Часть 2. Анимирование персонажа
- Запускаем Motionbuilder -> Window -> Actor/Character controls — я открываю это окошко в самом начале, потому что если открою после импорта персонажа у меня падает motionbuilder
- Открываем файл с fbx анимацией (File -> Open)
- Далее нам нужно сделать characterization, более подробно об этом можно прочесть тут, также есть в motionbuilder есть learning movies (adding animation)
- Window-> Asset Browser -> Templates -> Перетаскиваем значок Character на скелетик -> characterize -> biped
- Перетаскиваем в рабочее пространство своего персонажа либо из Asset Browser -> Merge -> No animations либо File -> Merge -> в колонке справа убираем все галочки
- В Character Controls выбираем своего персона, смотрим как делать дальшеЖмем Animation -> Plot All -> Plot
Сохраняем
Можем импортировать персонажа в unityipistudio распознает даже лежачего человека, комментарий разработчиков: «трекинг в положениях, близких к полу, не является сильной стороной iPi Mocap — даже в 6-ти камерной системе наблюдаются сбои и ошибки распознавания. Но в целом на движениях типа отжиманий, упор-присест — упор-лежа и даже кувырки работает сносно (периодически теряя то одну руку, то ошибаясь с положением ноги). Желательно одну из камер (а то и обе — поэкспериментируйте) поставить повыше: метра на полтора от пола.»
Успехов.
Автор: gerberka89