Выражения. Свойства 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, чтобы создавать плавные или условные эффекты.