Выражения. Свойства inPoint outPoint After Effects

В After Effects inPoint и outPoint — это свойства слоя, которые определяют время начала и конца слоя в композиции (в секундах). Они часто используются в выражениях для автоматизации анимации, управления временем или создания динамических эффектов

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

Если вы хотите, чтобы анимация начиналась ровно в момент появления слоя в композиции, можно использовать inPoint.

// Пример для свойства «Position»:
if (time >= inPoint) {
// Анимация начинается с inPoint
value + [500, 0]; // Сдвигаем позицию на 500 пикселей вправо
} else {
value; // Оставляем исходное значение до начала слоя
}

// Пример для свойства «Position» смещение начала анимации на 2 секунды
if (time >= inPoint + 2) {
// Анимация начинается с inPoint
value + [500, 0]; // Сдвигаем позицию на 500 пикселей вправо
} else {
value; // Оставляем исходное значение до начала слоя
}

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

// Пример для свойства «Rotation»:
startAngle = 0; // Начальный угол
endAngle = 360; // Конечный угол
linear(time, inPoint + 2, outPoint — 2, startAngle, endAngle);

Можно добавить задержку перед началом анимации, используя inPoint.

// Пример для свойства «Position»:
delay = 3; // Задержка в секундах
if (time >= inPoint + delay) {
// Анимация начинается через 3 секунды после inPoint
value + [0, 100]; // Сдвигаем позицию вниз на 100 пикселей
} else {
value; // Оставляем исходное значение до начала анимации
}

Допустим, вы хотите, чтобы позиция слоя начала изменяться через 1 секунду после его появления.
Пример выражения для свойства «Position» (позиция):

startTime = inPoint + 1; // Начало анимации через 2 секунды после inPoint
if (time < startTime) {
value; // Оставляем начальную позицию
} else {[value[0] + (time — startTime) * 100, value[1]]; // Движение вправо со скоростью 100 пикселей в секунду
}

Можно использовать разницу между inPoint и outPoint, чтобы создать анимацию, зависящую от длительности слоя.

// Пример для свойства «Opacity»:

opacityValue = linear(time, inPoint, outPoint, 0, 100);
duration = outPoint — inPoint; // Длительность слоя
opacityValue = linear(time, inPoint, duration, 0, 100);

// Пример для свойства «Opacity» с задержкой в 3 секунды в начале слоя

opacityValue = linear(time, inPoint, outPoint, 0, 100);
duration = outPoint — inPoint; // Длительность слоя
opacityValue = linear(time, inPoint + 3, duration, 100, 0);

Если нужно, чтобы анимация остановилась в outPoint, можно использовать условие.

// Пример для свойства «Position»:
if (time < outPoint — 5) {
// Анимация продолжается до outPoint
value + [time * 100 — inPoint, 0]; // Сдвигаем позицию вправо
} else {
// Останавливаем анимацию
value + [outPoint — inPoint, 0];
}

Вы можете использовать inPoint и outPoint другого слоя. Пример выражения для свойства «Rotation»

otherLayer = thisComp.layer(«Слой-фигура 2»); // Ссылка на другой слой
t = time — otherLayer.inPoint; // Время относительно inPoint другого слоя
if (t >= 0 && time < otherLayer.outPoint) {
t * 90; // Вращение на 90 градусов в секунду в пределах длительности другого слоя
} else {
0; // Нет вращения вне диапазона
}

Вращение текущего слоя зависит от времени существования другого слоя между его inPoint и outPoint.
inPoint и outPoint измеряются в секундах относительно начала композиции.
Эти свойства можно изменять вручную в таймлайне (растягивая слой мышкой), и выражения будут учитывать новые значения.

// Изменение значения Blur эффекта в зависимости от времени существования другого слоя между его inPoint и outPoint.

otherLayer = thisComp.layer(«Слой-фигура 2»); // Ссылка на другой слой
t = time — otherLayer.inPoint; // Время относительно inPoint другого слоя
if (t >= 0 && time < otherLayer.outPoint) {
effect(«Быстрое размытие»)(1) + 1 * t * 50; // Происходит быстрое размытие
} else {
effect(«Быстрое размытие»)(1) * 0; // Размытие не происходит
}

&& — это логический оператор. Он используется для проверки, истинны ли оба условия одновременно.

Используйте их с функциями вроде linear(), ease(), или условиями if, чтобы создавать плавные или условные эффекты.