Motion Capture - мир движений
Здравствуйте!!!
Это второй урок по Motion Capture, первый можно посмотреть ЗДЕСЬ.
В этом уроке «Motion Capture - мир движений» я хочу рассказать о том, как сделать Motion Capture актёра, вращающегося на 360 градусов. Затем речь пойдёт об одной из самых интересных возможностей программы - Motion Capture с использованием подвижной камеры, когда одна из камер не была установлена на штатив, а съёмка «с рук» неизбежно приводит к «тряске». Так же затрону лицевой Motion Capture при вращении головы на 180 градусов. Надеюсь, у меня это получится.
И так, нам понадобится 4 камеры, в этот раз я использовал четыре разных камеры и все четыре - любительские, вот перечень моделей «Panasonic DX100, Panasonic MD9000, Sony X1000 и VHS (compact) Panasonic VX10». Кроме этого нам необходимо некоторое количество шариков для настольного тенниса (ping-pong), мне хватило 26-ти, хотя можно обойтись и меньшим количеством.
Начнём с установки камер, особых хитростей здесь нет, главное условие - маркеры должны быть, одновременно, видны как минимум в 2-х камерах, при нашем количестве камер, этого добиться несложно.
Вот что получилось у меня.
После того как отснят материал, необходимо синхронизировать его в любом видеоредакторе, для этого находим на каждом из четырёх роликов, одинаковое движение актёра, после этого просчитываем в отдельные папки, желательно в последовательность кадров. Название папок и файлов должны быть латинским шрифтом.
1. Открываем программу Movimento далее File=>New и загружаем полученный материал в программу, учитывая что первое действие будет Calibration, нет необходимости загружать все кадры, достаточно 25-ти. Устанавливаем количество кадров и скорость съёмки, у меня это 25 кадров в секунду (25 fps), тип камеры Fixed установлен по умолчанию.
2. Для удобства работы разделим окно программы на четыре части.
3. Выполняем калибровку камер (Calibration). Для этого необходимо сделать трэкинг минимум 7-ми маркеров, причём они должны быть видны одновременно во всех четырёх камерах, но при рассмотрении материала, очевидно, что мы не наберём необходимое количество маркеров на актёре. Значит, калибровку будем делать не по Motion Tracks, а по Static Tracks, найти на полу 7 контрастных точек, совсем несложно. А можно заранее подготовить маркеры на полу, но мы будем исходить из того, что у нас есть. Создаём New Track, для этого нажимаем правой кнопкой мыши на группе Static Tracks=>New Track.
4. Созданный Track устанавливаем на маркер, в данном случае это контрастная точка на полу, после этого нажимаем F3, тот же Track устанавливаем на той же точке в оставшихся трёх камерах и так же жмём F3. Как только будет сделан трэкинг 7-ми маркеров, во всех четырёх камерах, нажимаем F9 (Solve for Camera)
5. Вот что должно получиться после проделанных действий, все Track (и) зелёного цвета, это говорит о том, что трэкинг прошёл успешно, можно посмотреть насколько точно он выполнен. Нажимаем левой кнопкой мыши на любом из Track и если всё было сделано правильно, видим как калибровочные линии пересекаются по центру маркера, значит цель достигнута.
6. Сейчас выполняем калибровку по маркерам, расположенным на актёре, т. е. по Motion Tracks, это необходимо для более точного результата. Мы воспользуемся возможностью программы, которая позволяет проводить трэкинг маркеров видимых всего лишь в двух камерах, из четырёх. Но это можно делать только после того как будет сделан трэкинг 7-ми маркеров, видимых во всех четырёх камерах, что мы и делали перед этим. И так нажимаем правой кнопкой мыши на Motion Tracks и создаём New Track, (это мы уже делали с группой Static Tracks) устанавливаем полученный Track на любом маркере, расположенном на актёре. Но калибровочная линия не проходит по центру того же маркера в других окнах. Несмотря на это нужно разместить Track в центре маркеров и сделать трэкинг, нажав F3, мы видим что Track стал красного цвета, такой результат нас никак не устраивает, но на это не обращаем внимание и жмём F9, калибровка сделает своё дело и выровняет Track по центру маркеров.
7. Делаем трэкинг некоторого количества маркеров, находящихся на актёре, в данном случае были использованы все маркеры, напомню, трэкинг можно делать в любых двух камерах, из четырёх. Особых сложностей здесь нет, потому что загружено всего 25 кадров и актёр не делает полного оборота, но для калибровки этого достаточно. После всех действий мы увидим, что все наши Track (и) зелёного цвета и калибровочная линия проходит по центру маркеров, это именно то, что нам нужно. Когда трэкинг всех маркеров сделан, жмём F9.
8. Самое время экспортировать полученный результат калибровки, File=>Export Calibration, присваиваем имя файлу и жмём «СОХРАНИТЬ»
9. Не выходим из программы, создаём новый проект File=>New, загружаем материал, на этот раз необходимо загрузить всю длину, у меня длина составляет 150 кадров, опять разбиваем окно на 4 части, затем импортируем, только что полученный, файл калибровки. Import Calibration.
10. После импорта калибровки в верху меняется значение с Calibration на Motion и появляются новые группы Motion Tracks (2) и Static Tracks (2), это группы с калибровочными Track (ами). Следующие действия будут, практически, такими же как при калибровке. Начинаем с создания Track, нажимаем правой кнопкой мыши на Motion Tracks, далее New Track.
11. Созданный Track устанавливаем на любой маркер. Можно найти кадр, в котором один из маркеров, одновременно будет виден в четырёх камерах, нажимаем левой кнопкой мыши на Track и в увеличившемся окне (Tracking Monitor) увидим, что калибровочные линии каждой из камер, пересекаются в центре маркера, это результат точной калибровки и сам Motion Capture также будет точным.
12. Учитывая, что актёр вращается на 360 градусов, это приведёт к тому, что часть маркеров будет исчезать, а потом опять появляться в поле зрения камер, поэтому необходимо указывать где маркер исчез и где появился. В данном случае окна 1 и 3, это камеры находящиеся с одной стороны от актёра, а окна 2 и 4-камеры находящиеся с другой стороны, исходя из этого мы и будем расставлять Track (и) на маркерах. Начинаться трэкинг будет в окнах 1 и 3, а его продолжение будет в окнах 2 и 4.
Переходим в нулевой кадр и устанавливаем Track на одном и том же маркере в окнах 1 и 3, но F3 для трэкинга маркера, пока не нажимаем.
13. Далее находим последний кадр, в котором маркер ещё виден в окнах 1 и 3, но при этом тот же маркер уже должен быть виден в окнах 2 и 4, в данном случае это кадр 35 и снова в 35-ом кадре устанавливаем тот же Track на тот же маркер в окнах 1 и 3, затем нажимаем правой кнопкой на Track, далее Set Key=>End или жмём F7, это необходимо сделать как в окне 1, так и в окне 3, таким образом указываем что в кадре 35 трэкинг закончится. Теперь сделаем трэкинг маркера в окнах 1 и 3, в указанном отрезке, т. е. с нулевого по 35-й кадр. Нажатием левой кнопки мыши, делаем активным окно 1, если мы по прежнему находимся в 35-ом кадре, то трэкинг можно сделать в обратном направлении, нажав Shift+F3, если перейти в нулевой кадр, тогда нажимаем F3, тоже самое делаем и в окне 3, процесс трэкинга сам остановится в том кадре, где был указан конец действия трэкинга (End), в данном случае это кадр 35. Двигаемся дальше, учитывая что тот же маркер уже виден в окнах 2 и 4, продолжение трэкинга будет производиться именно в этих окнах. В том же 35-ом кадре устанавливаем тот же Track на тот же маркер, но здесь необходимо указать начало трекинга, поочерёдно в окне 2 и 4 нажимаем правой кнопкой на установленный Track далее Set Key=>Begin или жмём F5, так мы указали что с кадра 35 трэкинг будет начинаться в окнах 2 и 4. F3 пока не нажимаем.
14. Опять находим последний кадр, в котором маркер ещё виден в окнах 2 и 4, но при этом тот же маркер уже виден в окнах 1 и 3, в данном случае это кадр 84, устанавливаем тот же Track на те же маркеры и повторяем уже знакомые действия, в окнах 2 и 4 указываем конец трэкинга Set Key=>End или жмём F7, а в окнах 1 и 3 указываем начало трэкинга Set Key=>Begin или жмём F5, на этом установка Track завершается, потому что до конца таймлайна активными остаются окна 1 и 3. И опять необходимо сделать трэкинг для следующего отрезка, с кадра 35 до кадра 84, поочерёдно переходим в окна 2 и 4, нажатием F3 (вперёд с кадра 35 по 84) или Shift+F3 (назад с кадра 84 по 35) таким образом производим трэкинг отрезка с кадра 35 по кадр 84 в окнах 2 и 4. А завершится трэкинг опять в окнах 1 и 3, для этого переходим в кадр 84 и поочерёдно в окнах 1 и 3 жмём F3, трэкинг остановится в конце таймлайна. Таким образом мы сделали Motion Capture одного маркера.
15. Перейдём в 3D проекцию, для этого нажмём в левом верхнем углу Viewport значок и увидим движение нашего Track, он двигается по своему пути, повторяя вращение актёра.
16. Перемещаясь по таймлайну, устанавливая ключевые кадры, назначая им End или Begin, производим трэкинг всех маркеров. После того как будет выполнен трэкинг всех маркеров нажимаем Solve For Camera или F9
17. Это результат трэкинга всех маркеров, находящихся на актёре, все Track (и) зелёного цвета, что говорит о точном захвате движения маркеров.
18. В финале таймлайн будет выглядеть примерно так, в шахматном порядке, от начала к середине трэкинг в окнах 1 и 3, в середине таймлайна - в окнах 2 и 4 и от середины до конца, опять в окнах 1 и 3.
19. Небольшое дополнение. Может получится так, что исчезновение и появление маркера будет не в том порядке, например маркер в окне 3 может исчезнуть раньше, чем в окне 1, а в окне 2 может появиться позже, чем в окне 4, в таком случае действия остаются абсолютно такими же, но меняется последовательность установки Track, это может быть любая комбинация, любых двух окон.
20. Сейчас необходимо установить условную поверхность, для этого в группе Static Tracks создаём New Track, устанавливаем его на контрастной точке, находящейся на полу, нажимаем F3, действия повторяем для всех четырёх камер, после этого, при выделенном Track, нажимаем Set Ground Plane.
21. Что бы увидеть результат необходимо соединить Track (и). Переходим в 3D проекцию, нажимаем на значок , затем создаём New Relation, в правой части появятся две колонки, Outside со всеми Track и Inside - пустое, с помощью стрелки переносим из Outside в Inside последовательность Track (ов) и назначаем им тип Line.
Что касается вращения на 360 градусов, на этом всё.
На первый взгляд, действия по расстановке Track могут показаться сложными и запутанными, но это только на первый взгляд. Если набраться терпения и внимательно пройти шаг за шагом, то всё окажется довольно просто.
В следующей части урока речь пойдёт о там, как сделать Motion Capture с одной подвижной камерой и тремя неподвижными. На мой взгляд это самая интересная возможность программы, она даёт свободу действий и более широкие возможности для Motion Capture. В общем действия не отличаются от предыдущих, единственное, что необходимо сделать-отследить путь подвижной камеры. Как обычно начинаем с импорта нашего видео и так же делим рабочее окно программы на 4 части.
22. Калибровку камер будем проводить по первому кадру, создадим в группе Static Tracks новый Track и установим его на полу, находим контрастную точку и устанавливаем на неё созданный Track, делаем это во всех четырёх камерах, конечно лучше расставить маркеры на пол, но этого сделано не было, поэтому будем пользоваться тем что есть. Далее создадим ещё 6 Track (ов) и так же установим их на разные точки, находящиеся на полу, 7 Track (ов) это необходимый минимум, при этом нужно соблюдать одно условие, все 7 точек должны быть одновременно видны во всех 4-х камерах, после расстановки Track (ов) F3 не нажимаем, а сразу переходим к Solve For Camera или F9, после этого мы увидим наши Track (и) зелёного цвета, но это только лишь первый кадр, если мы попытаемся сделать трэкинг всей длины, то из-за подвижной камеры, все Track (и) «разлетятся».
23. Теперь нам нужно получить информацию о движении камеры, в данном случае подвижной камерой является камера 1. Для этого создадим новый Track, установим его на полу в камере 1 и нажмём F3 для трэкинга всей длины, больше этот Track не трогаем и продолжаем работу только в камере 1, желательно создать большое количество Track (ов), трэкинг этих маркеров не нужно делать в остальных камерах. После того, как в подвижной камере расставлены Track (и) на маркеры, сделан трэкинг этих маркеров, мы видим, что новые Track (и) красного цвета и «разлетелись» в разные стороны, между тем общие Track (и), во всех четырёх камерах остаются зелёными.
24. Что бы это исправить, необходимо добавить вычисление новых Track (ов) к первым 7-ми, которые были созданы во всех четырёх камерах. Для этого надо нажать Refine Solution или Shift+F9 так новые данные добавятся к уже имеющимся. После этого все Track (и) станут зелёными. Если включить воспроизведение, мы увидим что Track (и) остаются зелёными на протяжении всей длины, в подвижной камере.
25. Так будет выглядеть результат, после проделанных действий. Общие Track (и), сделанные по первому кадру во всех камерах и новые, сделанные только в подвижной камере, на протяжении всей длины-зелёные.
26. Мы получили путь по которому движется камера, это видно на анимации слева. Иначе информация о камере была бы как о неподвижной, видно на анимации справа.
27. Для чего нужны были действия, по вычислению траектории подвижной камеры? Рассмотрим две анимации. Слева анимация с трэкингом только подвижной камеры, видно как выделенный Track, в подвижной камере, смещается, но при этом, тот же Track, установленный на том же маркере, но в неподвижной камере, находится на месте и калибровочные линии всех камер так же не перемещаются, это именно то, что нужно для успешного Motion Capture. Если же не выполнить действия по вычислению траектории, в таком случае мы получим результат, показанный на анимации справа, выделенный Track в подвижной камере смещается, при этом тоже самое происходит в остальных камерах, Track и калибровочные линии «разлетаются» в стороны. Естественно при таких условиях Motion Capture будет не точным.
28. Непосредственно Motion Capture актёра, делаем точно так же как описано выше (разделы 12-14), действия ничем не отличаются. Вот что мы получили в финале. Если нажать то можно увидеть результат в 3D проекции.
29. Экспортируем полученные данные в 3D пакет, в данном случае это 3D Max.
Если при съёмке все камеры были подвижными, в таком случае необходимо получить информацию о движении каждой из камер. Сначала проводим калибровку всех камер по первому кадру с необходимым количеством Track (ов), для Movimento это 7 Track (ов) далее для каждой камеры, отдельно проводим трэкинг всей длины, допустим создаём 10 Track (ов) в камере 1, нажимаем F3, трэкинг готов, далее создаём ещё 10 новых Track (ов) в камере 2 и также проведём трэкинг для этой камеры, те же действия необходимо повторить для всех камер. Таким способом можно получить данные не только о движении камер, но и об изменении фокусного расстояния до актёра.
Что касается Body Motion Capture на этом всё.
Сейчас рассмотрим лицевой Motion Capture, хотя в интернете есть достаточное количество информации, всё же мне хочется немного рассказать об этом. В основном лицевой Motion Capture делается для переноса мимики на 3D персонаж, для этого достаточно и двух камер, учитывая что актёр не вращает головой, несложно установить камеры так, что бы все маркеры одновременно были видны в двух камерах, как на картинке.
Но что если данные движения нужны для совмещения реального актёра с 3D объектом, а если при этом актёр вращает головой, в таком случае двух камер недостаточно, да и трёх тоже мало, при вращении головой часть маркеров будут исчезать из поля зрения какой-нибудь из камер, естественно что трэкинг исчезающих маркеров будет невозможен. Для такой задачи понадобится 4 камеры.
Начинаем с нанесения маркеров, нарисовать их можно или косметическим карандашом, но его тяжело смыть, или же краской для грима, сейчас везде продаются детские наборы с таким гримом, его легче нанести и так же легко смыть. Камеры нужно установить так же как и в предыдущий раз, маркеры одновременно должны быть видны, как минимум в двух камерах.
30. Как обычно начнём с калибровки камер, загружаем созданные и синхронизированные последовательности, в этом случае так же нет необходимости загружать всю длину, достаточно 20 - 25 кадров и разделяем окно программы на четыре части. Затем необходимо найти 7 маркеров, одновременно видимых из всех четырёх камер, естественно что это можно сделать только в одном кадре, из-за вращения головы часть маркеров будут пропадать. Если калибровку проводить в одном кадре, тогда необходимо создать Track в группе Static Tracks, что мы и сделаем. После расстановки всех семи Track (ов) в каждой из четырёх камер F3, для трэкинга не нажимаем.
31. Переходим к Solve For Camera или F9, таким образом получаем калибровку камер по первому кадру.
32. Сейчас у нас появилась возможность продолжить калибровку в двух камерах из четырёх. Переходим в группу Motion Tracks, создаём New Track и устанавливаем его на маркер в камерах, находящихся с одной стороны от актёра, в данном случае это камеры 1 и 4, благодаря калибровке по первому кадру, калибровочные линии проходят по центру других маркеров. Далее нажимаем F3. Повторим эти действия для всех маркеров, которые находятся на одной части лица.
33. Переходим в камеры 2 и 3 и повторяем все действия, устанавливаем Track (и) нажимаем F3, после трэкинга всех маркеров, мы получим более точные данные калибровки.
34. Экспортируем файл калибровки, не выходя из программы создаём новый проект и опять загружаем четыре последовательности, но уже необходимо загрузить всю длину, затем импортируем, только что сохранённый, файл калибровки.
Приступаем к трэкингу маркеров. Переходим в группу Motion Tracks, далее New Track и устанавливаем его на маркер. В увеличенном окне (Tracking Monitor) видим как калибровочная линия проходит по центру маркера, значит и в этот раз Motion Capture будет точным. После установки Track в камерах 1 и 4, нажимаем F3, как только будет сделан трэкинг всех маркеров в камерах 1 и 4, повторяем действия для камер 2 и3.
35. После того, как был сделан трэкинг каждой части лица отдельно, получаем такой результат.
36. Нажимаем Solve For Camera или F9 и перейдём в 3D проекцию здесь можно увидеть то, что в итоге получилось.
37. Экспортируем полученные данные в 3D пакет.
38. Таким же образом можно сделать захват движения кисти руки, для этого достаточно двух камер. Все действия абсолютно одинаковы. Импортируем материал, разделяем рабочее окно программы на две части.
39. Далее необходимо сделать калибровку камер и затем сам Motion Capture.
40. После проделанных действий переходим в 3D проекцию, для этого нажимаем на значок . С помощью Point Relation соединяем Track (и). В финале экспортируем полученные данные в 3D пакет.
Всё, программу Movimento можно закрыть и перейти в 3D пакет.
41. Открываем 3D Max. Переходим в Utilities далее MAXScript=>Run Script и выбираем сохранённый скрип.
42. После загрузки данных в 3D пакет, можно удалить группы калибровочных точек, они не нужны, оставляем только группу Motion Tracks. Смотрим на результат. 1-вращение актёра, 2-использование подвижной камеры, 3-вращение и мимика, 4-движение кисти руки.
43. Полученные данные можно использовать как для анимации 3D персонажа, так и для совмещения 3D объекта с реальным актёром. Создаём 2 сплайна, применим модификатор Spline IK Control нажимаем Create Helpers и полученные Point Helper привязываем к нужным точкам. Если в свойствах сплайна установить галочку Enable In Renderer, затем просчитать часть анимации в формат TGA (к примеру), мы получим последовательность кадров нашей анимации.
44. Открываем программу Adobe After Effects, импортируем только что сохранённую последовательность TGA и материал подвижной камеры с актёром, который использовался для Motion Capture, этот же материал переносим на таймлайн, далее создаём Null объект, для этого на таймлайн нажимаем правой кнопкой мыши, далее New=>Null Object, затем переходим в закладку Window и устанавливаем галочку напротив Tracker Controls, в появившемся окне Tracker Controls нажимаем на Track Motion и устанавливаем галочки для Position и Rotation, появятся два Track Point, устанавливаем их на контрастные точки, находящиеся на полу в противоположных краях, затем нажимаем стрелочку Analyze, после окончания трэкинга, заходим в Edit Target выбираем Null 1 и в конце нажимаем Apply, таким образом для Null Object были присвоены данные трэкинга, теперь он повторяет движения камеры.
45. Создадим новый слой, нажимаем правой кнопкой мыши на таймлайн, далее New=>Solid, он должен быть над слоем с актёром, с помощью Pen Tool создаём маску, на новом слое, так чтобы маска была чуть больше ног актёра, в свойствах маски можно размыть края, изменяя параметры Mask Feather и Mask Expansion, что бы не было чётких границ. Выделяем слой с актёром, что бы он был активным, переходим в Track Matte (TrkMat) и установим Alpha Inverted Matte, после этих действий ноги актёра будут «вырезаны».
46. Подложим фон вместо ног актёра, учитывая то, что фон не был снят отдельно, можно взять первый кадр с актёром и в Photoshop с помощью Clone Stamp «закрасить» ноги и приблизительно восстановить рисунок на полу, полученный файл так же импортируем в After Effects и перенесём его на таймлайн, слой с фоном должен быть самым нижним. Все эти действия проводились в первом кадре, но наша камера является подвижной, а при воспроизведении маска и слой с фоном останутся неподвижны, что бы это не происходило, привяжем слой с маской (Solid) и слой с фоном к Null 1, который повторяет движения основного слоя с актёром, благодаря трэкингу. Переходим в Parent, выбираем нужные слои и с помощью Pick Whip, связываем с Null 1. В конце переносим на таймлайн последовательность TGA, созданную в 3D Max.
47. Смотрим на результат проделанных действий. Слой с маской и слой с фоном, повторяют движения основного слоя с актёром, заменяя собой «вырезанные» ноги.
На этом урок заканчивается.
Надеюсь, урок получился полезным. Что хотелось бы добавить, конечно же, применение данных Motion Capture намного обширней. Многих действий можно избежать, если подготовиться к съёмке и заранее продумать весь процесс. Если иметь в распоряжении павильон и технические средства для съёмки, в таком случае времени ушло бы в десятки раз меньше и актёр смог бы свободно перемещаться, а не находиться на одном. Но нельзя забывать, что материал снимался в домашних условиях и без подготовки.
Спасибо за уделённое внимание.