Выражения. Метод 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);