Выражения. Метод add(vec1, vec2) в After Effects
В Adobe After Effects метод Mach add(vec1, vec2) используется для сложения двух векторов (vec1 и vec2) в выражениях. Это полезно, например, при работе с анимацией, где нужно комбинировать движения или позиции объектов.
Метод add складывает соответствующие компоненты двух векторов. Если векторы представляют собой позиции в 2D- или 3D-пространстве, то результатом будет новый вектор, который является суммой исходных.
Список эффектов и не только After Effects
Выражения After Effects список
Справочник по JavaScript
Предположим, у вас есть два слоя в After Effects, и вы хотите, чтобы позиция одного слоя была суммой позиций двух других слоев.
Слой A с позицией posA.
Слой B с позицией posB.
Вы хотите, чтобы позиция третьего слоя C была равна сумме posA и posB.
В выражении для свойства Position слоя C напишите:
posA = thisComp.layer(«A»).position;
posB = thisComp.layer(«B»).position;
add(posA, posB)
Если posA = [100, 200] и posB = [50, 75], то результат будет [150, 275].
В 3D-пространстве, если posA = [100, 200, 0] и posB = [50, 75, 25], то результат будет [150, 275, 25].
Метод add работает с векторами одинаковой размерности (2D или 3D). Если векторы (например, 2D и 3D), недостающие компоненты заполняются нулями:
add([10, 20], [30, 40, 50]) → [40, 60, 50].
Если вы хотите сложить больше двух векторов, можно использовать вложенные вызовы add, например:
add(add(vec1, vec2), vec3)
Прозрачность
x = transform.opacity;//Мерцание изображения
y = random(-20 * time);
add(x,y);
transform.opacity * add([0], [random(0.1,1).toFixed(2)])
Поворот в перемещение
pos = transform.position;//Перемещение в зависимости от поворота управляющего слоя
angle = thisComp.layer(«Controller»).rotation;
offset = [Math.sin(degreesToRadians(angle)) * 300, 0];
add(pos, offset);
pos = transform.position;//Перемещение в зависимости от поворота управляющего слоя
angle = thisComp.layer(«Controller»).rotation;
offset = [Math.sin(angle) * 300, 0];
add(pos, offset);
pos = transform.position;//Перемещение в зависимости от поворота управляющего слоя
angle = thisComp.layer(«Controller»).rotation;
offset = [random(angle/10) * 300, 0];
add(pos, offset);
basePosition = [0, 0];
randomOffset = wiggle(5, 50); // 5 колебаний/сек, амплитуда 50px
add(basePosition, randomOffset);
basePosition = transform.position;
randomOffset = wiggle(5, 50); // 5 колебаний/сек, амплитуда 50px
add(basePosition, randomOffset);
basePosition = [time * 20, 0];// Покачивание и смещение в право
randomOffset = wiggle(5, 50); // 5 колебаний/сек, амплитуда 50px
add(basePosition, randomOffset);
Масштаб
x = transform.scale;//Масштаб
y = transform.scale;
add(random(x),y);
x = transform.scale;//Масштаб
y = 10;
add(random(x),y);
Предположим, у вас есть два слоя и вы хотите, чтобы масштаб одного слоя была суммой масштабов двух других слоев.
x = thisComp.layer (‘A’).transform.scale;
y = thisComp.layer (‘B’).transform.scale;
add(random(x),y) * 2;
Выражения для слоя
Выражение для позиции объекта
basePosition = [time * 20, 0];
randomOffset = wiggle(5, 50); // 5 колебаний/сек, амплитуда 50px
add(basePosition, randomOffset);
Выражение для мвсштаба объекта
x = transform.scale;//Масштаб
y = 10;
add(random(x),y);
x = thisComp.layer (‘A’).transform.position;
y = thisComp.layer (‘B’).transform.position;
add(x,y);
x = thisComp.layer (‘A’).transform.scale;
y = thisComp.layer (‘B’).transform.scale;
add(x,y);
x = thisComp.layer (‘A’).transform.scale;
y = thisComp.layer (‘B’).transform.scale;
add(x * 2,y * 2);
x = thisComp.layer (‘A’).transform.scale;
y = thisComp.layer (‘B’).transform.scale;
add(x,y) * 2;
x = thisComp.layer (‘A’).transform.scale;
y = thisComp.layer (‘B’).transform.scale;
add(random(x),random(y)) * 2;
x = thisComp.layer (‘A’).transform.scale;
y = thisComp.layer (‘B’).transform.scale;
add(random(x),y) * 2;