Что такое Expressions After Effects
Основа анимации в After Effects — ключевые кадры. Они задают значение свойств в определенный момент времени. Например, чтобы объект переместился слева направо, достаточно поставить один ключ в начале композиции и второй в конечной точке. After Effects автоматически рассчитает движение между ними. Но если такую анимацию нужно повторить много раз и анимировать десяток разных объектов, то ключевых кадров становится слишком много.
В такой ситуации используют Expressions. Это небольшие кусочки кода на языке JavaScript, которые управляют свойствами слоев. С их помощью можно менять положение, масштаб, прозрачность и другие параметры без создания множества ключевых кадров.
Обычно AE-выражения применяют для повторяющихся и связанных между собой действий. Например, чтобы зациклить движение, добавить случайную тряску или связать положение одного объекта с другим.
After Effects — программа для анимации и сложных визуальных эффектов. Фото: Aeplug / aeplug.ru
В чем отличие Expressions от скриптов и пресетов
Эти инструменты решают разные задачи:
- Expressions — задают правило, по которому значение свойства рассчитывается автоматически. Их удобно использовать, когда анимация зависит от времени, другого свойства или повторяющегося алгоритма.
- Скрипты After Effects — автоматизируют действия в программе. Например, с их помощью можно создать несколько слоев, переименовать их или применить настройки сразу к группе объектов.
- Пресеты FFX — сохраняют готовые настройки эффектов и анимации, чтобы потом можно было использовать их повторно.
Эти инструменты не заменяют друг друга, а работают на разных этапах. Expression помогает настроить логику анимации, скрипт — быстро выполнить действия в проекте, а пресет — сохранить получившийся набор настроек.
ЧИТАЙТЕ ТАКЖЕ:
7 полезных плагинов для для After Effects
Как добавить выражение в After Effects
Добавить Expression можно прямо к свойству слоя:
- Выберите нужный слой и раскройте свойство, которое хотите анимировать.
- Зажмите Alt в Windows или Option в macOS и нажмите на значок секундомера рядом со свойством.
- Под свойством появится строка для ввода Expression.
- Вставьте или напишите код.
- Нажмите Enter, чтобы применить выражение After Effects.
Если вы хотите временно отключить выражение, нажмите значок «=» рядом со свойством. Сам код при этом сохранится. Для полного удаления Expression нужно удалить выражение из строки.
Чтобы добавить Expression After Effects зажмите Alt и нажмите на значок секундомера рядом со свойством. Фото: Simple animation / simple-animation.ru
10 выражений After Effects, которые экономят время
С помощью Expressions AE можно автоматизировать множество типовых задач — добавить случайное движение, зациклить анимацию, связать свойства разных слоев. Один небольшой фрагмент кода заменяет несколько десятков ручных настроек.
1. Эффект тряски After Effects
Выражение wiggle() добавляет случайное движение свойству. Выражение удобно использовать для имитации дрожания камеры, легкой тряски объекта, движения текста или эффекта ручной съемки.
Первое число в скобках задает частоту — сколько раз в секунду будет меняться значение. Второе отвечает за амплитуду — насколько сильно оно будет отклоняться от исходного уровня. Например, wiggle(2, 30) создает два случайных изменения в секунду с амплитудой 30 единиц.
Также важно учитывать размерность: для Position значение применяется к координатам, поэтому амплитуда задается в пикселях. Для Rotation те же 30 означают градусы, для Opacity — процентные пункты.
2. Бесконечный повтор ключевых кадров
Если у свойства уже есть анимация из нескольких ключевых кадров, ее можно зациклить с помощью loopOut(«cycle»).
Режим cycle повторяет заданную последовательность ключевых кадров снова и снова. Например, если объект за секунду перемещается из точки A в точку B, после последнего ключа он снова начинает движение от A к B.
Это выражение After Effects можно использовать для циклических анимаций: мигания, движения объекта по короткой траектории, повторяющегося появления текста.
Если вы хотите повторить только некоторые ключевые кадры, можно использовать модификатор. Фото: meganfriesth / meganfriesth.com
3. Движение туда и обратно
Выражение loopOut(«pingpong») использует ту же идею, что и cycle, но после достижения последнего ключевого кадра проигрывает анимацию в обратном порядке.
Например, объект движется слева направо, доходит до конечной точки, а затем возвращается назад. После этого цикл повторяется.
Разница между выражениями в том, что cycle запускает последовательность с начала, а pingpong разворачивает ее обратно. Поэтому последний подходит для маятникового движения или пульсации масштаба.
4. Постоянное вращение или движение
Переменная time в After Effects содержит текущее время композиции в секундах. Если умножить ее на скорость, можно заставить объект постоянно двигаться или вращаться без ключевых кадров.
Например, выражение time * 90 на свойстве Rotation будет поворачивать объект на 90 градусов в секунду.
Такой способ можно использовать для стрелок, шестеренок, вентиляторов, планет и других подобных объектов. Не нужно ставить ключ в начале и в конце анимации, зацикливать ее: объект будет вращаться столько, сколько длится композиция.
Переменную time можно использовать и для движения. Например, Expression time * 100 на свойстве Position будет перемещать объект вправо со скоростью 100 пикселей в секунду.
5. Изменение исходного значения свойства
Выражение value используют, когда объект уже анимирован с помощью ключевых кадров, но поверх этой анимации нужно добавить небольшое изменение.
Например, объект движется по экрану с заданной траекторией, а вы хотите, чтобы он при этом постоянно находился на 50 пикселей правее заданного положения, используйте выражение After Effects:
value + [50, 0]
Expression сохраняет исходную анимацию Position и добавляет к ней смещение по горизонтали. Такой прием пригодится, если несколько элементов должны повторять одно движение, но находятся на расстоянии друг от друга. Можно задать основную траекторию одному объекту, а для остальных использовать value с разным смещением.
6. Ступенчатая анимация
Выражение posterizeTime() ограничивает частоту, с которой вычисляется Expression. Это позволяет получить эффект покадровой или ступенчатой анимации, не меняя общую частоту кадров. Например:
posterizeTime(12);
wiggle(2, 30);
В этом примере движение, созданное wiggle(), будет пересчитываться с частотой 12 раз в секунду.
Такой прием можно использовать, когда нужно стилизовать движение под стоп-моушен или старую покадровую анимацию, но при этом сохранить обычную частоту кадров всей композиции.
7. Случайное значение
Выражение random() используют, когда одинаковое движение или значение для всех объектов выглядит слишком аккуратным. Например, если нужно расположить звезды в случайных местах, задать им разный масштаб или разбросать конфетти по экрану.
Для случайного масштаба можно использовать:
random(80, 120)
Тогда каждый объект получит случайный Scale в диапазоне от 80 до 120%.
Еще один пример — случайное положение по горизонтали:
random(0, 500)
Так можно распределить объекты по области шириной 500 пикселей без ручной расстановки каждого элемента.
8. Ограничение значения
Функции Math.min() и Math.max() используют, когда значение свойства меняется во время анимации, но у него есть допустимый предел.
Представим, что с помощью ключевых кадров или другого Expression вы меняете прозрачность слоя (Opacity), но она не должна становиться больше 100%:
Math.min(value, 100)
Если расчет даст 120, After Effects подставит 100. Если получится 80, значение останется 80.
Для нижней границы используется Math.max():
Math.max(value, 0)
Это можно использовать для объекта, который движется по экрану и не должен уйти левее определенной точки. Если расчет его координаты даст значение меньше нуля, Expression вернет 0 и остановит движение на этой границе.
9. Задержка между объектами
Выражение valueAtTime() позволяет получить значение свойства не в текущий момент, а в другой точке времени. Например, когда один объект должен повторять анимацию другого с небольшой задержкой.
Предположим, объект Circle движется по экрану, а второй должен повторять его движение через полсекунды. Тогда мы используем выражение:
thisComp.layer(«Circle»).transform.position.valueAtTime(time — 0.5)
Expression берет Position слоя Circle на 0,5 секунды раньше текущего момента. Поэтому второй объект повторяет его траекторию с задержкой.
Такой прием можно использовать для цепочки объектов, волны или нескольких элементов, которые должны двигаться друг за другом.
10. Пульсация в After Effects
С помощью Math.sin() можно создавать повторяющееся движение с плавным отклонением свойства относительно базового значения. Например:
100 + Math.sin(time * 2) * 10
Здесь 100 — это базовое значение свойства, 10 — амплитуда движения, а 2 — определяет скорость изменения.
Такой Expression подойдет для пульсации масштаба, легкого покачивания объекта, изменения прозрачности и других циклических эффектов.
В отличие от wiggle(), движение здесь предсказуемое и повторяется по регулярной траектории. Его используют, когда нужен ровный пульс или ритмичное движение, а не случайная дрожь.
моушн-дизайнер с нуля до про
профессия| 18 месяцев
моушн-дизайнер с нуля до про
Обучайтесь на практике и теории, понятной новичкам. Начните работать по профессии уже с 3 месяца. Соберите сильное портфолио еще во время обучения
научиться
Как адаптировать Expression под свой проект
Готовое Expression не всегда можно сразу использовать в своем проекте. Оно может быть рассчитано на другую скорость анимации, диапазон значений или структуру композиции.
- Меняйте числа, которые управляют анимацией. Например, в wiggle(2, 30) первое число отвечает за частоту, второе — за амплитуду. Если нужна более спокойная тряска, можно уменьшить 30, а если более быстрая — увеличить 2.
- Учитывайте размерность свойства. Одно и то же число означает разное в зависимости от того, к какому параметру применяется Expression AE. Например, значение 10 для Position — это пиксели, для Rotation — градусы, а для Scale и Opacity — процентные пункты.
- Меняйте параметры по одному. Если выражение After Effects работает не так, как нужно, редактируйте его по частям. Сначала измените одно значение, проверьте результат, потом переходите к следующему. Так проще понять, как параметры влияют на поведение анимации.
При работе с Expression не копируйте код вслепую. Научитесь понимать, как параметры управляют поведением анимации. Тогда готовые решения можно будет адаптировать под разные свойства и задачи.
| Анимация | Expression | Где использовать | Что понадобится |
| Случайная тряска | wiggle(2, 30) | Position, Rotation и другие свойства | — |
| Зацикленное движение | loopOut(«cycle») | Свойство с ключевыми кадрами | Минимум 2 ключа |
| Движение туда-обратно | loopOut(«pingpong») | Свойство с ключевыми кадрами | Минимум 2 ключа |
| Постоянное вращение или движение объекта | time * 90 | Rotation, Position и другие свойства | — |
| Смещение к существующей анимации | value + [50, 0] | Position и другие совместимые свойства | Можно использовать вместе с ключами |
| Ступенчатая анимация | posterizeTime(12) | Expression свойства | — |
| Случайное значение | random(80, 120) | Scale и другие числовые свойства | — |
| Ограничение значения | Math.min() / Math.max() | Числовые свойства | — |
| Повторение движения другого объекта с задержкой | valueAtTime() | Position и другие свойства | Нужен слой-источник |
| Плавная пульсация | Math.sin() | Scale, Position, Opacity и другие свойства | — |
Полезные выражения для After Effects
Частые ошибки при работе с Expression After Effects
Если Expression не работает, After Effects показывает сообщение об ошибке рядом со свойством. Там указано, что именно не удалось выполнить, но не всегда понятно, из-за чего возникла проблема. Чаще всего аниматоры совершают одну из этих ошибок.
- Неверное имя слоя или эффекта. Если Expression обращается к слою по имени, оно должно полностью совпадать с названием в проекте, иначе ссылка не будет работать. То же самое касается эффектов и их параметров.
- Неправильные кавычки. При копировании кода из текстового редактора или сайта обычные кавычки могут автоматически замениться на типографские — “…” вместо «…». JavaScript не воспринимает их, поэтому выдает ошибку.
- Нет нужных ключевых кадров. Expressions вроде loopOut() работают с уже существующей анимацией. Если на свойстве нет достаточного количества ключевых кадров, то выражению After Effects нечего повторять.
- Несовместимый JavaScript Engine. В After Effects можно использовать современный JavaScript Engine и старый Legacy ExtendScript. Они поддерживают разный синтаксис и набор возможностей, поэтому Expression, написанное для одного режима, может не работать в другом. Если готовое выражение выдает ошибку, проверьте, какой движок выбран в настройках проекта.
При отладке всегда начинайте с самого простого: проверьте имя слоя, тип свойства и синтаксис. Часто ошибки возникают из-за невнимательности, когда пропущена скобка или точка с запятой.
Пример сообщения об ошибке в After Effects. Нажмите на кнопку с увеличительным стеклом, чтобы просмотреть свойство с выражением. Фото: Adobe / adobe.com
Главное про Expressions в After Effects
Expressions помогает сэкономить время на настройке анимации. Можно автоматизировать повторяющиеся действия, добавить вращение или заставить объекты двигаться друг за другом.
Особенно полезны Expressions в проектах, где одно и то же действие приходится повторять для нескольких элементов. Вместо того чтобы вручную расставлять ключевые кадры и менять параметры каждого слоя, можно один раз задать правило и использовать его повторно.
профессия моушн-дизайнер с нуля до про
профессия моушн-дизайнер с нуля до про
Научитесь создавать эффектную 2D- и 3D-анимацию и пройдите двухмесячную стажировку в дизайн-агентстве Artman и крупных компаниях. Вы начнете нарабатывать практический опыт с первого месяца обучения, а с третьего — брать первые заказы. Курс английского для дизайнеров в подарок
научиться