Выражения. Оператор цикла 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 не всегда хорошо обрабатывает сложные циклы, особенно если они зависят от большого количества данных. Тестируйте выражения на небольших примерах.