Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Выражения в After Effects: wiggle, time и pick whip

Выражения в After Effects: минимальный набор, который закрывает 80 % задач

Как начать с выражениями в After Effects: добавление на свойство, pick whip, wiggle(freq, amp), time, value и обращение к другому слою через thisComp.

Выражения в After Effects: минимальный набор, который закрывает 80 % задач

Выражение — это инструкция свойству, а не скрипт для программы. Она говорит конкретному параметру, как считать своё значение.

Документация формулирует разницу так: скрипт приказывает приложению что-то сделать, выражение говорит свойству что-то сделать.

Как добавить

В панели Timeline зажмите Alt (Windows) или Option (macOS) и кликните по секундомеру рядом с нужным свойством.

Появится поле выражения. After Effects подставит значение по умолчанию — его можно заменить.

Убрать выражение: тот же Alt/Option + клик по секундомеру.

Pick whip

Спиральная иконка рядом с полем выражения — это pick whip.

Принцип: тянете её к другому свойству, отпускаете, и After Effects сам пишет синтаксис.

Пример из документации: если протянуть от Rotation слоя A к Scale слоя B, получится

thisComp.layer("Layer B").scale[0]

Индекс [0] означает первое значение массива — для масштаба это ширина.

wiggle

Самое частое выражение. Формат:

wiggle(freq, amp)

  • freq — число колебаний в секунду;
  • amp — амплитуда в единицах свойства.

Пример из документации: wiggle(2,30) на Position даёт два колебания в секунду с отклонением до 30 пикселей.

Полная сигнатура включает ещё три параметра: octaves (по умолчанию 1), amp_mult (0.5) и t (текущее время). Они управляют детализацией и точкой отсчёта.

Важно: wiggle не затирает существующее значение, а колеблется вокруг него.

time

Выражение time возвращает текущее время композиции в секундах.

На свойстве Rotation выражение time даёт поворот на 1 градус в секунду. Умножение ускоряет: time*40 — 40 градусов в секунду.

Это удобно для бесконечного вращения без ключевых кадров.

value

value — значение свойства до применения выражения.

Классический пример из документации — запуск wiggle через две секунды:

var timeToStart = 2;
if (time > timeToStart) { wiggle(3,25); } else { value; }

Логика: пока время меньше двух секунд, свойство показывает своё обычное значение; после — начинает дрожать.

Обращение к другому слою

Синтаксис:

thisComp.layer("Layer A").rotation

Для свойства внутри массива указывается индекс: thisComp.layer("Layer A").position[0] — только X.

Документация подчёркивает: время внутри выражения всегда время композиции, а не слоя, и измеряется в секундах. Исключение — sourceRectAtTime().

Практика: дрожание камеры

  1. Создайте нулл CTRL_camera.
  2. Добавьте на него Slider Control и назовите amp.
  3. На Position нулла напишите wiggle(1, effect("amp")("Slider")).
  4. Привяжите к нуллу камеру или слои.

Теперь амплитуда регулируется одним ползунком.

Практика: пульсация масштаба

scale + Math.sin(time*3)*5 даёт мягкую пульсацию ±5 %.

Такой приём часто используют для «дыхания» логотипа или иконки.

Практика: задержка между слоями

Если нужно, чтобы второй слой повторял движение первого с задержкой, используется valueAtTime(time-0.2).

Документация приводит этот приём: значение свойства в другой момент времени.

Где искать готовые выражения

В меню выражения (иконка справа от поля) есть категории: Property, Keyframe, Random, Interpolation, Color и другие. Оттуда вставляются готовые методы без знания синтаксиса.

Плюс официальная страница примеров: там разобраны wiggle на определённом отрезке времени, зацикливание и другие типовые задачи.

Чего выражение не делает

Оно не «оптимизирует» анимацию само по себе: каждый кадр оно вычисляется заново.

Оно не заменяет ключевые кадры там, где нужен художественный контроль.

Оно не переносится между версиями без проверки: методы и поведение могут меняться.

Ошибки новичков

Самая частая — точка с запятой и кавычки. Второе — русские кавычки при копировании из чата.

Третья — выражение ссылается на слой по имени, а слой переименовали. Выражение ломается молча.

Производительность

Выражения пересчитываются на каждом кадре. Одно-два — незаметно; сотня — ощутимо.

На ноутбуке с 16 ГБ ОЗУ тяжёлая сцена с выражениями на каждом слое может перестать проигрываться в реальном времени. Помогает предварительный рендер в память.

Как отладить выражение

Ошибка в выражении показывается жёлтым треугольником рядом с полем, а текст ошибки — при наведении.

Три шага диагностики:

  1. Прочитайте сообщение: чаще всего это опечатка или лишняя скобка.
  2. Проверьте имена слоёв — они чувствительны к регистру и пробелам.
  3. Упростите выражение до одного метода и добавляйте части по одной.

Практика: держите под рукой value — если вернуть его, свойство снова ведёт себя обычно, и понятно, что дело в коде, а не в слое.

loopOut и Math

Два метода, которые закрывают много задач.

loopOut("cycle") повторяет анимацию ключевых кадров по кругу. Есть варианты pingpong, offset и continue.

Math.sin и Math.cos дают плавные колебания без случайности — полезно для «дыхания» и маятников.

Пример: Math.sin(time*2)*10 на Position даёт мягкое вертикальное покачивание с амплитудой 10 пикселей.

Оба метода описаны в справочнике языка выражений — там же указаны параметры и типы возвращаемых значений.

И ещё одна привычка, которая экономит время: подписывайте слои, к которым обращаются выражения. Через месяц thisComp.layer("Layer 42") не скажет вам ничего.

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

Если выражение перестало работать после обновления проекта, первым делом откройте его текст и проверьте, не изменились ли имена слоёв и не появились ли новые пресеты.

Частые ошибки

Забыть Alt/Option. Секундомер просто включает анимацию.

Путать time и время слоя. В выражении это время композиции.

Ссылаться на переименованный слой. Ошибка в консоли.

Ставить wiggle на Opacity без ограничения. Значение уходит за 0–100.

Копировать выражения с русской раскладкой кавычек. Синтаксическая ошибка.

FAQ

Как добавить выражение?

Alt/Option + клик по секундомеру свойства.

Что делает wiggle(2,30)?

Два колебания в секунду с амплитудой 30 пикселей.

Что такое value?

Значение свойства до выражения.

Как обратиться к другому слою?

thisComp.layer("Имя").property.

В каком времени считается time?

В времени композиции, в секундах.

Похожие материалы