Экспорт MoCap данных в Unity3d

в 14:42, , рубрики: Kinect, motion capture, unity3d, Анимация и 3D графика, Игровые приставки, метки: , ,

В этой статье я расскажу как анимировать персонажа с помощью 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 градусов:
    imageimage
  • Угол между сенсорами 110-180 градусов:
    imageimage


Для калибрации используется картонка/дощечка размером от 0,5м. в ширину (рекомендуется 1м. — 1,3м.) и от 0,7м. в длину (рекомендуется 1 — 1,5м.) Калибрационная поверхность должна быть хорошо видна с каждого сенсора. Так неправильно:

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

  1. Запускаем iPi Recorder, выбираем 1-2 кинекта в качестве устройства для записи
  2. Далее программа анализирует фон, в области видимости сенсоров должны быть только неподвижные объекты
  3. Жмем на Start, встаем и держим картонку так, чтобы она была видна с каждого сенсора. Нужно поводить картонкой в разные стороны, при этом ее поверхность должна быть видна с обоих сенсоров. Э
  4. Жмем Stop
  5. Открываем iPi Studio -> New project -> выбираем видео которое только что записали -> Calibration project -> calibrate based on 3d plane -> Ждем -> Scene -> Save Scene

Запись движений и импорт анимации

  1. Запускаем iPi Recorder
  2. Далее программа анализирует фон, в области видимости сенсоров должны быть только неподвижные объекты
  3. Жмем на Start, встаем в T-позу на 2-3 секунды, воспроизводим движение которое хотим записать
  4. Жмем Stop
  5. Открываем iPi Studio -> New project -> выбираем видео которое только что записали -> Action project -> если видео записывалось с нескольких камер нужно будет открыть scene полученную ранее -> Выбираем кадр с хорошей T-позой -> смотрим как начать MoCap, мне удобно когда выключено видео и убран фон (в view)
  6. Жмем Export -> import target character -> импортируем biped из 3dmax Теперь при просмотре видео рядом с человечком, повторяющим ваши движения, будет виден скелетик
  7. Жмем Export animation и сохраняем файл в формате fbx

Часть 2. Анимирование персонажа

  1. Запускаем Motionbuilder -> Window -> Actor/Character controls — я открываю это окошко в самом начале, потому что если открою после импорта персонажа у меня падает motionbuilder
  2. Открываем файл с fbx анимацией (File -> Open)
  3. Далее нам нужно сделать characterization, более подробно об этом можно прочесть тут, также есть в motionbuilder есть learning movies (adding animation)
  4. Window-> Asset Browser -> Templates -> Перетаскиваем значок Character на скелетик -> characterize -> biped
  5. Перетаскиваем в рабочее пространство своего персонажа либо из Asset Browser -> Merge -> No animations либо File -> Merge -> в колонке справа убираем все галочки
  6. В Character Controls выбираем своего персона, смотрим как делать дальшеЖмем Animation -> Plot All -> Plot
    Сохраняем
    Можем импортировать персонажа в unity

    ipistudio распознает даже лежачего человека, комментарий разработчиков: «трекинг в положениях, близких к полу, не является сильной стороной iPi Mocap — даже в 6-ти камерной системе наблюдаются сбои и ошибки распознавания. Но в целом на движениях типа отжиманий, упор-присест — упор-лежа и даже кувырки работает сносно (периодически теряя то одну руку, то ошибаясь с положением ноги). Желательно одну из камер (а то и обе — поэкспериментируйте) поставить повыше: метра на полтора от пола.»

    Успехов.

Автор: gerberka89

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js