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

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

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