Маска: Создание контура объекта. Часть вторая

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

Изготовление ручной маски в большой степени похоже на создание аппликации. Только вместо ножниц в руках художника - мышка.

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

Для того, чтобы не возникало проблем с терминологией, я вкратце объясню некоторые понятия и термины.

Наиболее распространенным инструментом создания контура маски является так называемая кривая Безье. 

Кривая Безье - математическая кривая второго порядка, форма которой зависит от положения контрольных точек, через которые она проходит. Каждая точка имеет возможность перемещаться на плоскости по двум координатам. А два "уса", исходящие из контрольной точки, которые по сути являются касательными к кривой, позволяют контролировать кривизну кривой на участке вокруг контрольной точки. На конце каждого "уса" есть элемент управления, который позволяет вращать ус и изменять его длину.

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

Если кривую замкнуть соединив ее начало и конец, то она разделит плоскость на две независимые области. Любой из этих областей можно назначить прозрачность.

 

Например на рисунке выше темные области прозрачны, а светлые - нет. Тогда мы имеем две "дырки" - круглую и бананообразную. А на рисунке снизу мы решили, что все, что внутри контура - непрозрачно. То есть теперь мы имеем непрозрачные круг и банан.

 Получение масок на статичных изображениях не является трудоемкой задачей. Обычно объем работы, связанный с вырезанием масок, при таких работах занимает не самое большое время. А вот при работе с движущимися изображениями он вырастает многократно и часто становится значительным препятствием, связанным с "необозримым морем работы". Представьте себе, вырезать маски в одной картинке или в тысяче кадров! Кажется, что возникает непреодолимая пропасть.

Здесь изложены практические рекомендации по вырезанию масок. Эти правила стали результатом анализа работы художников, имеющих дело с большими объемами масок. Они выработаны для того, чтобы максимально сократить их трудоемкость.

Здесь необходимо оговориться, что, если в двух разных кадрах видеофрагмента зафиксировать положение контрольных точек и их усов, то программа сама просчитает форму кривой в промежуточных кадрах. Это называется "tweening". Результат твининга можно посмотреть на приведенной ниже анимации кривых Безье.

 

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

 

Теперь непосредственно о правилах вырезания масок, которые позволяют сократить объем работы в десятки (я не оговорился) раз.

Правила вырезания масок вручную 

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

Что обычно происходит, когда требуется вырезать некоторый объект на протяжении какого-то количества кадров? Берем видео, загружаем в программу, выясняем как резать и поехали!

Это первая самая распространенная ошибка. К чему она приводит? В какой-то момент выясняется, что объект (так бы и убил!) поворачивается самым неудачным ракурсом и его контур становится гораздо сложнее, чем казалось вначале.

Вот пример, на котором я буду показывать что правильно, а что - нет. 

Контур статуэтки собачки вначале гораздо проще, чем в конце и мои маски придется существенно усложнить, добавить много новых контрольных точек и, что еще хуже, придется возвращаться назад, к началу и там тоже поправлять, так как маска изменилась. Этот процесс в конце концов приведет к переделки всей маски.

В чем причина? В том, что мы задумываемся о проблемах только тогда, когда они уже наступили. "Гром не грянет, поп не перекрестится" - старая русская пословица. Чтение инструкции только что купленного прибора свидетельствует о том, что он не заработал, когда мы потыкали в разном порядке все кнопочки. Хорошо, если еще не сломали. Отсюда первое правило.

1. Посмотри, с чем имеешь дело

Право же несколько неудобно писать столь прописные истины. Но опыт говорит об обратном. Даже знание этих правил не страхует от нежелания зауматься о последствиях. Представьте, что вы хотите вырезать довольно много масок и вам на это потребуется скажем месяц. Сокращение работы в два раза позволит вам высвободить его половину. Пол месяца можно будет ничего не делать или, проклиная всех и вся, корпеть над ненавистными масками.

Второе правило не сложноее первого, но и оно лежит в той же области - сначала подумай, потом делай. Маску не обязательно начинать резать сразу с первого кадра. 

2. Маску надо резать с того кадра, где она наиболее сложная и полная

А чтобы это сделать, надо выполнить еще одно такое же простое правило.

3. Видеофрагмент надо разделить на куски, в которых маска ведет себя примерно одинаково

Вернемся опять к статуэтке. Видео состоит из трех участков: фас, поворот и профиль. Каждый из них занимает определенное время.

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

Теперь перейдем непосредственно к созданию масок.

Перед нами мяч. Мы обводим его, ставя контрольные точки. Обычно хочется поставить их побольше, чтобы потом иметь возможность для маневра. И это ошибка. Никакого маневра уже не требуется, если вы серьезно отнеслись к правилам 1, 2 и 3.

4. При создании контура объекта необходимо использовать МИНИМАЛЬНО НЕОБХОДИМОЕ количество контрольных точек.

Если в кадре мяч не коснется земли и не сплющится, то вполне достаточно четырех (а для особо упорных - и двух) контрольных точек.

Предположим, что я сделал десять контрольных точек, а мой соперник две. И нам предстоит вырезать сто кадров. Арифметика простая. Я подвину 1000 контрольных точек, а он 200. Разница в ПЯТЬ раз. Если предположить, что мне на одну точку потребуется одна секунда (я прямо робот какой-то), то я потрачу 1000 секунд, то есть 16 минут, а мой соперник чуть больше трех минут.

Мало того, простой маской проще управлять, меньше путаницы, куда какая точка должна перемещаться. То есть, чем проще маска, тем быстрее с ней управляешься.

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

То есть маска должна у меня принять эти два положения. Я постарался максимально упростить форму маски, то есть минимизировал количство контрольных точек, но так, чтобы их хватило и на фас и на профиль. Итак, у меня зафиксировано две формы маски. Что просчитает мне компьютер между ними?

 

Результат будет примерно таким. А я хочу получить что-то похожее на зеленый контур с нижней картинки.

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

- Можно ли этого избежать? Если не совсем, то хоть как-то уменьшить объем труда?

- Можно.

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

5. Разбиваем контур на части. Несколько простых масок лучше чем одна сложная. 

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

 Если взглянуть на количество редактирований формы масок, то мы увидим, что плотность ключей намного меньше.

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

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

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

Выглядит этот метод примерно так, как представлено на следующей картинке.

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

 

Здесь я приведу все правила вместе:

1. Посмотри, с чем имеешь дело.

2. Маску надо резать с того кадра, где она наиболее сложная и полная.

3. Видеофрагмент надо разделить на куски, в которых маска ведет себя примерно одинаково.

4. При создании контура объекта необходимо использовать МИНИМАЛЬНО НЕОБХОДИМОЕ количество контрольных точек.

5. Разбиваем контур на части. Несколько простых масок лучше чем одна сложная.  

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

Как видите эти правила довольно просты, но эффективны. Их эффективность состоит в том, что они противостоят нашим стереотипам. Мне неоднократно говорили, что "я все это знаю и умею, но мне это не нужно, я и так хорошо справляюсь". Эффектовность проверяется очень просто. Достаточно открыть проект и посмотреть на количество контрольных точек и расстановку ключей. И тогда все становится ясно, потому что это простая количественная характеристика: чтобы поставить ключ нужно время, чем больше ключей, тем больше времени потеряно.

Возможно вы окажетесь в ситуации, когда вам придется выполнить такую работу, и тогда возможно эта статья поможет вам съэкономить свое время на что-то более интересное, чем сидеть и вырезать маски.   

 

authorКОММЕНТАРИИ
ПОДПИШИТЕСЬ НА НОВОСТНУЮ РАССЫЛКУ!
Хотите получать свежую информацию о новых статьях и быть в курсе запуска учебных занятий по программе моего авторского курса? Подписывайтесь на новостную рассылку!
E-mail:
FIND US ON FACEBOOK
ОПРОС

Интересны ли вам материалы сайта?

Да, мне это интересно
Не особо
Ничего нового

САМОЕ ПОПУЛЯРНОЕ
Яндекс.Метрика