Использование новых методов зацикливания ключевых кадров
AE 5.5 включает четыре новых метода зацикливания ключевых кадров.
Это следующие методы:
1. loop_in(type = "cycle", num_keyframes = 0)
Зацикливает участок времени, начиная от первого ключевого кадра вперёд по направлению к точке выхода. Цикл идёт от точки входа до первого ключевого кадра слоя. Сегмент для зацикливания задаётся количеством ключевых кадров.
2. loop_out(type = "cycle", num_keyframes = 0)
Зацикливает участок времени, начиная от последнего ключевого кадра назад по направлению к точке входа. Цикл идёт от последнего ключевого кадра до точки выхода слоя. Сегмент для зацикливания задаётся количеством ключевых кадров.
3. loop_in_duration(type = "cycle", duration = 0)
Зацикливает участок времени, начиная от первого ключевого кадра вперёд по направлению к точке выхода. Цикл идёт от точки входа до первого ключевого кадра слоя. Промежуток времени до следующего цикла задаётся определённой пользователем длительностью в секундах.
4. loop_out_duration(type = "cycle", duration = 0)
Зацикливает участок времени, начиная от последнего ключевого кадра назад по направлению к точке входа. Цикл идёт от последнего ключевого кадра до точки выхода слоя. Промежуток времени до следующего цикла задаётся определённой пользователем длительностью в секундах.
Типы установочных параметров
Доступные типы приведены ниже:
1. Cycle
Повторяет определённый участок.
loop_in(type = "cycle", num_keyframes = 20)
2. Pingpong
Повторяет определённый участок, но чередует повторение вперёд и повторение назад.
loop_out(type = "pingpong", num_keyframes = 40)
3. Offset
Повторяет определённый участок, но сдвигает каждый цикл на разность величины свойства в начале и в конце участка, умноженную на число раз которое проходит цикл.
4. Continue
Не повторяет определённый участок, но продолжает создавать анимацию, основываясь на скорости в первом или последнем ключевом кадре свойства. Например, если последний ключевой кадр свойства scale показывает, что слой имеет в этой точке масштаб 100% и свойству назначено выражение loop_out(type="continue"), тогда слой вместо зацикливания продолжит увеличиваться от 100% к точке выхода. Этот тип не имеет "keyframes" или "duration" параметров.
Просмотр аргументов функций и значений по умолчанию
Меню функций выражений содержит перечень аргументов и значений по умолчанию. Это упрощает запоминание элементов, которые вы можете контролировать, когда напишите выражение.
Для примера, в меню функций есть функция wiggle, с которой приводиться перечень его аргументов wiggle(freq, amp, octaves = 1, amp_mult =5, t = time). Вводный перечень указывает, что функция wiggle имеет пять аргументов. Знак (=) в последних трёх выражениях говорит о том, что использование этих аргументов является необязательным.
Использование функции "has_parent()"
Вы можете указать в вашем выражении, что вы хотите извлечь свойство из родительского слоя. Для этого используйте функцию "has_parent()".
Пример:
idx = index;
if (has_parent)
{idx = parent.index}
this_comp.layer(idx).position.wiggle(5, 20)
Получение случайного значения независящего от времени
Используя функцию seed_random() вы можете писать выражения для получения случайного значения, которые будут зависеть от номера слоя и не зависеть от времени.
Например, следующее выражение передаёт true, как второй параметр для функции seed_random(), задающей случайное число между 0 и 1.
seed_random(<any number>, true);
r = random()
Использование атрибута ".name"
After Effects 5.5 добавляет атрибут ".name" к объектам Comp, Footage, Layer, Mask, и Effect. Это полезно, когда вы хотите применить одинаковые выражения к нескольким слоям. Изменение действия будет базироваться на имени объекта. Например, следующее выражение применяет wiggle на position слоя различно, в зависимости от того является ли данный слой слоем с именем "hero":
amp = 20;
if (name == "hero")
{amp = 40;}
wiggle(5, amp)
Доступ к ключевым кадрам и маркерам в выражениях
Сейчас вы можете писать выражения, которые имеют доступ к ключевым кадрам и маркерам. Эти выражения полезны, когда требуется, что бы свойство в определённый момент времени имело определённое значение. Для доступа к маркеру или ключевому кадру используем следующие атрибуты и методы:
- this_comp.marker(marker_num)
Возвращает время маркера композиции. Вы можете использовать это, например, для ухода слоя в 100% прозрачность.
mark_time = this_comp.marker(1);
linear(time, mark_time - 5, mark_time, 100, 0)
- num_keys
Возвращает число ключевых кадров свойства.
- key(idx)
Возвращает ключевой кадр по номеру. Например, key(1) это первый ключевой кадр композиции.
Когда вы имеете доступ к объекту key, то вы можете извлечь из него свойства time, index и value. Например, следующее выражение даёт вам доступ к свойству value третьего ключевого кадра.
position.key(3).value.
Следующее выражение, будучи написанным, на слое с анимированным свойством opacity, игнорирует значение ключевых кадров и использует только их положение во времени. Оно определяет, когда должны происходить вспышки.
d = Math.abs(time - nearest_key(time).time);
ease_out(d, 0, 1, 100, 0)
- marker
Возвращает свойство marker для слоя. Это свойство отлично от свойств типа position тем, что поддерживаются только такие методы и атрибуты как: key(), nearest_key и num_keys. Вы можете извлечь ключи двумя путями:
1. По индексу marker.key(1)
2. По имени маркера marker.key("foo")
А вот вам ещё один пример использования маркеров в выражениях:
m1 = marker.key("Start").time;
m2 = marker.key("End").time;
linear(time, m1, m2, 0, 100);
Это выражение написано на свойстве opacity и создаёт линейное нарастание непрозрачности от маркера "Start" до маркера "End".