Урок по создание простого рига машины в After Effects с помощью выражений (Expression).

1. Начало работы.

Этот простой риг, позволит вам автоматизировать вращение колес и ориентацию автомобиля вдоль траектории движения (Motion Path) в After Effects. Вы можете использовать свою собственную модель автомобиля, импортированный из Photoshop или Illustrator, или создать его непосредственно в After Effects с помощью шейпов. Важно! Убедитесь, что каждое колесо находятся на отдельном слое, и что якорная точка находится в центре слоя.

Самая простая иерархия композиции состояла бы из трех слоев: Слой с кузовом автомобиля, слой переднего колеса, слой заднего колеса.

Далее создайте дорогу, которая должна использоваться в качестве траектории движения; опять же, самым простым способом было бы создать его непосредственно в After Effects с помощью шейповых слоев, но вы также можете импортировать внешний файл. Для этого потребуется дополнительный шаг: необходимо создать маску, чтобы обозначить изгибы дороги.

Иерархия композиции:

2. Движение машины

Создайте новый Null Object с именем «Drive»

Скопируйте значение Position переднего колеса на Null Object («Drive»)

Используйте pick whip, чтобы привязать все слои автомобиля к Null Object («Drive»)

Скопируйте путь path по которому движется автомобиль из параметра path шейпа или path маски. Вставьте этот скопированный path в свойство Position для слоя Null Object («Drive»).

Поскольку траектория движения (Motion Path) перемещает объект вдоль его якорной точки необходимо компенсировать позицию Y с половины диаметра колеса.

Далее, добавим выражение к Position свойству для слоя Null Object («Drive»):

Если вы используете шейповый слой, вам нужно получить диаметр (размер) слоя шейпа эллипса:

var d = thisComp.layer(“wheel_F”).content(“Ellipse1”).content(“Ellipse Path 1”).size[0];

здесь: wheel_F — это шейповый слой переднего колеса;

Если вы импортировали слой и не знаете точного диаметра (размера), проще будет создать эффект Effect > Expression Controls > Slider Control, и настроить вручную:

var d = effect(“Slider Control”)(“Slider”);

Заканчиваем выражение следующим кодом:

[value[0],value[1]-d/2]

Здесь, мы хотим повлиять только на значение оси Y (второй в массиве) на половину диаметра (d/2).

3. Ориентация

Если вы выполните команду на Transform > Auto-orient > Along the path на слой переднего колеса, вы увидите, что результат станет несколько неожиданным. Эта команда ориентирует только лишь переднее колесо, не принимая во внимание остальные части автомобиля.

Мы будем решать эту проблему с помощью применения выражения на наш Null Object (“Drive”).

Итак.

Удалите Auto-orient, если вы его включили.

Добавим Effect > Expression Controls > Slider Control на слой Null Object(“Drive”) и переименуем эффект на «offset (in frames)»

Добавим выражение (expression) на слой Null Object(“Drive”) на параметр rotation:

var offset = framesToTime(effect(“offset (in frames)”)(“Slider”));
var from = transform.position;
var to = transform.position.valueAtTime(time-offset);
radiansToDegrees( Math.atan2( from[1]-to[1], from[0]-to[0] ) )

После этого измените значение Slider Control «offset (in frames)», так, чтобы заднее колесо автомобиля коснулась земли. Если во время анимации, колесо будет смещаться от земли, то попробуйте снова поменять значение слайдера.

4. Вращение колеса

Используйте Pick Whip чтобы привязать Rotation заднего колеса к переднему колесу.

Добавим выражение для свойства Rotation переднего колеса:

var d = content(“Ellipse 1”).content(“Ellipse Path 1”).size[0];
var p = thisComp.layer(“Drive”).transform.position;
360 / (Math.PI*d) * p[0]

Это выражение вычисляет скорость вращения и использует позицию X, чтобы узнать, сколько пикселей автомобиль прошел.

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

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

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