Выражения. Метод toComp(point, t = time) в After Effects

 

 

Метод toComp в Adobe After Effects позволяет преобразовывать координаты из локального пространства слоя (Layer Space) в пространство композиции (Comp Space), можно использовать для создания анимаций, когда нужно синхронизировать движение или положение одного слоя относительно другого.

 

Список эффектов и не только After Effects
Выражения After Effects список

 

 

Синтаксис
toComp(point, t = time);

point: Массив координат [x, y] (для 2D) или [x, y, z] (для 3D) в локальном пространстве слоя.
t: Время (по умолчанию текущее time), позволяет задавать координаты для определённого кадра.

Возвращает координаты точки в пространстве композиции, учитывая трансформации слоя (позиция, поворот, масштаб и т.д.).

———-
1

Получение позиции верхнего левого угла слоя

thisComp.layer(«Сплошная заливка Зеленый 3»).toComp([0, 0]); //Для слоя 300 на 300 пикселей

thisComp.layer(«Сплошная заливка Красный 1»).toComp([0, 0]); //Для слоя 1280 на 720 пикселей

Выражения вернут координаты верхнего левого угла слоя в системе координат композиции

———
3

Выражения для слоя и фигуры

thisComp.layer(«Слой-фигура 1»).transform.position.value;
thisComp.layer(«Слой-фигура 1»).transform.anchorPoint.value;
thisComp.layer(«Слой-фигура 1»).content(«Прямоугольник 1»).transform.position.value;
thisComp.layer(«Слой-фигура 1»).content(«Прямоугольник 1»).transform.anchorPoint.value;

———
5

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

toComp([0, 0]);

———-
2

Использование toComp() для связи с другим слоем
Чтобы переместить слой в позицию центра другого слоя с учётом его трансформаций

target = thisComp.layer(«Собака»);
target.toComp([target.width / 2, target.height / 2]);

transform.position + time * 100; //Выражение для анимации Положения по оси Х Собака

———
4

Анимация следования за опорной точкой другого слоя

Добавьте слой фигуры (круг) и слой фигуры (прямоугольник).
Примените выражение к свойству Position круга:

var target = thisComp.layer(«Квадрат»); // Слой с прямоугольником
target.toComp(target.anchorPoint);

transform.position — ( time * 100); Выражение для анимации положения слоя Круг по оси Х

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

———

Если вы хотите добавить задержку или плавность, используйте valueAtTime или linear

transform.position — ( time * 100); //Выражение для анимации свойства Позиция слоя Квадрат

Выражения ниже используются для свойства Положение слоя Круг

var target = thisComp.layer(«Квадрат»);
var targetPos = target.toComp(target.anchorPoint);
linear(time, 3, 6, transform.position, targetPos); // Плавное следование с 3 секунды до 6

или вот так

linear(time, 3, 6, transform.position, thisComp.layer(«Квадрат»).toComp(thisComp.layer(«Квадрат»).anchorPoint)); // Плавное следование с 3 секунды до 6

Выражения для свойства Положение слоя Круг. Разные варианты

var target = thisComp.layer(«Квадрат»);
target.toComp(target.anchorPoint, time — 2); // Задержка на 2 секунды

var target = thisComp.layer(«Квадрат»);
target.toComp(target.anchorPoint, random(3));

var target = thisComp.layer(«Квадрат»);
target.toComp(target.anchorPoint, Math.sin(time) * 2);

Использование valueAtTime для получения значений свойств в заданное время. Выражение для свойсвта положение слоя Круг

var target = thisComp.layer(«Квадрат»);
var targetPos = target.transform.position.valueAtTime(time + 1);
target.toComp(targetPos, time + 1);