Выражения. Метод linear(t, tMin, tMax, value1, value2) в After Effects
Метод linear(t, tMin, tMax, value1, value2) в After Effects используется для линейной интерполяции значений между двумя диапазонами. Он позволяет создавать плавные анимации, изменяя значение свойства от value1 до value2 в зависимости от времени или другого параметра.
Список эффектов и не только After Effects
Выражения After Effects список
Плавное изменение прозрачности слоя от 20% до 80% за 10 секунд.
linear(time, 0, 10, 20, 80);
Здесь time — текущее время в секундах, 0 и 10 — начальное и конечное время, 20 и 80 — начальное и конечное значения прозрачности
Создание обратного отсчета от 10 до 0 за 10 секунды
n = linear(time, 0, 10, 10, 0);
Math.floor(n); //Math.floor(n) используется для округления значения до ближайшего меньшего целого числа, чтобы отображались только целые значения
Для создания анимации текста, где число увеличивается от 0 до 100 за 5 секунд:
t = linear(time, 0, 5, 0, 100); //Этот код создает эффект счетчика
Math.floor(t)
Этот код можно применить к свойству Position, чтобы создать плавное движение
Перемещение слоя по оси X от 0 до 500 пикселей за 10 секунды.
linear(time, 0, 10, 0, 500); //Разделить положение на Х и У. Применить к положению Х
x = transform.position[0] + linear(time,0,10,0,500); // Положение для оси Х
y = transform.position[1];[x,y];
Для перемещения слоя по оси X от 0 до 900 пикселей за 3 секунды:
x = linear(time, 0, 3, 0, 900); //Этот код создаст плавное движение слоя по горизонтали[x, value[1]]
x — новое значение положения по оси X.
value[1] — сохраняет текущее значение по оси Y.
x = transform.position[0] * 0 + linear(time,0,10,0,1000); // Положение для оси Х. Положение объекта в нулевом кадре по оси Х равно 0 пикселей
y = transform.position[1];[x,y];
Линейное изменение позиции слоя по двум осям.
x = linear(time, 0, 3, 0, 1000); //Этот код изменяет позицию слоя по осям X и Y одновременно
y = linear(time, 0, 3, 0, 300);[x, y];
Линейное изменение масштаба по двум осям.
scaleValue = linear(time, 0, 3, 50, 200); //Этот код изменяет масштаб слоя по обеим осям X и Y одновременно[scaleValue, scaleValue]
Для создания циклической анимации, например, пульсации масштаба:
t = time % 2; // Цикл каждые 2 секунды
scaleValue = linear(t, 0, 1, 50, 150);[scaleValue, scaleValue]
Масштаб будет пульсировать между 50% и 150% каждые 2 секунды
Вращение слоя от 0 до 360 градусов за 50 кадров.
currentFrame = timeToFrames(time);
linear(currentFrame, 0, 50, 0, 360);
Здесь текущий кадр используется для управления вращением слоя
Для изменения положения слоя в 3D-пространстве:
x = linear(time, 0, 3, 0, 500);
y = linear(time, 0, 3, 0, 300);
z = linear(time, 0, 3, 0, 200);[x, y, z];
Слой будет перемещаться по всем трем осям за 3 секунды
Допустим, вы хотите, чтобы масштаб слоя изменялся в зависимости от его положения по оси X.
Примените выражение к параметру Scale:
scaleValue = linear(position[0], 0, 500, 30, 200);[scaleValue, scaleValue];
position[0] — текущее положение слоя по оси X.
0 — минимальное положение (tMin).
500 — максимальное положение (tMax).
30 — минимальный масштаб (value1).
200 — максимальный масштаб (value2).
temp = effect(«Элемент управления «Ползунок»»)(«Ползунок»);[temp, temp]
temp = thisComp.layer(«Корректирующий слой 1»).effect(«Элемент управления «Ползунок»»)(«Ползунок»);
Использование слайдера для управления масштабом слоя.
Здесь значение слайдера (от 0 до 100) используется для изменения масштаба слоя по оси Х от 50% до 200%
temp = thisComp.layer(«Корректирующий слой 1»).effect(«Элемент управления «Ползунок»»)(«Ползунок»);
x = linear(temp, 0, 100, 50, 200);
y = value[1];[x, y];
Масштаб для осей Х и У
temp = thisComp.layer(«Корректирующий слой 1»).effect(«Элемент управления «Ползунок»»)(«Ползунок»);
x = linear(temp, 0, 100, 50, 200);
y = linear(temp, 0, 100, 50, 200);[x, y];
Метод linear можно использовать для связывания свойств слоев. Например, если вы хотите, чтобы вращение одного слоя влияло на прозрачность другого:
Rotation = thisComp.layer(«Корректирующий слой 1»).rotation; //Этот код связывает вращение одного слоя с прозрачностью другого
linear(Rotation, 0, 360, 0, 100);