Выражения. Параметр duration в After Effects

 

 

В After Effects параметр duration чаще всего относится к длительности композиции или анимации. Это свойство можно использовать в разных контекстах, например, в настройке времени воспроизведения или в выражениях для динамического управления эффектами.

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

В Adobe After Effects свойство thisLayer.duration не работает напрямую, потому что у объекта слоя (Layer) в выражениях After Effects нет атрибута duration. Это связано с тем, как After Effects обрабатывает слои. Длительность слоя не является фиксированным свойством, доступным через выражения

Допустим, у вас есть слой текста, и вы хотите, чтобы он автоматически исчезал через половину общей длительности композиции. Вы можете добавить выражение к свойству Opacity

if (time < thisComp.duration / 2) {
100;
} else {
0;
}

Здесь thisComp.duration — это длительность всей композиции. Если длительность композиции 10 секунд, текст будет виден 5 секунд, а затем исчезнет.

Изменение прозрачности от 100% до 0% к концу длительности композиции

// Для свойства Opacity:
linear(time, 0, thisComp.duration, 100, 0);

Функция linear интерполирует значение от 100 до 0 на основе текущего времени и длительности композиции.

 

//Заставьте объект вращаться на 360° за время длительности композиции

rotation = time / thisComp.duration * 360;

time — текущее время в слое, thisComp.duration — всей композиции. Анимация завершит полный оборот к концу композиции

 

// Пример для свойства «Position»
startPosition = [100, 100]; // Начальная позиция
endPosition = [500, 500]; // Конечная позиция
linear(time, 0, thisComp.duration, startPosition, endPosition);

 

Пульсация масштаба, повторяющаяся 3 раза за длительность композиции:

// Для свойства ScaleX :
cycleFreq = 3; // Количество циклов
amp = 100; // Амплитуда колебаний
value + [amp * Math.sin(time * (cycleFreq * 2 * Math.PI) / thisComp.duration)];

//Для свойства ScaleX и свойства ScaleY
cycleFreq = 3; // Количество циклов
amp = 100; // Амплитуда колебаний
x = value[0] + [amp * Math.sin(time * (cycleFreq * 2 * Math.PI) / thisComp.duration)];
y = value[1] + [amp * Math.sin(time * (cycleFreq * 2 * Math.PI) / thisComp.duration)];
[x, y];

//Синусоидальная анимация масштаба, завершающая ровно 3 цикла к концу слоя.

 

Объект перемещается на 1000 пикселей вправо и исчезает к концу длительности композиции:

// Для Position:
startPos = [0, 360];
endPos = [1000, 360];
linear(time, 0, thisComp.duration, startPos, endPos);

// Для Opacity:
linear(time, 0, thisComp.duration, 100, 0);

Оба свойства изменяются синхронно, завершая анимацию одновременно.

 

Задержка анимации на 3 секунды, затем движение:

// Для Position:
delay = 3; // Секунды
if (time >= delay) {
linear(time — delay, 0, thisComp.duration — delay, [0, 360], [800, 0]);
} else {
[0, 360];
}

//Для эффекта размытие
X = linear(time, 0, thisComp.duration, 0, 200);
effect(«Быстрое размытие»)(1) + X;