Найти в Дзене
Про VFx

Про трекинг. Часть 1. Основы

Оглавление

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

Внимание, здесь происходит трекинг!
Внимание, здесь происходит трекинг!

Так что такое «трекинг»?

Tracking в общем виде (применительно к VFx) — это процесс получения информации об изменении положения о бъекта на серии кадров в пространстве. Объект, для которого такая информация получена, у нас часто называется «оттреченный».

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

Match moving (мэч мувин, или сопоставление движения) — это процесс передачи изменений положения одного объекта на серии кадров в пространстве на другой объект. Если проще: мы делаем так, чтобы трансформации нового (целевого) объекта совпадали с трансформациями исходного (отснятого) объекта. Трекинг фактически является первым этапом мэч-мувина.

Retargeting (ретаргетин) и Motion transfer (моушен трансфер) — первый термин обычно применяется в области виртуальной реальности, а второй чаще можно отдельно встретить применительно к захвату движений людей или животных (для остальных объектов часто эти процессы просто не упоминаются). В любом случае они означают перенос информации с оттреченного объекта на новый, целевой, который в итоге на сленге будет называться «притреченный» (чувствуете, да, как «великий и могучий» быстро абсорбирует новые термины?) Фактически, это второй этап работ по сопоставлению движения.

«В этом плане надо вот эту лабуду притречить к этой хрени» — руководитель проекта. «Хорошо, минут через 30 оттречу эту хрень и все скомпожу» — исполнитель.

Я честно пытался вспомнить случаи, когда все эти термины звучали в одном предложении, но чуть реже, чем всегда используется только один из них.

Motion capture (моушен капча или захват движения) — чаще всего этот термин применяется при захвате движений актера в специально оборудованной студии, чтобы затем эти движения передать на виртуального персонажа. Но если посмотреть в широком смысле, то отслеживание любого движения любого объекта автоматически или вручную, и передача его на виртуальный (или даже другой реальный) объект — также является захватом движения. С таким пониманием этого термина приходится сталкиваться крайне редко, но мне думается, что о нем не стоит забывать насовсем.

Performance capture (захват исполнения) — этот термин появился вместе с небезызвестным фильмом «Аватар». Продюсеры употребляли его в промо-материалах, подчеркивая то, что виртуальные персонажи в фильме не просто какие-то модельки — они представляют собой «цифровой грим» для актеров, которые по-настоящему сыграли своих персонажей. Технологии же позволили в точности перенести их игру на виртуальные модели. Другими словами, под захватом исполнения понимают высокоточный захват движения, в первую очередь в области лицевой мимики.

Motion control (моушен контрол или система управления движением) — это автоматизированный операторский кран, позволяющий запрограммировать движение камеры (положение в пространстве, поворот, фокусировку, работу трансфокатора) и многократно в точности его повторить.

«Вот это кран, моё почтение!» — новый оператор motion control'а.
Изображение с сайта https://www.fxguide.com/fxfeatured/echo-advanced-motion-control/
«Вот это кран, моё почтение!» — новый оператор motion control'а. Изображение с сайта https://www.fxguide.com/fxfeatured/echo-advanced-motion-control/

Зачем нужен трекинг?

Практически все задачи по визуальным эффектам требуют обработки не всего изображения целиком, а только какой-то его части: надпись должна казаться сделанной на стене, башня Уэйнов должна аккуратно располагаться в центре городского квартала, горы на заднем плане должны размещаться у самой линии горизонта и оставаться «привязанными» к ландшафту на протяжении всего плана. Даже простой черный прямоугольник, закрывающий глаза действующего лица, должен на этом лице оставаться.

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

Трекинги бывают разные

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

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

По пространственному признаку

Где движется наш объект?

Трекинг бывает двумерный (2D) и трехмерный (3D), а также всевозможные комбинации этих вариантов в различных пропорциях.

2D tracking отвечает на вопрос, как движется объект трекинга на плоскости кадра с течением времени. Для каждого кадра отслеживаемого объекта вычисляются его координаты в этом кадре, а также, возможно, относительный масштаб и угол поворота.

3D tracking отвечает на похожий вопрос, но речь идёт, как вы, наверное, уже догадались, не о пространстве кадра, а о пространстве сцены. Вычисляется не просто движение объекта на экране, а движение объекта в момент съёмки в трехмерном пространстве.

Несмотря на то, что 3D-трекинг выглядит более надёжным и, вроде бы, должен поглотить 2D-трекинг, есть нюансы: 3D-трекинг технически сложнее, он далеко не всегда бывает нужен, а большинство алгоритмов 3D-трекинга основаны именно на 2D-трекинге.

Как именно это работает, мы обсудим позже — это уже выходит за рамки «основ».

По объекту трекинга

Движение чего мы отслеживаем?

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

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

«Я — оттреченная камера, красная линия — это моя траектория, а картинка — это, типа, то, что я вижу». «А я — оранжевый крестик, точка в пространстве, которая представляет собой расположение спутниковой тарелки на крыше здания справа». «А мы — зеленые и желтые крестики-точки, которые показывают расположение других точек на здании в пространстве». «А я — центр координат», — центр координат.
«Я — оттреченная камера, красная линия — это моя траектория, а картинка — это, типа, то, что я вижу». «А я — оранжевый крестик, точка в пространстве, которая представляет собой расположение спутниковой тарелки на крыше здания справа». «А мы — зеленые и желтые крестики-точки, которые показывают расположение других точек на здании в пространстве». «А я — центр координат», — центр координат.

По типу объекта трекинга

Каков объект, который мы отслеживаем? Что он собой представляет?

Самый простой тип объекта — точка в пространстве. Это не обязательно что-то бесконечно-малое — это может быть и большой объект, расположение которого можно описать одной точкой, принятой за его условный «центр».

В отличие от точки в математике, точка-объект трекинга может также иметь угол поворота и относительный размер (масштаб) — в этом смысле такая точка, ближе к понятию «отрезка прямой» в аналитической геометрии.

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

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

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

Сложнее всего дело обстоит с трекингом поверхностей. В общем случае при трекинге поверхности нас интересует изменение каждого ее участка, каждой ее точки во времени.

Поверхность двери или стола, как правило, не вызывает сложности — это жёсткая, не деформирующаяся плоскость (поэтому я их отношу, к точкам). Но вот такие поверхности как корпус автомобиля, бумажная записка в руках персонажа, развевающийся на ветру флаг или вода в заливе, уже требуют более сложных технических (и часто творческих) решений. И, да, и такое приходится тречить довольно часто — иначе как заменить один флаг на другой, сделать надпись «Бэтмену» на конверте на разных языках или изобразить на воде растекающееся пятно?

«Спасибо, что не флаг», — компоузер, выполняющий трекинг не очень сложной поверхности
«Спасибо, что не флаг», — компоузер, выполняющий трекинг не очень сложной поверхности

По роли ручного труда

Насколько человек будет вовлечен в процесс трекинга?

Есть две крайности: ручной трекинг и автоматический. Ручной подход предполагает, что человек, просматривая материал кадр за кадром вперед и назад, вручную выставляет координаты интересующих его точек, или корректирует кривизну линии/поверхности для каждого кадра. Автоматический — что пользователь просто указывает, что хочет оттречить, а прогрммно-аппаратное обеспечение само определяет, что происходит с объектом или камерой.

На деле в чистом виде ни тот, ни другой вид почти не встречается — в подавляющем большинстве случаев это процесс где-то между.

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

Полностью автоматический трекинг тоже встречается очень редко и даже то, что обычно к нему относится, далеко не всегда им является. Наиболее близки к «полному автомату» студийные системы захвата движений (хотя, тот самый motion capture нередко приходится чистить от «шума» — мелких неточностей при захвате), игровые и VR-контроллеры, а также решения на основе нейросетей, которые в настоящее время пока что далеки от совершенства, но, тем не менее, в ряде узких задач позволяют получать интересные результаты.

Автоматический трекинг камеры технологиями на основе игровых контроллеров на съемочной площадке «Мандалорца»
Изображение с сайта https://www.fxguide.com/fxfeatured/art-of-led-wall-virtual-production-part-one-lessons-from-the-mandalorian/
Автоматический трекинг камеры технологиями на основе игровых контроллеров на съемочной площадке «Мандалорца» Изображение с сайта https://www.fxguide.com/fxfeatured/art-of-led-wall-virtual-production-part-one-lessons-from-the-mandalorian/

Точность трекинга

Теперь, разобравшись что и зачем, закономерно возникает вопрос: а действительно ли можно прям в точности воссоздать любое движение или деформацию объекта?

На самом деле, нет. На практике по-настоящему идеального трекинга не бывает (разве что отлично отрегулированный Motion control может дать точные данные, но технически это не совсем трекинг в том смысле, в котором мы его тут рассматриваем). Реконструкция движения всегда будет упираться в технические ограничения: разрешение матрицы камеры конечно и мелкие детали будут исчезать. Оптика камер не идеальна и даёт искажения — да, мы их корректируем на посте, но на 100% точно этого сделать невозможно. Даже если все идеально, вычисления производятся не с бесконечным количеством знаков после запятой, а, значит, какая-никакая погрешность все равно будет.

И это нормально. Нам и не нужен идеальный трек — нам нужен просто достаточно хороший, чтобы результат его применения смотрелся достоверно. Это, в принципе, касается и визуальных эффектов в целом (да и не только их): «Не идеально, а достаточно хорошо», — формула-залог успеха.

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

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