Выражения. Метод 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() отсчитывает время от его начала в композиции.