Выражение (Expression) соединенных линий (Line Connectors) в After Effects.
Начало работы
Перейдем в меню View и активируем Show Grid (включаем отображение сетки) и Snap to Grid (включаем привязку в нашей сетке)
Нарисуем шейповую линию (включен только Stroke, fill отключен) из центра композиции +100px вправо
Переименуем шейповый слой на “line”
Создаем два шейповых слоя и переименуем их в “from” и “to”. В эти шейповые слои добавим Ellipse Path и Fill. Убеждаемся в том что якорные точки этих слоев, расположены по центру слоя. Один слой (слой “from”) мы перемещаем в левую часть композиции, а второй слой (слой “to”) в правою часть композиции.
Expression (выражение)
Добавим выражение шейповому слою “line”. На параметр Shape Layer “line” > Shape 1 > Transform: Shape 1: Position
fromComp(thisComp.layer(“from”).transform.position)
Это выражение привязывается в position слоя “from”.
Добавим выражение шейповому слою “line”. На параметр Shape Layer “line” > Shape 1 > Transform: Shape 1: Scale
var from = thisComp.layer(“from”).transform.position; var to = thisComp.layer(“to”).transform.position; [length(from,to),value[0]]
Здесь строка “[length(from,to),value[0]]” – оценивает расстояние между 2 точками
Добавим выражение шейповому слою “line”. На параметр Shape Layer “line” > Shape 1 > Transform: Shape 1: Rotation
var from = thisComp.layer(“from”).transform.position; var to = thisComp.layer(“to”).transform.position; radiansToDegrees( Math.atan2( from[1]-to[1], (from[0]-to[0]) ) )-180
Здесь строка “Math.atan2(x,y)” – оценивате против часовой стрелки угол между положительной осью X и точкой (х, у) в радианах. И строка “radiansToDegrees() / degreesToRadians()” – выпполняет конвертирование угловых единиц измерения.
Посмотрите на картинке как это работает:
Дальше. Для слоя “line”, вытаскиваем Stroke 1, и перемещаем его в стеке так, чтобы он стоял после группы “Shape 1”. Группу параметров “Fill 1” можно удалить.
Фейковая эластичность
Для слоя “line”, добавим модификатор Zig Zag, убедимся в том что он стоит после группы “Shape 1” в иерархии. Для Zig Zag, поставим такие настройки: Ridges per Segment на “1” и Points to “Smooth”. Для параметра Size у Zig Zag добавим выражение:
var from = thisComp.layer(“from”).transform.position; var to = thisComp.layer(“to”).transform.position; var maxd = 960; //manually adjust the maximum length (maxd-length(from,to))/4
Это выражение определяет максимальный размер линии и искажает линию в зависимости от расстояния между 2 слоями.
Добавим выражение шейповому слою “line”. На параметр Shape Layer “line” > Shape 1 > Transform: Shape 1: Anchor Point
[value[0],content(“Zig Zag 1”).size]
Это выражение будет смещать положение линии в зависимости от интенсивности искажения модификатора Zig Zag.
Источник: aexpr.wordpress.com