Выражения. Метод sourceTime(t = time) After Effects

 

 

В After Effects sourceTime(t = time) метод, который используется в выражениях для получения времени источника (source time) слоя. Чаще всего он применяется при работе с пре-композициями, time-remapping и связях между слоями, особенно когда нужно учитывать или синхронизировать время между разными композициями или слоями.

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

Этот пример заставляет слой начать вращаться со скоростью 100 градусов в секунду через 2 секунды после его исходной точки.

1

st = sourceTime(time) — 2; // Отсчитываем 2 секунды от начала исходного времени слоя
if (st < 0) {
value = 0; // До 2 секунды вращение равно 0
} else {
value = st * 100; // После 2 секунды вращение начинается
}

Привяжите это выражение к свойству Rotation. В отличие от использования time, здесь отсчет идет от начала исходного времени слоя, что полезно для видео с тайм-кодом.

——————————-
1
Этот пример делает слой постепенно невидимым (от 100% до 30% opacity) в течение 6 секунд от начала его исходного времени.

st = sourceTime(time);
fadeDuration = 6; // Длительность появления в секундах
Opacity = linear(st, 0, fadeDuration, 100, 30);

Привяжите к свойству Opacity. Слой начнет исчезать с момента его исходного времени, а не с начала композиции.

—————————

2
Допустим, у вас есть эффект Размытие по Гауссу и вы хотите анимировать параметр Размытость на основе исходного времени слоя.

st = sourceTime(time);
effect(«Размытие по Гауссу»)(1) + st * 20 // Преобразование времени в градусы для Размытости

st = sourceTime(time — index); // Задержка анимации по индексу слоя
effect(«Размытие по Гауссу»)(1) + st * 20 // Преобразование времени в градусы для Размытости

Привяжите к свойству Размытость эффекта Размытие по Гауссу.

——————————-

Выражение заставляет слой двигаться по оси X после 2 секунд от его исходного времени. Привяжите к свойству Position

Вариант 1

st = sourceTime(time — 2); // Задержка в 2 секунды Движение после 4 секунды времени слоя
Speed = 50; // Скорость в пикселях в секунду
if (st < 2) {
[position[0], position[1]];
} else {
[position[0] + (st * Speed), position[1]];
}

Вариант 2

st = sourceTime(time);
Speed = 50; // Скорость в пикселях в секунду //Движение после 2 секунды времени слоя
if (st < 2) {
[value[0], value[1]];
} else {
[value[0] + (st * Speed), value[1]];
}

Вариант 3

st = sourceTime(time); //Движение после 2 секунды времени слоя
if (st < 2) {
[transform.position[0], transform.position[1]];
} else {
[transform.position[0] + (st * 50), transform.position[1]];
}

Вариант 4

st = sourceTime(time) — 2; // Задержка в 2 секунды
linear(st, 0, 6, value, value + 1000); //Для свойства Позиция Х

Вариант 5
3

//Для свойства Позиция
st = sourceTime(time) — 2; // Задержка в 2 секунды
x = linear(st, 0, 6, value[0], value[0] + 1000);
y = linear(st, 0, 6, value[1], value[1]);

[x, y];

—————————-

Если вы дублируете один и тот же слой, можно сместить время его проигрывания
4
Вариант 1

Time = Math.abs(thisLayer.sourceTime(time — index));
if(time < index) {
transform.rotation;
} else {
transform.rotation + Math.floor(Time * 30);
}

Вариант 2

Time = Math.abs(thisLayer.sourceTime(time — index));
if(time < Time) {
transform.rotation;
} else {
transform.rotation + Time * 30;
}

Каждый следующий слой (по индексу) начинает анимацию на 1 секунду позже предыдущего.

———————————-
.

ourceTime(t = time) учитывает исходный тайм-код материала, если он задан, и может быть переопределен в настройках интерпретации материала (Interpret Footage).

В отличие от time, которое связано с временем композиции, sourceTime() ориентируется на время слоя, что делает его полезным для работы с обрезанными или смещёнными слоями.

Если слой не имеет тайм-кода (например, сплошной слой), sourceTime() отсчитывает время от его начала в композиции.