Итак... о том, как был, в итоге, сделан проект:
На входе мы имеем стандартное видео и фотографию 2048х3072 точки.
Создаем новую композицию, (точнее...прекомпозицию), и обзываем её photo. Размер 270х576 точек. В оную кидаем Фотографию и уменьшаем её до размеров композиции.
Создаем основную композицию, в которую кидаем исходное видео, (слой video), + сверху photo.
На слое video вешаем 2 трекера по углам рамки, (в процессе трекеры пришлось корректировать, потому как из-за бликов они постоянно съезжали куда-либо).
На слой photo кидаем эффект Corner Pin. Верхние углы эффекта намертво привязываем к соответствующим трекерам. Далее на этот же слой навешиваем Expression Controls>Angle Control. Выделяем параметр Angle и нажимаем Shift+Alt+=.
Теперь пишем следующий скрипт:
xa=effect("Corner Pin")("Upper Left")[0];
ya=effect("Corner Pin")("Upper Left")[1];
xb=effect("Corner Pin")("Upper Right")[0];
yb=effect("Corner Pin")("Upper Right")[1];
if ((ya-yb)>0) {u1=radiansToDegrees(Math.atan((xb-xa)/(ya-yb)))} else {u1=radiansToDegrees(Math.atan((xa-xb)/(yb-ya)))};
if (u1<0) {u1=ress+180};
u1
На выходе к параметру Angle присваивается угол прямой a-b относительно оси Y. Далее создаем ещё один Expression Controls>Angle Control. Здесь мы будем сами указывать угол u2.
Теперь там же из Expression Controls создаем ещё 2 Point Control'a и 2 Slider Control'а. Слайдеры будут отвечать за len1 и len2, (я выставил 200 и 220 соответственно). Собственно Point Control'ы - это и будут наши точки "c" и "d", (кстати сразу же можем намертво привязать нижние углы эффекта Corner Pin к этим параметрам).
Далее... на первую точку кладем следующий скрипт:
u1=degreesToRadians(effect("Angle Control")("Angle"));
u2=degreesToRadians(effect("Angle Control 2")("Angle"));
len1=effect("Slider Control")("Slider");
ya=effect("Corner Pin")("Upper Left")[1];
xa=effect("Corner Pin")("Upper Left")[0];
yc=(len1*Math.sin(u1+u2)) + ya;
xc=(len1*Math.cos(u1+u2)) + xa;
[xc, yc]
На выходе получаем координату.
На второй Point Control так же навешиваем похожий скрипт с "поправкой на ветер":
u1=degreesToRadians(effect("Angle Control")("Angle"));
u2=degreesToRadians(effect("Angle Control 2")("Angle"));
len2=effect("Slider Control 2")("Slider");
yb=effect("Corner Pin")("Upper Right")[1];
xb=effect("Corner Pin")("Upper Right")[0];
yd=(len2*Math.sin(u1+u2)) + yb;
xd=(len2*Math.cos(u1+u2)) + xb;
[xd, yd]
Вуаля! Дальше остается только лишь покадрово расставить ключи к Angle Control 2... наложить украшательства типа цветокоррекции и Directional Blur'а... по возможности навесить блики... всё. Фото живёт как влитое.
P.S. Если кто предложит иные варианты решения - буду только рад! Но... сразу примечание... Boujou данный материал не берет, ибо человек с рамкой в руках перемещается по кадру, при этом поворачивая её под разными углами; и вручную точки C и D выставлять бессмысленно, ибо вживую всё очень криво выглядит.
P.P.S. Жаль, кстати, идея Digital Lion'а не получила продолжения... получилось бы интересное задание для его "пузомерки". Результат трудов можно увидеть тут.
Пароль: profile
Сообщение отредактировано DRA: 14 Nov 2006 - 14:00