Треугольные переходы (Transitions) в After Effects с помощью выражений (Expression).
Создаем новый эллипс шейп Polygon Shape с помощью двойного клика по инструменту Polygon Tool в меню шейповых инструментов.
Для параметра Polygon Path points мы поставим количество сторон на 3, создав треугольник.
Переименуем основную шейповую группу на “01″.
Добавим выражение (Expression) для Shape Layer > 01 > Polygon Path 1 > Radius:
(2/3)*thisComp.height
Это выражение будет масштабировать размер треугольника, чтобы она соответствовала высоте композиции.
Добавим выражение (Expression), чтобы центрировать треугольник для Shape Layer > 01 > Polygon Path 1 > Position:
[0,(1/6)*thisComp.height]
Добавим Repeater в Group.
У Repeater изменим Rotation на 180.
Для Position у Repeater добавим выражение (expression):
var r = thisProperty.propertyGroup(4).content(“Polystar Path 1”).outerRadius;
var a =3*r/Math.sqrt(3);
[a/2,value[1]]
Это выражение будет каждую итерацию (смотрите график нише, соотношение между радиусом и сторонами треугольника).
Для Copies у Repeater добавим выражение (expression), для заполнения всего экрана (смотрите график выше):
var r = thisProperty.propertyGroup(3).content(“Polystar Path 1”).outerRadius; var a = 3*r/2/Math.sqrt(3); thisComp.width/a*2
Добавим выражение для Position у Group “01”, чтобы компенсировать позицию левого края кадра:
var p = thisProperty.propertyGroup(2).content(“Polystar Path 1”).outerRadius;
[-thisComp.width/2,-thisComp.height/2+p*(3/2)]
Добавим выражение для Anchor Point у Group “01”, чтобы сместить позицию к левому краю кадра:
var r = thisProperty.propertyGroup(2).content(“Polystar Path 1”).outerRadius; var p = thisProperty.propertyGroup(2).content(“Polystar Path 1”).position[1]; [value[0], r-p]
Добавим второй Repeater ниже первого Repeater.
Изменим Expression (выражение) для Polygon Path > Position:
[0,(1/6)*thisComp.height/thisProperty.propertyGroup(3).content("Repeater 2").copies]
Изменим Expression (выражение) для Polygon Path > Outer Radius:
(2/3)*thisComp.height/thisProperty.propertyGroup(3).content("Repeater 2").copies
Для второго Repeater 2, добавим выражение (expression) на параметр Position:
var r = thisProperty.propertyGroup(4).content(“Polystar Path 1”).outerRadius;
var a = r*3/Math.sqrt(3);
[-1.5*a, r*3/2]
Изменяя Copies второго Repeater, оно будет автоматически изменять размер всех шейпов по размеру экрана.
Первому Repeater 1 > End Opacity ставим на 50%.
Для анимации, изменим выражение для параметра Copies у Repeater 1:
var r = thisProperty.propertyGroup(3).content("Polystar Path 1").outerRadius; var a = 3*r/2/Math.sqrt(3); linear(time,inPoint,inPoint+1,0,(thisComp.width/a)*2)
Чтобы добавить временную задержку между дублированными экземплярами, изменим последнюю строку выражения на:
var offset=(thisProperty.propertyGroup(4).numProperties – thisProperty.propertyGroup(3).propertyIndex)*10/25;
linear(time,inPoint +offset,inPoint +1 +offset,0,(thisComp.width/a)*2)
Теперь дублируем группу “01”, переименуем дубликат “02”, еще раз продублируем и переименуем в “03” и так далее, столько раз, сколько нам нужно.
Источник: aexpr.wordpress.com