loopIn и loopOut

Сегодня мы будем лупить. Как показал опрос, не все знают, но Афтер умеет это сам, без посторонней помощи.
Здесь нам не понадобится вообще ничего, кроме стандартных экспрешшнов.

А их всего четыре. Первые два это:

Разница в том, что loopIn начинает работать от начала слоя и заканчивает с последним кифрэймом, а loopOut начинает работать от последнего кифрэйма и заканчивает на конце слоя.
numKeyframes, как несложно догадаться — это количество кифрэймов, которые будут использоваться для зацикленной анимации.

Также есть

Для них второй параметр — это длительность кусочка, который надо лупить, в секундах.

Типы

loops2

  • cycle — Стандартные луп
  • pingpong — Повторяет анимацию вперед-назад
  • offset — Лупит анимацию и каждый раз сдвигает ее на разность между начальной и конечной точкой. Чтобы лучше понять, что он делает, залупьте движение с easing’ом, любым.
  • continue — Продолжает движение со скоростью, соответствующей последнему кифрэйму. Используется без дополнительных параметров, т.е. loopOut(type = «continue»). Удобно для всяких бесконечных движений с одинаковой скоростью. Например, чтобы анимировать стрелку часов, просто поверните ее на несколько градусов и напишите loopOut(«continue»). Вуаля.

loopIn и loopOut одновременно

Иногда требуется применить и loopIn и loopOut в обе стороны, для этого можно использовать подобное выражение:

Внимание

Все эти выражения неприменимы для всего, что не может быть выражено числами или массивами. Например, для текста, формы шэйпа, гистограмм.

Если вы хотите использовать loop с path’ами, то используйте вот это выражение.

Вообще я до сих пор не понимаю, почему бы Adobe не добавить кнопочку «loop» для каждого выражения.

PS. Совершенно необходимый скрипт, который лупит, но уже в промышленных масштабах — композициями.
http://aescripts.com/the-loopmaker/

There are 6 comments

  1. Pavelusha

    Ой да ладно вам. Все можно зациклить умеючи.
    Вот пример как сделать loop на кастовом атрибуте, скажем Mask Path. Ставим ключи какие надо и пишем простенькое выражение:

    valueAtTime(time%key(numKeys).time);

    Все очень даже прекрасно зацикливается.

    1. dokluch@gmail.com

      Как идея это было еще раньше на aenchancers, а там еще раньше на блогах. Как идея, loopOut вообще описан в Expression Reference. В чем смысл сравнения дат?

Comments are closed.