Выражения. Оператор цикла for After Effects

 

 

В выражениях Adobe After Effects оператор for используется для создания циклов, позволяющих выполнять повторяющиеся операции. С помощью оператора for можно обрабатывать массивы, выполнять вычисления для нескольких элементов или создавать сложные анимации.

 

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

 

 

for (инициализация; условие; обновление) {
// код, выполняемый в цикле
}
Инициализация: задаёт начальное значение счётчика (например i = 0).
Условие: проверяется перед каждой итерацией (например, i < 10).
Обновление: выполняется после каждой итерации (например, i++).

——
1

s = «»;
for ( i = 0; i <= 10; i++) {
s = s + i;
}

Вернет строку 012345678910

s = «»;
for ( i = 0; i <= 10; i = i + 1) {
s = s + i;
}

——
1

s = 0;
for ( i = 0; i <= 10; i = i + 1) {
s += i;
}

Вернет сумму всех целых чисел от 0 до 10 включительно. Результат 55

—-
1

s = 1;
for ( i = 1; i <= 6; i++) {
s *= i;
}

Вычисляет факториал числа 6 обозначается как 6!

s = 1 × 1 = 1
s = 1 × 2 = 2
s = 2 × 3 = 6
s = 6 × 4 = 24
s = 24 × 5 = 120
s = 120 × 6 = 720

Результат будет 720

——
1

s = «»;
for ( i = 1; i <= 5; i++) {
s += i + » «;
}

Возвратит строку с пробелами от 1 до 5

——
6

Слой двигается по оси X с шагом 100 каждый раз, когда time переходит в новый целый кадр

x = 0;
for (i = 0; i < time; i++) {
x += 100; // каждый целый кадр — сдвиг на 100
}[x, value[1]];

——
6

//Использовать for для создания волнообразного движения:
var ampl = 50;
var freq = 2;
var sum = 0;
for (var i = 0; i < 5; i++) {
sum += Math.sin(time * freq + i);
}[position[0] + time * 70, position[1] + sum * ampl];

——-
4

Предположим, вы хотите суммировать значения прозрачности нескольких слоёв в композиции

sumOpacity = 0;
for (var i = 1; i <= thisComp.numLayers; i++) {
sumOpacity += thisComp.layer(i).transform.opacity;
}
sumOpacity = sumOpacity + » Opacity «;

Или так написать

sumOpacity = 0;
for (var i = 1; i <= thisComp.numLayers; i++) {
sumOpacity += thisComp.layer(i).transform.opacity;
}
sumOpacity += » Opacity » + thisComp.numLayers + » Layer»;

sumOpacity = 0: Инициализирует переменную для хранения суммы.

thisComp.numLayers: Возвращает общее количество слоёв в текущей композиции.

thisComp.layer(i).transform.opacity: Получает прозрачность каждого слоя.

Цикл добавляет прозрачность каждого слоя к sumOpacity.

Последняя строка (sumOpacity) возвращает результат

Старайтесь минимизировать количество итераций в цикле, так как сложные выражения могут замедлить рендеринг.
After Effects не всегда хорошо обрабатывает сложные циклы, особенно если они зависят от большого количества данных. Тестируйте выражения на небольших примерах.