Выражение (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