Найти в Дзене
Будка монтажёра

After Effects язык Expression

В эффекте есть свой язык программирования, который позволяет создавать зацикленные анимации, автоматизировать проект и классные эффекты. Он пишется на языке Adobe ExtendScript, который является расширенной версией JavaScript. Если вы хоть раз писали код на любом языке, разобраться будет очень не сложно. Однако если программирование вас пугает, я помогу избавиться от этого страха. Expression можно прописать для любого параметра объекта, у которого есть значок таймера. Просто зажмите альт и тыкните по таймеру. В появившемся окне с текстом, можно прописывать своё выражение. Пожалуй первое это точно wiggle(), рандомно изменяет значение, рассмотрим поподробнее. Функция wiggle(частота,амплитуда) содержит два параметра, первое отвечает за то, как часто будет изменятся значение, а второе на сколько это значение изменится. К примеру применим wiggle(2,10) к размеру(size), объект будет менять каждые 2 секунды размер в диапазоне [+10 -10]. Если нужно чаще, меняет первый параметр, нужно чтобы объек
Оглавление

Ну что немного покодим?

В эффекте есть свой язык программирования, который позволяет создавать зацикленные анимации, автоматизировать проект и классные эффекты. Он пишется на языке Adobe ExtendScript, который является расширенной версией JavaScript. Если вы хоть раз писали код на любом языке, разобраться будет очень не сложно. Однако если программирование вас пугает, я помогу избавиться от этого страха.

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

Expression можно прописать для любого параметра объекта, у которого есть значок таймера. Просто зажмите альт и тыкните по таймеру.

В появившемся окне с текстом, можно прописывать своё выражение.

2. Часто используемые выражения

Пожалуй первое это точно wiggle(), рандомно изменяет значение, рассмотрим поподробнее. Функция wiggle(частота,амплитуда) содержит два параметра, первое отвечает за то, как часто будет изменятся значение, а второе на сколько это значение изменится.

К примеру применим wiggle(2,10) к размеру(size), объект будет менять каждые 2 секунды размер в диапазоне [+10 -10]. Если нужно чаще, меняет первый параметр, нужно чтобы объект был больше или меньше, то второй.

-2

Второй это loopout(), позволяет зациклить анимацию. Главное, чтобы ключи анимации начинались и заканчивались одинаково, чтобы не было дерганий анимации. Если вы начали на позиции [100,100], то и последний ключ должен быть [100,100].

-3

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

-4

Вы также можете использовать эту спираль, когда не знаете, как правильно прописать свойства объекта в Expression. Просто свяжите две спирали и в коде будет прописано правильно его имя.

-5

БОНУС

Вот мой любимый Expression для создания bounce анимации

amp = .1; //амплитуда отскока

freq = 1.0; //частота отскока

decay = 4.0; //сила затухания

n = 0;

time_max = 6;

if (numKeys > 0){

n = nearestKey(time).index;

if (key(n).time > time){

n--;

}}

if (n == 0){ t = 0;

}else{

t = time - key(n).time;

}

if (n > 0 && t < time_max){

v = velocityAtTime(key(n).time - thisComp.frameDuration/10);

value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);

}else{value}

-6

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