Выражения. Метод nearestKey After Effects

 

 

В After Effects метод nearestKey(t) используется в выражениях для получения ближайшего ключевого кадра (keyframe) к указанному времени t на свойстве, к которому применяется выражение.

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

 

 

//Синтаксис
property.nearestKey(t);

transform.position.nearestKey(time);

property — это анимируемое свойство, например position, opacity, rotation и т.д.
t — время в секундах (можно использовать time — текущее время композиции).
Возвращает объект Keyframe, содержащий информацию о ближайшем ключевом кадре.

После получения ключевого кадра через nearestKey(t), можно получить:

.time — время ключевого кадра
.index — порядковый номер ключевого кадра (начиная с 1)
.value — значение ключевого кадра

Отличие от key(time):
key(index) — обращение по номеру ключа
nearestKey(t) — поиск ближайшего по времени ключа

————-
4

//Выражение для свойства Позиция
nearest = transform.position.nearestKey(time);
«Nearest key index: » + nearest.index + «, Time: » + nearest.time;

Или так

«Nearest key index: » + transform.position.nearestKey(time).index + «, Time: » + transform.position.nearestKey(time).time;

—————-

nearest.time всегда возвращает время в секундах, а не кадры.
Например 6 секунд и 23 кадра при 25 fps
Чтобы перевести это в секунды:
6 + 23 / 25 = 6 + 0.92 = 6.92 секунды

————-
4

thisComp.layer(1).transform.position.nearestKey(time); //возвращает строку [object Key]

thisComp.layer(1).transform.position.nearestKey(time).value; //возвращает числовое значение ключа

thisComp.layer(1).transform.position.nearestKey(time).index; //возвращает номер ключа

thisComp.layer(1).transform.position.nearestKey(time).time; //возвращает время ключа

—————
3

Выделить ключ, ближайший к текущему времени и использовать его значение:

В композиции два слоя. Слой с интексом 1 «Text», слой с индексом 2 «Слой фигура 1» красный прямоугольник.
Свойство Непрозрачность слоя Text анимировано с помощью трех ключевых кадров.

//Выражение для свойства Исходный текст текстового слоя
thisComp.layer(1).transform.opacity.nearestKey(time).value;

//Выражение для свойства Позиция Слоя Фигура 1
x = transform.position[0] + thisComp.layer(1).transform.opacity.nearestKey(time).value;
y = transform.position[1] + thisComp.layer(1).transform.opacity.nearestKey(time).value;

[x, y];

//Выражение для свойства Непрозрачность и Поворот Слоя Фигура 1
thisComp.layer(1).transform.opacity.nearestKey(time).value;

—————
1

Поменять цвет слоя в зависимости от ближайшего ключевого кадра свойства Opacity.

Если ближайший ключ к текущему времени — с непрозрачностью выше 50%, слой будет зеленым. Если ниже — красным.

var prop = transform.opacity;

if (prop.numKeys > 0) {
var nearest = prop.nearestKey(time);
var nearestValue = prop.key(nearest.index).value;

if (nearestValue > 50) {[0, 1, 0, 1]; // Зеленый
} else {[1, 0, 0, 1]; // Красный
}
} else {[1, 1, 1, 1]; // Белый, если ключей нет
}