Уроки Моушн дизайн VideoSmile 7 января 2012

Сложность: Легкий

5 простых выражений для After Effects

Всем привет! В этой статье я хочу поговорить с Вами о 5 простых, но тем не менее очень полезных выражениях. Эти выражения я использую чуть ли не в каждом втором проекте и они существенно облегчают мою жизнь.

1) Итак, первое из них - это loopOut(). Простенькое выражение для зацикливания анимации. Допустим, у нас есть бабочка, собранная из  трех частей: левое крыло, правое и тело.

5 простых выражений для After Effects

И нам необходимо сделать так, чтобы крылья без остановки вращались вокруг оси Y, создавая тем самым эффект реалстичных махов крыльями. Но представляете, сколько ключевых кадров нам нужно поставить, чтобы анимировать крыло на протяжении маленькой пятисекундной композиции. По моим подсчётам около 60! И, чтобы не возиться с этим огромным количеством ключевых кадров, разработчики программы придумали одно простое выражение - loopOut.

Поэтому, мы находим параметр Rotation Y и слева от него кликаем по значку с секундомером. После чего, в начале композиции появится ключевй кадр, измените значение параметра для этого ключа на -80. После этого мы переходим на 4 кадра вперед и изменяем значение параметра Rotation Y на 80. Затем ещё 4 кадра вперед и меняем значение параметра обратно на -80. Таким образом мы получили 3 ключевых кадра.

5 простых выражений для After Effects

После этого мы зажимаем клавишу Alt и кликаем ещё раз по значку с секундомером. Появится текстовая область для выражения. В ней мы пишем loopOut().

5 простых выражений для After Effects

Всё, теперь наша анимация продолжается до самого конца композиции без всяких ключевых кадров.

2) Ок, правое крыло мы анимировали. Теперь займемся левым. Не будем повторятся, и левое крыло анимируем немного другим способом. Все Вы, наверно, ещё со школьной скамьи помните замечательную математическую функцию синус. Так давайте воспльзуемся ею и здесь. Делаем Alt+клик по значку с секундомером слева от параметра Rotation Y левого крыла. В появившемся окне пишем Math.sin(time).

5 простых выражений для After Effects

Крыло перемещается, но совсем незаметно. Попробуем увеличить частоту вращения, для этого в скобках time умножим на 15.

5 простых выражений для After Effects

Отлично частоту мы увеличили, но, как Вы помните, значения синуса находятся в диапазоне от -1 до 1. Поэтому и амплитуда вращения крыла у нас такая маленькая. Чтобы увеличить её умножим всё это выражение на 80.

5 простых выражений для After Effects

В итоге получим: 80*Math.sin(time*15). Можно, конечно, немного увеличить частоту, но это уже на Ваше усмотрение.

3) Wiggle. Наверно, самое используемое выражение в среде After Effects, и всё-таки не все знают для чего оно предназначено. Wiggle отвечает за хаотичные перемещения. Вообще функция wiggle имеет целых пять аргументов, но в основном используются только два. Первое - это частота, второе - амплитуда колебаний. Рассмотрим на примере. Я анимировал положение бабочки, теперь она перемещается из левого нижнего в правый верхний угол.

5 простых выражений для After Effects

Движение ожидаемо смотрится линейно и неправдоподобно. Если мы хотим сохранить направление движения, но при этом добавить немного органичности, то нам не обойтись без wiggle. Итак, делаем Alt+клик на значке с секундомером слева от параметра Position и в текстовой области вбиваем wiggle(3,400). Смотрим и видим, что полёт бабочки стал более реалистичным. Что же означает написанное выражение wiggle(3,400). А означает оно то, что три раза в секунду с амплитудой в 400 пикселей в любом направлении будут происходить случайные колебания. Самое интересное это то, что wiggle можно применить практически к любому параметру в AE.

4) Данный пункт является не столько выражением, сколько очень интересным приёмом при работе с wiggle. Многие меня спрашивают, как можно изменять настройки функции wiggle с течением времени, или по-другому, как анимировать один из аргументов функции wiggle. Очень просто! - отвечу я Вам. Создаём нуль-объект. Затем идём Effect => Expression Controls => Slider Control. Пускай у нас будет изменятся амплитуда. Переходим к выражению, которое мы создали в предыдущем пункте. Выделяем амплитуду,

5 простых выражений для After Effects

берём pickwip и тянем его до параметра Slider нуль-объекта.

5 простых выражений для After Effects

Вот такое выражение мы получим в итоге:

5 простых выражений для After Effects

Теперь Вы можете с легкостью анимировать значение параметра Slider и таким же образом будет менятся амплитуда.

5) И последнее о чем я хотел Вам сегодня поведать - это наипростейшее выражение с управляющей переменной time. Вы, наверное, не раз сталкивались с такими выражениями. На пример, у нас есть какой-нибудь сплошной слой, мы применяем к нему эффект Fractal Noise и, чтобы данный эффект не был статичным нам нужно анимировать параметр Evolution.

5 простых выражений для After Effects

Да, можно поставить 2 ключевых кадра в начале и в конце композиции, но есть и другой путь. Делаем Alt+клик по значку с секундомером слева от параметра Evolution и пишем time. Теперь, если мы перемести индикатор текущего времени в позицию одной секунды, то значение параметра Evolution будет равнятся одному градусу. 1 секунда = 1 градус - всё очень просто!

5 простых выражений для After Effects

Если нам нужно ускорить анимацию, допустим в пять раз, то мы пишем time*5.

5 простых выражений для After Effects

На этом, я думаю, пора заканчивать. Надеюсь эта статья показалась Вам полезной, ведь теперь Вы знаете, что для экономии врмени вместо ключевых кадров можно использовать выражения. Всем удачи и до встречи на сайте VideoSmile.ru

Комментарии 28

Вопрос снят.Нужно было оттянуть вниз окошко внутри окна wiggler. Спасибо за ваш труд.Полезные уроки можно найти на вашем сайте.Успехов!

Ответить Ссылка 0 0

Добрый день.Решил анимировать свечу с помощью wiggler в After effects, но сама функция не активна.Нет кнопки применить.Установил 2 разные сборки но результат тот же.Можете подсказать где искать причину?Спасибо

Ответить Ссылка 0 0

Добрый день, спасибо большое за урок. Возник вопрос. Можно ли одновременно для одного параметра (например Position) сделать два выражения? Например, loopOut + wiggle.

Ответить Ссылка 0 1

Очень доволен уроком. Я давно искал хоть что-то полезное в АЕ по выражениям. К сожалению, такого как сейчас не было (тружусь с АЕ с 2005 года) и единственная дельная и хорошая книга была по АЕ "Официальный уч. курс по АЕ 5.0". Больше не встречал.

Короче спасибо.

Ответить Ссылка 0 0

как связать значение слайдер со значением в градусах?

Ответить Ссылка 0 0

Добрый день!

экспрешн loopOut('pingpong') не хочет работать с маской (анимация Mask Path). Как быть в этом случае?

Ответить Ссылка 0 0

Очень люблю этот сайт, за лаконичные советы по C4D и AE

Ответить Ссылка 0 0

Здравствуйте!

Нигде не нашел, как сделать так, чтобы освещенность одного слоя влияла на освещенность другого. Например - на переднем плане прокиенный герой,а на заднем - взрывы. Как сделать так, чтобы освещенность лица героя менялась соответственно этим взрывам?

Ответить Ссылка 0 0

Как вариант - продублировать задний фон, сделать его ч/б, увеличить контраст и сильно размыть, в итоге получим некую "карту освещённости". Т.е. в моменты вспышек на заднем фоне - полученный слой начнёт светиться синхронно с ним. Затем просто накладываем это на лицо героя с помощью режимов наложения и масок

Ответить Ссылка 0 0

несколько ошибок на -тся и -ться. Исправьте, чтоли

Ответить Ссылка 0 0

Отличный урок. А как следует изменить выражение, чтобы цикл проходил только с конкретных кейфреймов?

Ответить Ссылка 0 0

Спасибо за информацию.

Ответить Ссылка 0 0

Да! То что нужно! Спасибо!

Ответить Ссылка 0 0

По-моему, это гениально.

Спасибо!

Ответить Ссылка 0 0

Подскажите пожалуйста как можно внести корректировку в выражение с двумя переменными.

У меня есть PositionXY блика которому я присваиваю значения AnchorPoint другого слоя, но мне надо чтобы XY блика не были равны XY другого слоя , а отличались на константу (например Xблика=Xслоя-104, Yблика=Yслоя-89).

Ответить Ссылка 0 0

Можно создать новую переменную, и внести в неё значение параметра Position XY только по оси X. Например: S=PositionXY[0]; Далее можете делать с этой переменной все, что захотите. Аналогичную переменную нужно будет создать и для значения параметра Position XY по оси Y.

Ответить Ссылка 0 0

Побольше бы статей на эту тему. Огромное спасибо автору. Долгое время использую AE но некоторые выражения для меня новы.

Ответить Ссылка 0 0

спасибо! нужная статья

Ответить Ссылка 0 0
Добавить комментарий / работу

Жалоба

Опишите суть жалобы, при необходимости добавьте ссылки на скриншоты

Спасибо! Ваше обращение ушло на рассмотрение.

Название работы

Описание работы (необязательно)

Комментарий

Ваша миниатюра:

Название:
{{name}}
Описание:

Исходник:

{{source.name}} {{source.name}}

Тэги:
#{{tag.label}}

Есть ли у вас исходник к работе?

Исходник — это файл из исходных изображений, которые использовались для создания вашей работы. Исходник позовляет лучше понять вашу работу. Он не обязателен, но работы с исходниками получают больше лайков и имеют право на участие в еженедельных конкурсах.
jpg-файл, максимальный размер 1920x1080px

Пример исходника

Выберете тэги работы:

Тэги позволяют лучше находить вашу работу другим пользователям. Подумайте какие тэги описывают вашу работу лучше всего и проставьте их. Это даст вам больше просмотров, лайков и комментариев. 

Не более десяти тэгов на одну работу

Crt_input_label_help

После добавления работы:


Запланировать публикацию

{{pub_dates[pub_date]}}
Отменить планирование
Запланировать

Используя данный сайт, вы даёте согласие на использование файлов cookie, данных об IP-адрес, помогающих нам сделать его удобнее для вас. Подробнее