МакЦентр: Apple компьютеры, iPod, полиграфическое оборудование, новости, обзоры, новинки мира Mac
Начинаем работу в Apple Shake [ 14 ноября, 2007 г ]
Часть четвертая

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

Tracker

Начнем с трекеров. Трекинг - это специальная технология, интегрированная в программу Shake, которая позволяет отслеживать движение на определенном участке изображения и в дальнейшем передать информацию о движущемся объекте другому объекту. В Shake существует три инструмента, использующих трекинг: Tracker, MatchMove и Stabilize.

Рассмотрим простейший пример применения трекера. Откройте файл shake4.zip и распакуйте его содержимое в определенную папку на жестком диске. Добавьте в проект с помощью нода FileIn, либо простым методом drag’n’drop файл boy1.mov. Это маленький фрагмент, показывающий проезжающего мимо камеры мальчика. Фрагмент содержит всего 20 кадров. Дважды щелкнув по ноду с добавленным клипом, откройте его в окне viewer и просмотрите.

Рассмотрим особенности трекеров на примере этого клипа. Создайте нод Tracker. Его можно найти на вкладке Transform панели инструментов. Перейдите на первый кадр и выделите нод Tracker1. По умолчанию трекер будет отслеживать движение по различию освещенности (luminance) группы точек и на основе этого анализа формировать траекторию движения заданной точки. Установите трекер как показано на рисунке.

Теперь обратите внимание на панель управления трекером, появившуюся в самом низу окна viewer.

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

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

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

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

Установите следующие параметры градиента:

radius = 60

fallofRadius = 90

fallof = 0.07

Привяжем градиент к трекеру. Чтобы это сделать, зайдите в параметры трекера. Если зайти в раздел track1Name и развернуть его, то вы увидите, что названия параметров, которые отражают текущие координаты x и y track1X и track1Y соответственно.

Откройте параметры нода RGrad1 и разверните группу center. Можно заметить, что параметры xCenter и yCenter также можно развернуть. Сделайте это. Теперь впишите в Tracker1.track1X и Tracker1.track1Y в поля xCenter и yCenter соответственно.

Включите режим отображения нодов enhanced node view с помощью сочетания клавиш Ctrl+E. Те ноды, между которыми есть прямая связь, будут отмечены обычными линиями, а ноды с передачей определенных пользователем параметров можно отличить по фиолетовой линии со стрелкой. Еще одна особенность этого режима: ноды, которые имеют ключевые кадры или изменяются с течением времени будут подсвечены.

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

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.

Основы цветокоррекции

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

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

В качестве пленки выберите Kodak Vision, а в качестве проектора - DigitalProjector. Обратите внимание, что при работе с truelight мы по умолчанию находимся в логарифмическом цветовом пространстве. Truelight также позволяет сместить точки красного, зеленого и синего цветов и тем самым немного "скалибровать" филм-принтер. Включенный inverse дает возможность просмотреть материал в негативе. Если вам хотя бы раз приходилось работать с кривыми в цветокоррекции изображения, думаю, вы оценили всю их мощь и удобство. Одна из потрясающих возможностей shake - цветокоррекция с использованием кривых. Поместите в один буфер картинку из нода truelight и привяжите нод Lookup (вкладка Color панели инструментов). Посмотрите внимательно на параметры нода и вы увидите, что для каждго канала можно включить и отредактировать свою кривую.

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

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

Помимо Lookup в Shake есть большое количество инструментов цветокоррекции. Рассмотрим работу с HueCurves. В отличие от предыдущего инструмента, который работает исключительно по каналам, HueCurves работает по оттенкам. Для начала привяжите его сразу за нодом Lookup1 и включите отображение кривой saturation.

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

Для разных целей существуют разные кривые: для обозначения предела насыщенности satlimit, для подавления отдельных каналов существуют rSuppres, gSuppress и bSuppress. gSuppress является очень эффективным при кеинге на зеленом фоне. Он помогает убрать зеленый свет от экрана, отразившийся на модели, объектах и т.п.

Для коррекции баланса белого цвета в кадре лучше всего использовать нод Mult. Через кривые с помощью нода LookupHLS можно отрегулировать оттенки, яркость и насыщенность изображения. Помимо сложных инструментов цветокоррекции, в shake присутствуют и простые: Brightness (яркость), ColntrastLum (контрастность по яркости), ColntastRGB (контрастность по каналам), AdjustHSV (настройка оттенка, насыщенности, яркости/контрастности и диапазона), Gamma (коррекция гаммы), Saturatiuon (насыщенность). Также есть и элементы, работающие непосредственно с альфа-каналом изображения: это fade и SetAlpha. Поработав с цветами, выведите этот файл в корневую папку рабочего диска через кодек Uncompressed 8-bit 4:2:2.

Заключение

Напоследок рассмотрим такую немаловажную часть работы в Shake, как ретайминг (еще этот термин называют "рапид"). В shake внедрена специальная технология, которая носит имя Optical Flow. Она предназначена для прорисовки недостающих кадров. Если вы ставите скорость клипа 40%, то в большинстве случаев движение окажется с артефактами. Втащите экспортированный прежде файл в shake. Перейдите на закладку timing в свойствах. Замедлим клип в 2 раза с использованием Optical Flow. Для этого в поле reTiming выберите значение "speed". Поскольку мы растягиваем ролик в два раза, то значение speed будет 0.5. Для использования Optical Flow следует выбрать Adaptive в поле RetimeMode. Значения параметров Motion и Deinterlacing укажите Best и Good соответственно. Значения обоих параметров, которые отвечают за точность потока (FlowSmoothness и FlowPrecision) установите на 50. Также обратите внимание на то, что изменился активный диапазон кадров ролика. Последний кадр имеет номер 126. Теперь можно выполнять окончательный просмотр и последующий просчет с отправлением в Final Cut Pro или просто в файл.


Автор: Олег Шарабанов

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