Переход (Transition) линий в After Effects с помощью выражений (Expression).

Создаем новый прямоугольный шейп Rectangle Shape Layer с помощью двойного клика по инструменту Rectangle Tool в меню шейповых инструментов.

Переименуем: Shape Layer > Content > «Rectangle 1» на «01»

Добавим выражение для Shape Layer > Content > 01 > Rectangle Path 1 > Size:

[0,thisComp.height]

Для шейпового слоя выключаем Fill, и Stroke Width изменяем на 80.

Добавим два модификатора Repeater в группу «01». Для второго Repeater параметр Copies изменим на значение 2. Для второго Repeater, перейдем в transform и Position поставим на 0, а для Scale добавим выражение:

[-100, 0]

Второй Repeater переименуем в Mirror.

Добавим выражение для Shape Layer > Content > 01 > Repeater 1 > Transform > Position:

var i = content(“01”).content(“Repeater 1”).copies-1;
var w = (thisComp.width/2)/i;
[w,value[1]]
var h = easeIn(time, inPoint, inPoint + 1, -thisComp.height/i,0);
[w,h]

В переменной var h, если бы мы хотели анимацию длительностью 2 секунды, мы должны были написать inPoint + 2, или даже создать Control Expression для настройки длительности вручную с помощью ползунка.

Добавим Expression для Shape Layer > Content > 01 > Stroke 1 > Stroke Width:

Math.ceil(content(“01”).content(“Repeater 1”).transform.position[0])

Теперь, если поменять значение Copies для Repeater то шейпы будет автоматически подстраиваться так чтобы заполнить весь кадр копиями.

Добавим выражение (Expression) для Shape Layer > Content > 01  Rectangle Path 1 > Position, для создания линейной анимации:

var offset = (thisProperty.propertyGroup(3).name-1)*(4/25);
linear(time, inPoint +offset, inPoint +1 +offset, [0,-thisComp.height], [0,0])

При этом у нас будет появляться временная задержка при дублировании группы. То есть, при дублировании группы «01», и переименовании дубликата с шагом +1 (то есть дубликат группы переименуем в «02», еще раз продублируем и переименуем в «03» и так далее), мы получим задержку времени в 4 кадра между группами.

Изменим выражение для Shape Layer > Content > 01 > Repeater 1 > Transform > Position:

var i = content("01").content("Repeater 1").copies-1;
var w = (thisComp.width/2)/i;
var offset = (thisProperty.propertyGroup(4).name-1)*(1/25);
var h = linear(time, inPoint + offset, inPoint + 1.5 + offset, -thisComp.height*4/i,0);
[w,h]

Изменим Expression (выражение) для Shape Layer > Content > 01 > Stroke 1 > Stroke Width:

var w = content(“01”).content(“Repeater 1”).transform.position[0];
Math.ceil(linear(time, inPoint, inPoint +1.5, w/2,w))

Можно поменять паарметр Shape Layer > Content > Rectangle 1 > Stroke 1 > с Line Join на Round Join.

Теперь дублируем группу «01», переименуем дубликат «02», еще раз продублируем и переименуем в «03» и так далее, столько раз, сколько нам нужно.

Источник: aexpr.wordpress.com

Полноценный видеокурс по After Effects и Моушн Дизайну

Узнать подробнее...