Начинаем работу в Apple Shake
Часть четвертая
[ 14 ноября, 2007 г ]Автор: Олег Шарабанов

Match Move

Этот инструмент позволяет отслеживать одновременно до четырех движущихся точек и автоматически передавать их движение другим объектам. Рассмотрим простой пример работы с MatchMove. Для начала импортируйте в shake файл s4_s3.mov. Выполните просчет Flipbook и посмотрите, что представляет из себя исходный материал. После этого можете закрыть Flipbook и начинать работу.

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

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

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

Сделаем небольшое отступление и рассмотрим сам трекер.

Он имеет три основных экранных элемента управления:

1) Точка трекинга - точка, указанная пользователем, по которой, собственно, будет отслеживаться движение объекта. При выборе такой точки желательно указывать переход между контрастными частями изображения, таким образом, снижая вероятность того, что во время трекинга точка вдруг "потеряется".

2) Область ближайших точек - внутренний прямоугольник, который определяет тот диапазон пикселей, в рамках которого будет производиться ближайший анализ движения.

3) Область всех допустимых точек изображения, в которых будет производиться анализ. Чем больше области ближайших и допустимых точек, тем больше времени вам потребуется на обработку трекера.

Рассмотрим основные необходимые для работы параметры нода MatchMove:

1. TrackRange определяет весь диапазон трекинга. В данном примере этот диапазон будет определен как 1-60. Это значит, что расчет движения будет производиться от 1 до 60 кадра.

2. SubPixelResolution указывает разрешение трекинга. Для данного примера вполне достаточно 1/64. Для более точных расчетов можете повысить разрешение, но при этом увеличится время расчета.

3. ApplyTransform предназначен для включения/отключения передачи параметров движения другому объекту.

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

5. ApplyX и ApplyY и ApplyScale, ApplyRotate определяют, какие параметры будут переданы объекту, который будет привязан к этому ноду.

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

Привяжите нод Move2D и сделайте смещение звезды таким образом, чтобы она точно совпадала с верхушкой башни. Для того, чтобы сделать это визуальным методом есть небольшая хитрость: в статье, посвященной интерфейсу shake, были описаны два буфера для изображения. Воспользуемся ими для решения этой задачи. Убедитесь, что в настоящий момент активен буфер A, и перейдите на исходник с башней. После этого включите буфер B и дважды щелкните по ноду Move2D1. Pfntv включите буфер A.

Таким образом, вы должны увидеть экранные элементы управления нодом Move2D прямо поверх изображения с башней. Установите центр прямо на верхушке башни, как это изображено на снимке экрана.

Для получения результата достаточно присоединить выход нода Move2D1 к левому входу нода MatchMove1. В качестве последнего штриха добавим на полученную картинку небольшое виньетирование и хаотичное движение камеры.

Для виньетирования воспользуемся маской в виде радиального градиента. Выберите нод с исходником башни. Обратите внимание на панель параметров. Для создания маски выберем RGrad в поле Mask. Растягивайте внутренний и внешний радиусы градиента, пока не добьетесь желаемого результата. Желательно, чтобы получилось небольшое затемнение краев изображения. Во всяком случае, в любой момент можно вернуться к параметрам градиента и изменить их.

Теперь добавим движение камерыс помощью нода CameraShake, который располагается в той же вкладке Transform панели инструментов. Привяжите его к выходу MatchMove1. Параметры этого нода довольно простые: frequency и amplitude определяют частоту и амплитуду колебаний камеры.

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

Seed отвечает за генерацию случайных чисел, то есть, если вам что-то не понравилось в случайном движении камеры, вы можете заново сгенерировать случайную последовательность.

При резких движениях для большей реалистичности можно добавить замазывание движения с помощью параметра Motion Blur.

Ниже приведены параметры этого нода для данного примера:

Я установил низкую частоту колебаний (-0.06) и среднюю амплитуду (10.6), поскольку это панорамирование. Seed выставлен мной случайным образом и равен 52.3 и Motion blur = 0.557 для того, чтобы небольшое смазывание движения все же присутствовало. Чаще всего CameraShake применяют для создания псевдодинамики на статичных кадрах.

Перед выводом в файл полученного материала желательно его просто просмотреть через Shake FlipBook. Выполните просчет с помощью этого инструмента и просмотрите полученное видео в цвете и по отдельным каналам.

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

Стабилизации изображения

В этом примере мы научились добавлять движение камеры. Но в shake присутствует возможность стабилизации изображения. Сделаю оговорку и скажу, что сглаживание движений камеры уже присутствует в Final Cut Pro 6 и Motion 3, но все же в shake эта возможность представлена более гибко и требует гораздо меньшее время на обработку за счет использования трекинга, в то время как фильтр smoothcam в Final Cut Pro 6 анализирует полностью всю картинку.

Создайте новый скрипт в shake. После этого импортируйте в него файл s6.mov, который находится в исходниках. Он содержит всего 64 кадра. Установите диапазон проигрывания в соответствии с количеством кадров в исходнике. Просмотрите этот фрагмент. Он был снят мной с рук, и камера на нем крайне нестабильна.

Стабилизировать ее можно при помощи нода Stabilize. Он находится на вкладке transform в панели инструментов. Присоедините его к исходнику. Теперь необходимо выбрать количество точек для трекинга, Поскольку камера в этом кадре, который, по сути, не должен содержать ее движения, перемещается довольно интенсивно, воспользуемся самым точным, 4-точечным трекингом.

В параметрах нода Stabilize найдите пункт TrackType и выберите 4pt. В поле InverseTransform должно быть значение 0 (stabilize), поскольку наша задача – стабилизировать камеру. Второй вариант, который предусматривает этот нод – match, который привязывает камеру к выбранным точкам.

Теперь нужно определиться с точками для трекинга. Они должны выделяться на фоне остальных. Запомните, что даже небольшой мусор на асфальте может стать отличной точкой для трекера, если он достаточно выделяется среди окружающего пространства. Выбрав точки, укажите разрешение трекинга subpixel resolution 1/256 и диапазон трекинга 1-63.

Перейдите на первый кадр и выполните просчет трекинга вправо. После этого включите у нода stabilize1 параметр Apply Transform.

Выполните просчет в Shake FlipBook и посмотрите на результат. Очевидно, что в настоящий момент мы "потеряли" рамку кадра. Теперь основное движение перенеслось на нее. Чтобы решить эту проблему, нам потребуется еще один нод, который изменит видимую область материала. Этот нод называется ViewPort и находится на той же вкладке Transform в панели инструментов.

С его помощью обрежьте изображение таким образом, чтобы его эффективная область не содержала черных полос перемещения изображения. Теперь выполните render shake flipbook и просмотрите получившийся результат. Большинство типичных ошибок трекинга решаются простой сменой точек и перепросчетом. После успешной стабилизации можете вывести полученный результат в файл.

Shake поддерживает почти все те же стандарты видео, что и Final Cut Pro. То есть, если даже вы работаете в новом кодеке Apple Pro Res 422, вы можете закодировать свой выходной файл через него. Также shake поддерживает импорт широкого диапазона форматов файлов, включая Pro Res 422.

Источники: МакЦентр

Комментарии, обсуждение