Замедление (Delay) и циклы (Loop) с помощью выражений (Expression) в After Effects.
Начало работы
Создаем новый шейповый слой, внутри создаем Group, Path любой (Ellipse например), и Fill
Переименуем Group шейпового слоя в “01”
Анимируем Position свойство для группы “01”
Delay (Задержка, замедление)
Дублируем группу “01” и удаляем для дубликата анимация Position
Добавим контроллер слайдер для шейпового слоя Effect > Expression Control > Slider Control
Добавим выражение для Shape Layer > Group(“02”) > Transform > Position
var i = thisProperty.propertyGroup(2).name; // название группы хранится в этой переменной var pos = thisProperty.propertyGroup(4).content(“01”).transform.position; // позиция группы 01, или используйте Pickwhip var delay = effect(“Slider Control”)(“Slider”); // храним значение слайдера pos.valueAtTime(time+(i-1)*delay) // сдвиг по времени значения свойства Position
Установим значение для слайдера.
Продублируем 02 группу столько раз, сколько нужно.
Если без слайдера, то можно вместо последних двух строк использовать выражение: pos.valueAtTime(time-(i-1)*5/25)
Где 5 кадров деленное на 25 кадров (25 кадров у нашей композиции)
Простая циклическая анимация
Для группы 01 Position, к которой ранее добавляли анимацию, не удаляя ключевые кадры, добавим выражение:
loopOut()
Теперь перейдем к тому кадру где вы хотите закончить цикл и добавим ключевой кадр:
Цикл Modulo
Удалим ключевые кадры для Shape Layer > Group (“01”) > Transform > Position, дабы заменить анимацию с помощью выражения.
Добавим выражение для Shape Layer > Group (“01”) > Transform > Position:
var delay = Math.abs(effect("Slider Control")("Slider")); var i = (thisProperty.propertyGroup(3).numProperties-1); linear(time%(2+delay*i), 0, 2,[-1080,0],[1080,0])
Если вы хотите сделать анимацию сглаженной то замените последнюю строку выражения на:
ease(time%(2+delay*i), 0, 2,[-1080,0],[1080,0])
Источник: aexpr.wordpress.com