Render.ru

Принципы ротоскопинга

Григорий Чаленко

Куратор форума
Команда форума
Рейтинг
948
#1
В широком смысле, ротоскопинг - это создание 2Д или 3Д-анимации, в точности повторяющей движение отснятых реальных персонажей или предметов кадр за кадром.
В композитинге под ротоскопингом обычно понимают отрисовывание масок, выделяющих отдельные движущиеся объекты в отснятом материале.

Итак, по многочисленным просьбам,

Основные этапы нарезания масок из личного опыта:

1. Просмотреть всю секвенцию, определить, какие части объекта перекрываются и движутся в разных направлениях (ноги, руки и туловище идущего человека; выступающие элементы и кузов автомобиля, уши и нос при повороте головы) - для каждого из таких перекрывающихся объектов создать отдельную маску. Естественно, маски должны соединяться внахлест, а не встык.

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

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

Ни в коем случае не пытайтесь отрезать одной маской группу движущихся людей.

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

3. Определить, в каком кадре маскируемый объект виден наиболее отчетливо и не выходит за границы кадра - начать рисование маски с этого кадра. Старайтесь при рисовании маски использовать столько точек, сколько это действительно необходимо для передачи формы объекта - не больше. Иначе маску будет трудно анимировать.

Затем, во избежание дрожания и слишком резких движений контура, маску желательно отрисовывать в несколько проходов, создав сначала основные ключевые кадры, затем, с каждым проходом добавляя ключевые кадры, где это необходимо:

4. Во время первого прохода старайтесь уловить ключевые моменты: начало движения объекта, остановка, сильное изменение скорости. Создавайте ограниченное количество ключевых кадров соответственно.
Для правильной интерполяции анимации маски важно, чтобы каждая ее точка следовала за той частью объекта, на которой она изначально была установлена. Т.е. чтобы вершина с локтя не перемещалась на запястье, например.

5. Вторым проходом следите, как маска интерполируется между ключами и следует за движением объекта. В кадрах, где она наиболее сильно смещена относительно контура объекта, создавайте дополнительные ключевые кадры (по одному между ранее созданными ключами). Та же процедура повторяется в третий и четвертый проход.

Если маска сползает в результате нелинейного ускорения объекта, можно подогнать контур, создав ключевой кадр в окне Spline и редактированием вертикальной позиции ключевого кадра сплайна приблизить форму маски к предыдущему или последующему кадру.

Если ротоскопится вращающийся вокруг оси Z объект, нужно следить, чтоб ключевой кадр создавался, как минимум, при повороте на каждые 90°, а то и чаще.
Пространственная интерполяция положения вершин происходит между ключами линейно. Поэтому, если в соседних ключевых кадрах маска повернута на 180°, она будет менять форму не вращаясь, а сжимаясь в точку и разворачиваясь в новую форму. Этот эффект присутствует при повороте на любой угол, но чем меньше угол поворота в соседних ключах, тем меньше это заметно.

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

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

Желательно сразу установить мягкость контура SoftEdge >= 0.001, поскольку отснятое изображение никогда не бывает идеально четким.
Моушнблюр подбирается под каждый план индивидуально по кадрам с наиболее быстрым движением. Начать подбор можно с таких параметров: Shutter Angle=90, Quality=3.

Для того, чтобы в процессе ротоскопинга оценивать соответствие формы и мягкости маски, выведите на один вьюпорт исходную картинку, по которой вы отрисовываете, а на второй вьюпорт - картинку, на которой все области за пределом отмаскированных, залиты контрастным к изображению цветом или цветом, близким к вкомпаживаемому фону, а еще лучше - готовый фон. На втором вьюпорте нужно отключить отображение векторных контуров масок (Ctrl+K).

Если в качестве исходника используется DPX-секвенция, можно значительно упростить себе работу, откорректировав цвет так, чтобы контуры объекта читались наилучшим образом.
Результат можно пересчитать в полноразмерный JPEG. Секвенция будет быстрее грузиться и ее можно будет перематывать без проблем.

При работе с масками во Фьюжене используются следующие горячие клавиши:

Alt или Shift - переносить точки сплайнов по одной из осей (Constrain X/Y)

Ctrl - редактировать одну касательную безье независимо от второй

Shift - изменение длины обеих касательных безье с сохранением угла

Shift+S - сделать сегменты маски сглаженными

Shift+L - сделать сегменты маски линейными

Shift+A - выделить все точки маски

T - поворот выбранных точек относительно позиции курсора

S - масштабирование выбранных точек относительно позиции курсора

X - масштабирование выбранных точек по горизонтали относительно позиции курсора

Y - масштабирование выбранных точек по вертикали относительно позиции курсора

M - двигать точку привязки (center) маски независимо от контура

O - регулировать мягкость двухконтурной маски в выделенных вершинах или масштабировать каждую вершину относительно ее собственной нормали

W - масштабировать касательные выбранных точек безье-полигона или вес точек B-Spline

См. так же Заметки о работе с масками во Фьюжн
 

Илья Стругов

Пользователь сайта
Рейтинг
2
#6
Спасибо. Отличный урок. Недавно занимался обрабокой нескольких планов для фильма(имиджевого ролика) к юбилею. Так получилось что флаги заснял с засвеченым небом и для динамики пришлось добавлять самому облака. Люма кейер помог не полностью. Отрисовывал маски развивающихся флажков. Статья очень помогла - пропала необходимость методом самотыка догонять, как все это делать.
http://strugov.ru/df_sky_shot_2_.jpg - это скрин с моим примером и с самой мудреной схемой)
 
#9
Rotoscoping.
Советы Скотта Стюарта (Confessons of a Roto Artist: Three rules for better mattes)
http://www.pinnaclesys.com/SupportFiles/Rotoscoping.pdf

Еще можно посмотреть здесь:
http://grail.cs.washington.edu/projects/rotoscoping/
 
Сверху