Перейти на новую версию сайта https://iuraf.ru

Adobe After Effects. Урок 27

Примеры выражений в Adobe After Effects.
Анимация слоев и эффектов.

1. Метод loopOut().

  • Создадим новый проект Adobe After Effects 1280*720 30 сек.
  • Создадим слой Solid 300*300 Blue.
  • На Timeline в текстовом слое раскроем свойство Scale.
  • Курсор воспроизведения установим в t=0, параметр Scale=0, 0 и включим Ключевой кадр.
  • Курсор воспроизведения установим в t=5, параметр Scale=200, 200.
  • Курсор воспроизведения установим в t=10, параметр Scale=0, 0.

Просмотрим анимацию. Заставим анимацию повторяться до конца композиции. Для этого создадим выражение в Expression Scale loopOut()

Рассмотрим метод из справочника "Атрибуты и методы Adobe After Effects.pdf":

loopOut(type="cycle", numKeyframes=0)

Тип возвращения: число или массив.

Повторяет сегмент времени, измеряемый от последнего ключевого кадра в слое до точки входа слоя. Цикл воспроизводится до точки выхода слоя. Заданное число ключевых кадров определяет циклически повторяющийся сегмент.

Значение numKeyframes используется для определения количества сегментов ключевых кадров для зацикливания. Указанный диапазон измеряется в обратном направлении от последнего ключевого кадра.

Например, значение loopOut ("cycle", 1) повторяет сегмент, ограниченный последним и предпоследним ключевыми кадрами. Значение по умолчанию 0 означает, что все ключевые кадры повторяются циклично. Дополнительную информацию см. в методе "loopIn()".

Просмотрим анимацию.




2. Метод. Math.sin()

Внимание — это не метод Adobe After Effects а встроенный метод JavaScript, тем не менее его можно использовать в выражениях в Adobe After Effects.

Функцию у=sin(x) мы помним из школьного курса математики. Напомню, что значение функции изменяется от -1 до +1.

  • Создадим новый проект Adobe After Effects 1280*720 30 сек.
  • Создадим слой Solid 300*300 Blue.
  • На Timeline в слое Solid раскроем свойство Opacity и введем выражение:

Math.abs(Math.sin(time))*100

Обратите внимание методы JavaScript надо вводит с большой буквы в противном случае отобразится ошибка!

Math.abs – абсолютное значение аргумента, компенсируем отрицательные значения функции y=sin(x).

Math.sin(time) – вычисление sin с аргументом время.

*100 масштабируем результат от 0 до 100.

Для параметра Scale выражение будет выглядеть уже сложнее:

temp=Math.sin(time)*200;

[temp, temp]

Здесь необходимо использовать переменные для двух аргументов параметра Scale.

На рисунке выражение для параметра Opacity отключено!




3. Метод Wiggle()

Для создания хаотичности применяется метод Adobe After Effects Wiggle(). Метод Wiggle имеет пять аргументов, обычно используются два первых. Первый это частота колебаний, второй амплитуда колебаний.

Рассмотрим метод из справочника Атрибуты и методы Adobe After Effects.pdf

wiggle (freq, amp, octaves=1, amp_mult=.5, t=time)

Тип возвращения: число или массив.

Тип аргумента: freq, amp, octaves, amp_mult и t – это числа.

Произвольно применяет эффект покачивания к значению свойства.

Значение freq – это частота в покачиваниях в секунду.

Значение amp – это амплитуда в единицах измерения свойства, к которому оно применяется.

Значение octaves – это количество октав шума, которые требуется сложить. Это значение управляет объемом детализации в покачивании. Сделайте это значение больше значения по умолчанию (1), чтобы добавить более высокие частоты, или меньше, чтобы добавить амплитудную гармонику в покачивание.

Значение amp_mult – это число, на которое умножается значение amp для каждой октавы. Это значение управляет скоростью спада гармоник. Значение по умолчанию равно 0,5 приблизите его к 1, чтобы добавить гармонику при той же амплитуде, что и базовая частота, или приблизите его к 0, чтобы уменьшить детализацию.

Значение t – это базовое начальное время. Этому значению по умолчанию присваивается текущее время. Используйте этот параметр, чтобы выходные данные являлись покачиванием значения свойства, полученного в разное время.

Как анимировать с помощью метода wiggle().

  • Создадим новый проект Adobe After Effects 1280*720 30 сек.
  • Импортируем рисунок (у меня лист клена, который будет падать).
  • Установим Ключевой кадр так, чтобы лист падал справа сверху влево вниз (ветер дует справа).
  • Делаем Alt+клик на значке с секундомером слева от параметра Position и вбиваем

wiggle(1,200)

случайные колебания с частотой 1 Гц и амплитудой 200 пикселей.

  • В параметр Rotation вбиваем:

wiggle(1,50)

случайные колебания с частотой 1 Гц и амплитудой 50 пикселей.

Смотрим анимацию.




4. Анимация эффектов с помощью выражений.

У нас есть сплошной слой, мы применяем к нему эффект Gell Pattern и, чтобы данный эффект не был статичным нам нужно анимировать параметрs Evolution и Disperce.

  • Делаем Alt+клик по значку с секундомером слева от параметра Evolution и вставляем метод time*100.
  • Делаем Alt+клик по значку с секундомером слева от параметра Disperce и вставляем метод time.

Смотрим анимацию.

Можно «поиграть» с другими параметрами и попробовать применить другие методы.




5. Примеры выражений в Adobe After Effects.


5-1. Пример выражения вращение по кругу.

  • Создайте Shape (Шейп) в виде звезды с помощью инструмента Star Tool:
  • Введите следующее выражение в свойство Position:

[(thisComp.width/2),(thisComp.height/2)]+[Math.sin(time)*200,-Math.cos(time)*200]

thisComp.width/2 – вычислили середину окна по горизонтали.

thisComp.height/2 – вычислили середину окна по вертикали.

Math.sin(time)*200,-Math.cos(time)*200 – создали движение по кругу.


5-2. Пример выражения Движение стрелок часов.

  • создайте два длинных узких сплошных слоя: часовую стрелку и минутную стрелку.
  • Разместите опорные точки на концах стрелок.
  • Переместите слои так, чтобы опорные точки находились в центре композиции.
  • В свойство Rotation для часовой стрелки добавьте выражение (R - радиус часовой стрелки):

R=300; T=time;

[R*(Math.sin(T/24)-Math.cos(T/24))]


  • В свойство Rotation для минутной стрелки перетащите инструментом «Лассо» к свойству Rotation для часовой стрелки. Появится следующее выражение:

thisComp.layer("Hour").transform.rotation


Чтобы минутная стрелка вращалась в 12 раз быстрее часовой стрелки добавьте значение *12 в конце выражения следующим образом:

thisComp.layer("Hour").transform.rotation*12



5-3. Пример использования конструкции If … then … else.

Реализация исполнения операций по условию.

Выражения вводим в свойство Position:

  1.  Дрожание изображения при условии если время > t сек
  2. t=4;

    if (time > t) wiggle(3,25) else value;


  3. Дрожание изображения при условии если время < t сек
  4. t=4;

    if (time > t) value; else wiggle(3,25);


  5. Дрожание изображения при условии если время  t1 > 2 сек и t2 < 4 сек
  6. t1=2; t2=4;

    if ((time > t1) && (time < t2)) { wiggle(3,25); } else { value; }



5-4. Затухающие колебания.

Выражения вводим в свойство Position:

Height=600; freq=3; decay=1,1; amp=500;

y=Height-Math.abs((Math.sin(time*freq))/Math.exp(time*decay)*amp); [Height, y]



5-5. Пульсация.

Выражения вводим в свойство Scale:

maxDev = 23; spd = 30; decay = 1.0;

t = time - inPoint;

x = scale[0] + maxDev*Math.sin(spd*t)/Math.exp(decay*t);

y = scale[0]*scale[1]/x;

[x,y]




6. Конвертирование выражений в ключевые кадры

В некоторых ситуациях может быть полезно конвертирование выражений в ключевые кадры. Для преобразования выражений в ключевые кадры необходимо в главном меню Animation/Keyframe Assistant/Convert Expression to Keyframes.




Скачать проекты с примерами