Выражения. Метод 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]; // Белый, если ключей нет
}