after effects wiggle параметры

Эксперименты с выражениями в Adobe After Effects 6.0

Эта статья, является большей частью вольным переводом новой статьи Дэна Эббертса, вперемешку с моими собственными идеями. К статье я приложил файл с примерами (примеры сделаны не ко всем пунктам статьи, а только к тем, которые, по-моему, мнению могут вызвать затруднения).

В шестой версии Adobe After Effects, аппарат выражений получил несколько полезных дополнений, в том числе касающихся самого языка выражений.

Но обо всем по порядку.

Новый синтаксис

На мой взгляд, синтаксис стал гораздо более удобным и логичным.

Вместо кавычек типа » теперь можно использовать и одинарные.

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

Улучшеннный wiggle()

Теперь можно настроить колебания wiggle() при помощи seedRandom(). Дело в том, что seedRandom() меняет значения, получаемые с помощью wiggle(), даже при одинаковых настройках последнего. Изменяя seedRandom(), при неизменном wiggle(), мы каждый раз будем получать совершенно различные значения. Посмотрите на следующие выражения:

seedRandom(13);

wiggle(3,35)

wiggle(3,35)

Хотя, в обоих случаях wiggle() постоянный, но значения выражения будут совершенно разными, благодаря seedRandom().

Однако, учтите, что wiggle() игнорирует параметр timeless seedRandom(seed, timeless=false). Он равен false по умолчанию.

Если вы хотите удерживать постоянное значение wiggle() на определенное количество кадров, то вы можете воспользоваться новой полезной функцией posterizeTime().

posterizeTime()

Аппарат выражений в AE 6.0 получил новую функцию posterizeTime(). С ее помощью вы можете управлять скоростью анимации. Например, значение wiggle() будет меняться пять раз в секунду в следующем выражении:

posterizeTime(5);

wiggle(5,35)

Конвертирование аудио в ключевые кадры

Это довольно интересный новый ассистент ключевых кадров («Convert Audio to Keyframes»). Он создает нулевой объект, называемый по умолчанию Audio Amplitude. Этот слой содержит три анимированных эффекта slider. Первый из них отображает в ключевых кадрах изменения громкости в левом канале, второй в правом, а третий в обоих каналах сразу. Вы можете теперь извлечь значения из этих эффектов с помощью выражений и применить к какому-то свойству. То есть сделать то, что раньше делалось в motion math с помощью скрипта layeraud. И соответственно изменению уровней громкости будут меняться свойства, которые извлекают значения из sliderов.

В примере, изображенном на иллюстрации, мы используем Convert Audio to Keyframes для того, что бы слой medium cyan изменял размеры в зависимости от уровня в правом канале, а слой medium yellow в зависимости от уровня в левом канале. Выражения простейшие…

Да кстати, если вы не находите motion math там, где привыкли его видеть в АЕ5.5Keyframe Assistant), то не пугайтесь. Где-то в help по скриптам в АЕ6.0, я прочитал, что по умолчанию motion math в шестой версии не устанавливается (учитесь, дескать, господа сами скрипты писать). Но, установка его в AE не представляет никаких проблем. Для этого просто перенесите файл MotionMath.AEX из папки After Effects 6.0’Support Files’Plug-ins’Professional’Keyframe Assistant'(MotionMath) на уровень выше, то есть в After Effects 6.0’Support Files’Plug-ins’Professional’Keyframe Assistant. Ну и заодно файлы языковой поддержки, если хотите использовать поддержку немецкого, французского или японского языков.

Текст

Все, кто попробовал новую версию AE, первым делом отмечали появление инструмента text. Наконец-то, говорили они, adobe пошевелился и внял многочисленным просьбам пользователей и создал хороший текстовый инструмент. Хотя, на днях я полазил по конференциям посвященным АЕ, и в общем то не все так гладко с этим инструментом, как выяснилось. Замечу, что лично, меня не одна из перечисленных там проблем не коснулась.

Инструмент text имеет достаточно большое количество настроек, и преимущества в удобстве работы по сравнению с text effect (который остался в наборе и бросать его окончательно, видимо, не стоит).

С помощью выражений и этого нового инструмента мы можем добиться весьма и весьма интересных эффектов.

Для начала создадим текстовый слой. Для этого мы можем пойти в меню layer>new>text (ctrl+alt+shift+t) или же просто щелкнуть инструментом «T» на нашей композиции. Обратите внимание, что вы можете создать как вертикальный, так и горизонтальный текст. Для этого кликните левой кнопкой мыши на «T» и подержите. Появиться выбор horizontal type tool или vertical type tool. Выберите horizontal type tool. Введите любое слово. Абсолютно все равно, какое. Я написал «hello world».

Теперь добавим выражение для свойства source text (текстовый слой > группа свойств text > свойство source text).

Начнем изучение возможностей выражений для управления свойствами текста. По умолчанию в поле выражений у нас появилось text.sourceText. Это значит, что текст, который мы ввели, остается без изменений и ничего с ним не происходит. А теперь давайте введем в поле выражений position[0]. Теперь у меня, вместо «hello world», появилась цифра 124 (значение координаты X текстового слоя). Если вы анимируете текстовый слой, то будет меняться сам текст, отображая значение X координаты в момент времени.

А сейчас давайте поговорим о том, что представляет, из себя в Java Script текстовая строка и буквы в ней. Текстовая строка в Java Script является массивом, включающем в себя последовательность букв. Каждая буква имеет свой индекс. Пробел игнорируется (то есть в слове он присутствует, но индекса не имеет). Индексирование начинается с 0.

Давайте разберем это на примере.

Имеется следующее выражение:

s=»Hellow world»;

Первой строкой мы вводим переменную s, которая равна «Hellow world». Она является, по сути своей массивом, из которого мы во второй строке извлекаем букву, имеющую индекс 1. Это буква «е». Она то и будет выведена на экран.

Java Script поддерживает сложение строк. Например, итого выражения «Hellow»+»World» будет вывод на экран HellowWorld.

JavaScript поддерживает большое количество строковых свойств и методов. Большей частью они, к сожалению, в АЕ не поддерживаются.

Я приведу здесь все найденные мною поддерживаемые свойства и методы, что бы вам, не пришлось копаться в книгах. Но вообще-то, учебничек по Java, я бы порекомендовал под рукой иметь… По причине того, что Adobe все расширяет поддержку скриптов в AE. Так что неизвестно, что версии нам новые готовят.

Строковые свойства и методы

Методы

Для начала посмотрите на строковые методы, которые я нашел в справочнике по JavaScript.

Я попробовал их все, но реально в АЕ работают следующие:

fromCharCode() – извлекает символ по индексу из шрифтового набора

toUpperCase() – переход в верхний регистр

toLowerCase() – переход в нижний регистр

Это связано с тем, что большинство методов предназначены для web. А в АЕ имеется лишь ядро и встроенные объекты, но никак не вся мощь Java для броузеров. Ошибку АЕ правда при их использовании не выдает, но ничего кроме надписи «использован метод такой-то» получить не удается.

А теперь примеры на свойства и методы.

Данное выражение извлекает длину строки и выводит ее на экран вместо нашего текста:

s = ‘hellow world’;

s.length

Следующее выражение извлекает символы из набора заданного для вашего текста шрифта:

String.fromCharCode(90) + String.fromCharCode(49) + String.fromCharCode(50)

Если вы используете символ «‘r» в строке, как здесь «abcd’refgh», то ваша строка будет в этом месте закончена и начата новая:

abcd

efgh

А сейчас давайте создадим, что-то более сложное. Например, сетку из шестнадцатиричных символов размером 8*4 символа. Символы будут меняться(что-то типа эффекта Numbers). Для этого в поле ввода выражений впишем следующее:

numRows = 4;

numChars = 8;

holdFrames = 5;

seed = Math.floor(time/(holdFrames*thisComp.frameDuration));

seedRandom(seed,true);

j = 0;

while(j 57) c += 7;

s += String.fromCharCode(c);

k += 1;

s += «‘r»;

j += 1;

Давайте разберем его.

Первые три строки определяют размеры сетки, и то, через какое время будет происходить смена символов. Следующие две строки обеспечивают случайную смену символов через каждые 5 кадров. Переменная s содержит нулевое значение (пока нулевое). Это выражение включает два цикла. Внешний цикл формирует нашу сетку. А внутренний генерирует смену символов. А на выходе все это подставляется в нашу переменную s.

Время разделять

Еще один строковый параметр split(). Разберем его на примере.

s = «honesty,integrity,loyalty,compassion,empathy»;

s.split(«,»)[2]

Задана переменная s, равная текстовой строке «honesty, integrity, loyalty, compassion, empathy». Нам нужно извлечь слово loyalty. Для этого используем split().

s.split(«,»)[2] обозначает, что будет извлечено слово после второй запятой.

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

holdTime = 1.0; // время задержки

s = «honesty,integrity,loyalty,compassion,empathy»; // переменная с текстом

j = Math.floor(time/holdTime); // переменная, возвращающая ближайшее целое число,

» меньшее или равное аргументу time/holdTime

s.split(«,»)[j] // будет отображать слово после точки номер, которой будет равен j

Обратите внимание, слова будут меняться только первые 5 секунд. Поэкспериментируйте сами, что бы получить другой результат.

Давайте порисуем

Еще одно нововведение в АЕ6, сразу бросающееся в глаза – это более тесная интеграция инструмента рисования в программу.

Для рисования два раза щелкните левой кнопкой мыши на нужном вам слое и выберите инструмент рисования. Сделайте один завиток. Во теперь можно и выражение добавить.

Добавьте выражение на свойство stoke end.

freq = 0.5;

50*(1-Math.cos(freq*time*Math.PI*2))

Будет происходить достаточно интересная прорисовка.

Давайте усложним нашу сцену, добавим выражение для управления цветом кисти.

if (index linear(index,9,12,[1,1,0,1],[0,1,1,1])

А теперь добавьте на rotation свойства stroke:

(index-1)*30

Последним шагом дублируйте наш слой 11 раз и получите конечную анимацию.

Выражения и новый инструмент (эффект) Liquify

Этот новый эффект позволяет получать очень интересные и органичные имитации жидкости. Давайте, применим его на любом понравившемся вам изображении, и создадим какие-то искажения. Теперь применим на свойстве Distortion Persentage выражение

freq = 0,6; // переменная, определяющая частоту обновления свойство

(1-Math.cos(freq*time*Math.PI*2))*50 // определяет величину свойства по текущему времени

Работа с трэкером

В АЕ6.0 появились изменения в аппарате трэкинга, позволяющие с большим удобством манипулировать данными трэкинга с помощью выражений.

Приведу пример, когда нужно сделать «рой» цветных точек кружащихся вокруг головы дельтапланериста.

У нас имеются следующие слои: видео с дельтапланеристом и слои с цветными точками. Будем трэкать точки к видео. Далее я опишу методику для одного слоя. Для остальных слоев все будет идентично.

Перед тем, как начать трэкинг-анализ примените выражение к параметру Attach Point точки трэкинга:

L= thisComp.layer(«Comp 1»);

masterPos = L.motionTracker(«Tracker 1»)(«Track Point 1»).attachPoint;

masterPos + wiggle(4,45) – position

Теперь трэкайте и получите «рой» точек вокруг дэльтапланериста.

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

Источник

Блог о моушн-дизайне

Собрал список выражений для АЕ, которые упрощают мне работу. Совсем простых в стиле loopOut() или wiggle (.4,6) здесь не будет, но и ничего экстрасложного тоже.

Своих экспрешнов здесь всего парочка. Большинство я брал откуда-то и переписывал по чуть-чуть под себя, так что, у чужих экспрешнов поставлю ссылку на авторов.

Плашка за текстом

Создать шейповый квадратик, а сверху отдельным слоём добавить текст;
Применить к параметру size у шейпа:

Если текст в несколько строк, то к position у шейпа добавьте этот экспрешн. Без него тоже всё будет работать, но придётся вручную подгонять позицию плашки за текстом.

К остальным экспрешнам

Анимируемый wiggle

Простой способ заанимировать wiggle. Используем для этого два слайдера: первый отвечает за частоту, второй за амплитуду. Анимировать лучше только амплитуду.

Добавить эффект Slider Control на слой с экспрешном и продублировать его. Применить к любому параметру:

Цикличный wiggle

Благодаря этому экспрешну, wiggle начинается и заканчивается в одной и той же точке.

Если вдруг цикл не работает, то это скорей всего из-за того, что луп не успевает прийти в изначальное состояние за отведённое время. Просто сделайте loopTime побольше или freq почаще

Прикрепить шейп к одной стороне

Применить к position, изменять size у шейпа:

Риг для катящегося круга и квадрата

Катящийся круг

Применить к rotation, анимировать position:

Катящийся квадрат

Работает как с шейпами, так и со слоями и композициями. Если квадрат катится неправильно — изменить значение Slider Control.

Добавить на слой с экспрешном эффект Slider Control;
Применить к position, анимировать rotation:

На основе экспрешна от Mikey Borup

Ежесекундные ступенчатые повороты

Замена time*n. Только вместо плавного поворота — ступенчатый. Чаще всего пригождается, чтобы сделать анимацию секундной стрелки, шестерёнок или других похожих механизмов.

Применить к rotation:

Управляемые ступенчатые повороты

Практически то же самое, что и выше. Но с чуть большим количеством настроек.

Применить к rotation:

Постоянный масштаб при скейле

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

Применить к scale слоя, у которого должен быть постоянный масштаб:

Переключатель по чекбоксу

Меняет одно значение параметра на другое по нажатию на чекбокс.

Добавить эффект Checkbox Control на слой с экспрешном;
Применить к любому параметру:

Луп для шейпов

Обычный loopOut() не работает с шейпами, но зато работает этот экспрешн.

Применить к path у шейпа:

Range Mapper

Добавить эффект Slider Control на слой с экспрешном;
Применить к любому параметру:

Обводка независимая от скейла

Сохраняет постоянную обводку у шейпов при изменении масштаба.

Применить к «Stroke Width» у шейпа:

Счётчики

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

1) Обычный счётчик

toFixed(1) — количество цифр после запятой;
Добавить эффект Slider Control на слой с экспрешном;
Применить к «Source Text» у текста:

2) Счётчик с запятыми вместо точек

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

3) Счётчик с дополнительными знаками

4) Счётчик с заменой 1 на 001

При zerosAmount = 3 счёт будет идти вот так: 000, 001 … 011 … 111.

5) Счётчик с разрядами

Заменяет 500000 на 500 000.

6) Счётчик для больших чисел

Счётчик, привязанный к Slider Control, не идёт дальше 1 000 000. Поэтому если нужны большие числа — приходится использовать эффект Angle Control.

Добавить эффект Angle Control на слой с экспрешном;
Применить к «Source Text» у текста:

Пара мелочей

И, под конец, 4 полезных мини-выражения, которые часто пригождаются.

1) Привязка к слою выше или ниже

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

index+1 — если нужна привязка к слою ниже

2) Постоянно ускоряющиеся повороты

Попробуйте добавить к rotation:

3) Ключи для time*n

Добавляет постоянное движение, но оставляет возможность ставить ключи.

4) Привязка эффекта к слою

Чтобы Gradient Ramp не слетал при перемещении слоя, добавьте этот экспрешн на Start и End:

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

Источник

WWW.IURAF.RU Уроки видеомонтажа в Adobe

after effects wiggle параметры

Adobe After Effects. Урок 27

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

Задачи на этот урок:

1. Метод loopOut().

after effects wiggle параметры

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

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

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

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

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

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

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

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

after effects wiggle параметры

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

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()

after effects 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().

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

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

after effects wiggle параметры

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

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

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

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

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

after effects wiggle параметры

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

[(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. Пример выражения Движение стрелок часов.

after effects wiggle параметры

R=300; T=time;

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

thisComp.layer(«Hour»).transform.rotation

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

thisComp.layer(«Hour»).transform.rotation*12

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

after effects wiggle параметры

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

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

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

after effects wiggle параметры

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]

after effects wiggle параметры

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

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

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

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

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

after effects wiggle параметры

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *