Как написать скрипт в after effects
Иногда сложную и красивую анимацию приходится делать вручную. Это десятки слоёв и часы работы, но только не для тех, кто умеет использовать выражения в After Effects. Язык выражений базируется на стандартном языке JavaScript, но, к счастью пользователи AAE не нуждается в совершенном знании JavaScript для написания выражений. Вместо этого мы можем создавать выражения, используя инструмент «Pick wipe», создавая простые выражения и затем модифицируя их соответственно нашим дальнейшим потребностям.
Николай Скаринский "Курс по выражениям в After Effects (2014)"
Автор: Николай Скаринский
Жанр: Обучающее видео
Курс даст вам понимание гибкого и мощного инструментария выражений в After Effects и сэкономит вам часы в работе.
1. Вводная часть
Как включить выражения. Value.
Основы синтаксиса JS.
Обращение к другим слоям и самому себе. Иерархия.
index, time и другие глобальные переменные
2. Основы
Position. Массивы, вектора. Индексация.
Типы данных. Счетчики.
Доступ к маркерам и ключевым кадрам.
Свойства слоя. startTime и тд.
Способы работать без кифрэймов
Использовать время маркеров
3. Время
inPoint/outPoint startTime/endTime и вложенные композиции
timeRemap
inPoint/outPoint
“Залипание” сигнала
4. Немного математики
Интерполяция. linear, ease
Векторная математика. Расстояния.
Вращательное движение. Эллипсы.
Дебаггинг, логика
5. Интересные кейсы
Циклы
audioToMarkers
Карусель
Автоориентация
Подсчет скорости
6. Случайные числа
wiggle для про
random, gaussRandom
seedRandom (одно случайное число)
noise
7. Продвинутые методы работы
Движения после маркеров
Реверс анимации
Привязки к предыдущим слоям, рекурсии
Привязка к имени слоя
8. Методы работы с цветом
Массив, сдвиг по цветам
RGB/HSL
sampleImage()
9. Продвинутые методы-2
Координатные пространства, toWorld
Parenting 2.0 (временный, с задержкой)
10. Когда можно не писать выражения
Использование скриптов для продвинутой автоматизации
11. Обзор ExtendScript
Что и почему?
Скрипты как расширение неполного функционала АЕ
Пишем простой скрипт
Книга Создание выражений в Adobe After Effects
Год выпуска: 2003
Автор: Alexander Lavrov
Формат: PDF
Качество: eBook (изначально компьютерное)
Количество страниц: 49
Описание: Для тех, кто любит и умеет или только начинает работать в программе After Effects от Adobe. Использование выражений часто упрощает работу пользователя Adobe After Effects и значительно сокращают время, затрачиваемое на создание сложных взаимодействий между слоями, эффектами посредством создание связи между их свойствами
Если вы ищете быстрое решение в этом вопросе, на VideoHive есть огромная коллекция скриптов. Или вы можете подумать о том, чтобы загрузить свой собственный, авторский скрипт!
Написание первого скрипта
Как указано в пособии по установке и использовании After Effects Sublime Text, скрипты - это файлы, которые используют язык Adobe ExtendScript. ExtendScript - это расширенная форма JavaScript, которая используется несколькими приложениями Adobe, такими как Photoshop, Illustrator, или InDesign. ExtendScript - это хороший и эффективный способ добиться в After Effects чего только не пожелаете.
Скрипты используют язык Adobe ExtendScript, расширенной формы JavaScript, которая используется некоторыми программами Adobe, такими как Photoshop, Illustrator, и InDesign.
В данном уроке мы рассмотрим основные понятия и передовую практику написания скриптов для After Effects.
Создание первой композиции
Начнем с метода
и возьмем всё в фигурные скобки.
- это корень практически всего, как видно на схеме ниже.
Эту схему, а также и большую часть информации, которой я буду делиться в данном уроке, вы можете найти в Adobe After Effects CS6 Scripting Guide.
Теперь создаем нашу композицию, используя объект
и его под-объекты:
, который содержит проект, созданный в первой строчке, и
, который дает вам доступ к папкам и композициям, которые вы видите на вкладке Project в After Effects.
"Почистим" наш код
Написание чистого и поддерживаемого кода действительно важно. Мы больше не пишем быстрых и грязных выражений. Поскольку мы хотим, чтобы наши скрипты были легко масштабируемыми, мы должны принять соглашения сообщества Javascript.
Таким образом, мы будем изолировать ключевые данные в переменные, называя их соответственно их содержимому. Кроме того, мы будем ставить условия в случае, если в нашем файле After Effects уже будет проект или композиция.
указывает, что следующая переменная является новой. Поэтому в строке 9 мы больше не используем
, потому что мы хотим использовать значение
(которая есть нашей композицией, которую мы только что создали).
Вот, строка за строкой, что мы сделали:
Строка 3: создаем новую переменную
, которая будет равна
не является неопределенным и в противном случае равен
Строка 6: Создаем новые переменные
, которые обе равняются новому массиву значений.
Строка 7: Создаем новую переменную
, содержащую имя, которое мы дадим нашей композиции.
. Он не определенный и в противном случае будет равен результату метода
, которому мы отправим масив аргументов, содержащий:
- Имя композиции
- Ширину композиции
- Высоту композиции
- Пиксельная пропорция композиции
- Длительность композиции в секундах
- Частоту кадров композиции
Строка 9: Используйте
, который откроет монтажный стол композиции.
Да, здесь много методов и свойств. Время от времени вам нужно будет заглядывать в Adobe After Effects CS6 Scripting Guide, чтобы больше узнать об объектах и их доступных методах и свойствах. Это руководство действительно хорошо написано, а быстрый поиск объекта проекта немедленно приведет вас к нужной информации.
Быстрый обзор основных понятий Javascript
- Переменная: может хранить значение, массив значений или объект.
- Массив: содержит множество значений. Массивы могут быть представлены двумя способами.
- Функция: часть кода, разработанного для выполнения специфической, конкретной задачи.
- Объект: объект немножко сложнее, но пока вам достаточно будет знать, что у него есть свойства и методы.
- Свойство: почти то же, что переменная
- Метод: похож на вызов функции
Добавление групп отмены
Поскольку во время выполнения скрипта произойдет много операций, вам нужно решить, что будет, когда вы нажмете
Сделать это довольно легко, мы просто берем наш код в
, которые являются методами объекта
. Этот метод берет один аргумент, который представляет собой имя, которое будет отображаться в меню After Effects
Создаем слой фона
Чтобы создать наш слой заднего фона, мы будем использовать
и отправьте ему следующие аргументы:
Добавляем эффект сетки
Лучший способ создать наш центрированный крест - это использовать эффект Grid на нашем фоновом слое. Для этого мы будем использовать нашу переменную
, которая относится к
и мы будем использовать
Здесь вы должны кое-что взять себе на заметку. Во-первых, метод
является цепным, что означает, что вы можете вызвать его несколько раз, чтобы достичь желаемого суб-свойства.
: Прозрачность эффекта сетки.
Во-вторых, мы используем метод
, когда мы хотим установить значение, но не тогда, когда хотим установить выражение.
Создание стирающего слоя
Чтобы создать ефект стирания, создадим новый слой и применим эффект Radial Wipe.
Мы используем метод
для установки ключевых кадров и
, чтобы зациклить анимацию (имеет смысл, верно?).
Добавляем слой с текстом
Игра с текстом немного отличается, так как вы должны напрямую изменять значения свойств исходного текста.
Мы изменили свойства значений нашего текста и использовали
- это функция Javascript, которая удаляет десятичную часть числа. После этого центрируем опорную точку, используя метод
Добавление эллипсов
Чтобы добавить эллипсы, мы будем использовать метод
дадим ему векторную группу и векторную форму. Мы также сделаем небольшую функцию, чтобы избежать повторения кода.
Строка 5 действительно важна, иначе вы не сможете найти свойство
Мы использовали небольшую пользовательскую функцию вместо повторного создания эллипса. Вы можете использовать функции по своему усмотрению.
Основное правило: если вы копируете строки кода, рассмотрите возможность использования функции.
Далее мы просто изменили свойства фигуры. Вы можете обратиться к руководству Adobe After Effects CS6 Scripting Guide, чтобы увидеть их в списке.
Возможно вы заметили, что
немного отличается от того, что мы написали. Javascript поддерживает привязку к многим строкам. Результат будет таким же, здесь нет хорошего или плохого способа, это индивидуальный выбор стиля кодирования, который вы желаете, или не желаете принять.
Заключение
Возможности скриптописания бесконечны и могут стать действительно мощным инструментом, если их хорошо усвоить. Вот еще несколько документов о написании скриптов и Javascript:
Всем привет! В этой статье я хочу поговорить с Вами о 5 простых, но тем не менее очень полезных выражениях. Эти выражения я использую чуть ли не в каждом втором проекте и они существенно облегчают мою жизнь.
1) Итак, первое из них - это loopOut(). Простенькое выражение для зацикливания анимации. Допустим, у нас есть бабочка, собранная из трех частей: левое крыло, правое и тело.
И нам необходимо сделать так, чтобы крылья без остановки вращались вокруг оси Y, создавая тем самым эффект реалстичных махов крыльями. Но представляете, сколько ключевых кадров нам нужно поставить, чтобы анимировать крыло на протяжении маленькой пятисекундной композиции. По моим подсчётам около 60! И, чтобы не возиться с этим огромным количеством ключевых кадров, разработчики программы придумали одно простое выражение - loopOut.
Поэтому, мы находим параметр Rotation Y и слева от него кликаем по значку с секундомером. После чего, в начале композиции появится ключевй кадр, измените значение параметра для этого ключа на -80. После этого мы переходим на 4 кадра вперед и изменяем значение параметра Rotation Y на 80. Затем ещё 4 кадра вперед и меняем значение параметра обратно на -80. Таким образом мы получили 3 ключевых кадра.
После этого мы зажимаем клавишу Alt и кликаем ещё раз по значку с секундомером. Появится текстовая область для выражения. В ней мы пишем loopOut().
Всё, теперь наша анимация продолжается до самого конца композиции без всяких ключевых кадров.
2) Ок, правое крыло мы анимировали. Теперь займемся левым. Не будем повторятся, и левое крыло анимируем немного другим способом. Все Вы, наверно, ещё со школьной скамьи помните замечательную математическую функцию синус. Так давайте воспльзуемся ею и здесь. Делаем Alt+клик по значку с секундомером слева от параметра Rotation Y левого крыла. В появившемся окне пишем Math.sin(time).
Крыло перемещается, но совсем незаметно. Попробуем увеличить частоту вращения, для этого в скобках time умножим на 15.
Отлично частоту мы увеличили, но, как Вы помните, значения синуса находятся в диапазоне от -1 до 1. Поэтому и амплитуда вращения крыла у нас такая маленькая. Чтобы увеличить её умножим всё это выражение на 80.
В итоге получим: 80*Math.sin(time*15). Можно, конечно, немного увеличить частоту, но это уже на Ваше усмотрение.
3) Wiggle. Наверно, самое используемое выражение в среде After Effects, и всё-таки не все знают для чего оно предназначено. Wiggle отвечает за хаотичные перемещения. Вообще функция wiggle имеет целых пять аргументов, но в основном используются только два. Первое - это частота, второе - амплитуда колебаний. Рассмотрим на примере. Я анимировал положение бабочки, теперь она перемещается из левого нижнего в правый верхний угол.
Движение ожидаемо смотрится линейно и неправдоподобно. Если мы хотим сохранить направление движения, но при этом добавить немного органичности, то нам не обойтись без wiggle. Итак, делаем Alt+клик на значке с секундомером слева от параметра Position и в текстовой области вбиваем wiggle(3,400). Смотрим и видим, что полёт бабочки стал более реалистичным. Что же означает написанное выражение wiggle(3,400). А означает оно то, что три раза в секунду с амплитудой в 400 пикселей в любом направлении будут происходить случайные колебания. Самое интересное это то, что wiggle можно применить практически к любому параметру в AE.
4) Данный пункт является не столько выражением, сколько очень интересным приёмом при работе с wiggle. Многие меня спрашивают, как можно изменять настройки функции wiggle с течением времени, или по-другому, как анимировать один из аргументов функции wiggle. Очень просто! - отвечу я Вам. Создаём нуль-объект. Затем идём Effect => Expression Controls => Slider Control. Пускай у нас будет изменятся амплитуда. Переходим к выражению, которое мы создали в предыдущем пункте. Выделяем амплитуду,
берём pickwip и тянем его до параметра Slider нуль-объекта.
Вот такое выражение мы получим в итоге:
Теперь Вы можете с легкостью анимировать значение параметра Slider и таким же образом будет менятся амплитуда.
5) И последнее о чем я хотел Вам сегодня поведать - это наипростейшее выражение с управляющей переменной time. Вы, наверное, не раз сталкивались с такими выражениями. На пример, у нас есть какой-нибудь сплошной слой, мы применяем к нему эффект Fractal Noise и, чтобы данный эффект не был статичным нам нужно анимировать параметр Evolution.
Да, можно поставить 2 ключевых кадра в начале и в конце композиции, но есть и другой путь. Делаем Alt+клик по значку с секундомером слева от параметра Evolution и пишем time. Теперь, если мы перемести индикатор текущего времени в позицию одной секунды, то значение параметра Evolution будет равнятся одному градусу. 1 секунда = 1 градус - всё очень просто!
Если нам нужно ускорить анимацию, допустим в пять раз, то мы пишем time*5.
В этой статье я собрал скрипты, которыми я пользовался весь 2019 год, и которые могу смело рекомендовать.
Для начала, что такое скрипт в After Effects и как его установить:
Чтобы установить скрипт достаточно поместить файл из скачанного архива (обычно это файл с расширением .jsxbin) по адресу:
Windows
Program Files\Adobe\Adobe After Effects <version>\Support Files\Scripts\ScriptUI PanelsMac
Applications/Adobe After Effects <version>/Scripts/ScriptUI PanelsДля некоторых скрпитов нужно в настройках after effects разрешить функцию: Allow Scripts To Write Files And Access Network
На сегодняшний день, это мой самый часто используемый скрипт для Афтер Эффекта. Он всегда активирован и экономит мне очень много времени.
Идея скрипта заключается в том, что вы можете создавать свои быстрые команды и добавлять кнопки с этими командами в панель. В кнопки можно загружать эффекты, скрипты, выражения, команды из меню, прессеты и так далее.
Я считаю, что это просто must have скрипт.
Цена: $39.99
Recursive Scale Comp
Из недостатков, в один момент можно уменьшить одну сцену. Если есть в композиции parenting, могут слетать настройки и нужно заново обновлять выражения.
Цена: бесплатно
Newton 3
Скрипт, который добавит немного физики в ваш After Effects. Вы сможете легко воздействовать на объекты и использовать законы физики для своей анимации.
Цена: $249.99
rd: Comp Setter
Плагин, который позволяет быстро изменить параметры композиции: размер, длина, фреймрейт, тип рендера и так далее. Все тоже самое, что и composition settings, только изменения можно применять и для множества выделенных композиций.
Цена: бесплатно
BG Render
Этот скрипт выжмет все соки из вашего компьютера и превратит его в настоящего рендер-монстра.
Скрипт рендерит сцены в фоновом режиме и делает это чертовски быстро, намного быстрее чем Media Encoder и ощутимо быстрее чем стандартный рендер. Скрипт будет необходим, если вы цените свое время.Цена: $69.99
Цена: бесплатно
Motion Tool 2
Еще один очень крутой, бесплатный скрипт с большим функционалом. С помощью motion tool 2 можно менять график анимации, одним кликом регулировать положение anchor point, конвертировать вектор в shapes и многое другое.
Этот скрипт очень похож на платный Motion v3. Скрипт прилагается к бесплатному курсу. Нажимаете enroll course и скачиваете скрипт бесплатно.
Цена: бесплатно
ButtCapper
Скрипт округляет края шайпов в один клик. Можно добавить кнопкой в Kbar.
aw_PreviewGenerator
Полезный скрипт для тех, кто делает проекты для videohive или motionarray. Скрипт создает gif превью сцен в один клик. Можно быстро и легко создать html файл из готовых гифок. Много настроек и быстрая работа делает его musthave для всех, кто продает свои проекты.
Цена: $29
GifGun
Один из лучших скриптов для создания анимированных гифок. Много настроек и все делается в фоновом режиме. Оптимизация гифок лучше чем, если выводить через photoshop.
Цена: $29.99
Plexus
Plexus это как отдельный вид искусства. Скрипт, который генерирует частички и связи между этими частичками, а при использовании модификаторов вы можете менять и искажать 3d объекты и создавать невероятные сцены.
Цена: $249.99
Paragraph 2
Быстрый способ выровнять текст. В отличии от стандартного инструмента parapgraph, ваш текст больше не будет прыгать по всей композиции.
Цена: бесплатно
DecomposeText
Скрипт помогает разбить длинный текст на отдельные слои. Можно разделить по строчкам, словам, буквам.
Важно заметить, что лучше сохранить проект, прежде чем использовать скрипт. У меня несколько раз зависал афтер после применения этого скрипта на текст с эффектами.Цена: бесплатно
Бонус
FX Console
Читайте также: