Adobe effect выражения pdf
Многие примеры в этом разделе основаны на выражениях, предоставленных Дэном Эббертсом (Dan Ebberts).
Можно создать выражение без использования свойств из других слоев. Например, можно заставить слой вращаться вокруг центра композиции.
Выберите слой. Нажмите клавишу «P», чтобы открыть его свойство «Положение» на панели «Таймлайн». Щелкните секундомер слева от названия свойства, удерживая клавишу ALT (Windows) или OPTION (macOS).
Введите следующий фрагмент кода в поле выражения:
Покачивание — одно из самых распространенных выражений After Effects. Оно виляет объектом на основе случайных значений. С помощью этого выражения можно сделать сцену более естественной. Это выражение добавляется в свойство слоя «Положение».
Например покачивание (частота, величина), где первое значение — это количество колебаний в секунду, а второе — величина покачивания. Следовательно, при использовании wiggle(2,30) слой будет покачиваться 2 раза в секунду, не больше чем на 30 пикселей в любом направлении.
Выражения можно сделать ключевыми кадрами, заменив значения ссылками на элементы управления выражениями, такими как ползунок. Заменив второй аргумент выражения wiggle() ссылкой на ползунок, можно создать ключевой кадр этого поведения, чтобы оно запускалось и выключалось в определенное время.
- Добавьте эффект элемента управления «Ползунок» к любому слою и назовите его «Wiggle Amount»
- Примените следующее выражение к положению того же слоя:
Также называемое отскоком по инерции, это выражение использует анимацию ключевых кадров слоя для создания естественно выглядящего перелета. Оно создает отскок любого параметра между ключевыми кадрами на основе его скорости. Отскок происходит в том направлении, в котором движется объект.Для создания этой анимации: Создайте или импортируйте графический элемент в After Effects.
Добавьте ключевые кадры в свойство «Положение» слоя, к которому необходимо добавить анимацию. Добавьте следующее выражение в свойство «Положение» слоя:
При необходимости инструмент «Лассо» может связывать значения поворота между слоями для анимации объектов. Представьте, что эти три круга — стрелки часов. Часовая стрелка движется между часами, минутная делает полный круг по циферблату.
- Импортируйте или создайте три слоя с кругами сплошного цвета. Предположим, что один из них работает как часовая стрелка, другой как минутная стрелка, а третий как секундная. (См. раздел Слои сплошного цвета и элементы видеоряда сплошного цвета.)
- Разместите опорные точки на концах слоев. (См. раздел Опорные точки слоя.)
- Переместите слои так, чтобы опорные точки находились в центре композиции. (См. раздел Перемещение слове в пространстве.)
- Задание ключевых кадров «Поворот» для часовой стрелки. (См. раздел Установка или добавление ключевых кадров). Выберите свойство «Поворот» для минутной стрелки, а затем пункт «Анимация» > «Добавить выражение».
- Перетащите инструмент «Лассо» к свойству «Поворот» для самого большого круга. Появится следующее выражение: thisComp.layer("circle").rotation.
- Чтобы второй круг поворачивался в 12 раз быстрее первого, добавьте «*12» в конце выражения следующим образом: thisComp.layer("circle").rotation*12.
- Повторите то же самое с третьим кругом, добавив в конце выражения «*24»: thisComp.layer("circle").rotation*24.
Выражение позволяет зацикливать анимацию без необходимости постоянно добавлять ключевые кадры. Например, с его помощью можно создать анимацию нескольких вращающихся фигур, длящуюся до окончания композиции. Здесь можно установить ключевой кадр для начала вращения и второй ключевой кадр для его окончания. После добавления выражения loopOut в параметр поворота вращение продолжится.
Переменные в приведенном ниже выражении позволяют настроить типу цикла и количеству ключевых кадров, которые необходимо включить в цикл.
Давайте начнем с типа цикла. В приведенном ниже выражении устанавливается значение типа «cycle».
С выражениями loopOut можно использовать типы «Cycle», «Continue», «Offset» и «Ping Pong». Цикл этого типа заканчивается на последнем ключевом кадре, затем снова запускается с первого ключевого кадра в выбранном диапазоне. Вторая переменная — это количество включаемых ключевых кадров. LoopOut начинает работу с последнего ключевого кадра и движется в обратном направлении. Значение по умолчанию «0» учитывает все ключевые кадры в наборе от начала до конца. Если в цикле не нужно использовать все ключевые кадры, укажите необходимое значение, начиная считать с конца. При значении «1» вместе с последним ключевым кадром будет включен предпоследний, при значении «2» будет включено 2 предпоследних кадра и так далее.
Если у слоя есть родительский слой, значение, отображаемое в его свойстве «Положение», отображает не его «истинное» местоположения в композиции, а местоположение его родительского слоя. Чтобы найти истинное местоположение дочернего слоя, необходимо использовать выражение для преобразования координатного пространства родительского слоя в координатное пространство композиции. Примените следующее выражение к положению слоя без родителя, чтобы связать его с расположением дочернего слоя:
Задержка и смещение — отличный способ сделать анимацию более динамичной и естественной. Чтобы создать смещения и управлять ими, необходимо добавить несколько дочерних слоев к одному родительскому слою, а затем применить выражение к положению каждого из дочерних слоев, создавая задержку движений, унаследованных от родителя.
Примечание: этот метод работает только с дочерними слоями
Также можно установить величину задержки на основе индекса дочернего слоя относительно родительского слоя. Это позволяет легко изменить порядок анимаций дочерних слоев, размещая их на временной шкале под родительским слоем (или над ним при необходимости их появления перед родительским слоем):
Выражения в After Effects мощный инструмент, с которым рано или поздно придется столкнутся. Так с чего же начать новичку, что почитать в сети, в рунете? Может книжки какие есть?
Если мы говорим о рунете, и о русскоязычных каких-то материалах, то самое первое это конечно же старая книжка (2003 года) "Создание выраженийв Adobe After Effects", за авторством Александра Лаврова.
Забрать ее можно здесь.
В этой книге, автор сделал огромную работу по переводу статей с популярных сайтов (www.jjgifford.com, creativecow.net, aefreemart.com и др.). Сейчас некоторые примеры немного устарели, так как язык выражений в АЕ "прокачался". Но тем не менее, ценность книги очень высока. Начать стоит с нее.
Если вы серьезно намерены заниматься и разбиратся в выражениях, то стоит пройти курс Николая Скавинского "Полный курс по выражениям"
Помимо самих выражений, разбираются также скрипты. Курс платный, но он того стоит.
Не стоит забывать про большую группу по выражениям в ВК:
Также Николай Скавинский готовит русскоязычный ресурс посвященным выражениям, туда будут включены все те, примеры и посты которые есть в группе, но в более сформированном виде.
Если вас не страшит английский язык, то смело нападайте на мануал по АЕ! А что вы подумали, там нет нормальной информации?
Просто огромнейшая глава про выражения, начиная с самых основ (Expressions Basic), плюс есть также различные примеры. Ознакомится стоит обязательно! Забрать мануал к CS6 версии можно здесь.
Сайт давно уже не обновлялся, но есть куча примеров с разборами выражений. Советую заглянуть.
Золотое правило: "Чем анимация "натуральней", тем она лучше выглядит в целом." Добится этой "натуральности" (то есть создать условия, для имитации законов физики - отскоков, инцерции и пр.), можно разными путями. Но создавать все это с помощью ключей очень утомительно. В этом нам помогут выражения, и в данной статье рассмотрим выражения "bounce" типа.
Inertial Bounce.
Очень распространенный эффект "отскока", который можно записать в виде выражения:
Где, amp - амплитуда отскока, freq - частота, decay - затухание
Элемент к которому необходимо привязать данный экспрешн,переводим в 3д слой. Затем перемещаем его anchor point в то место, где будет его "центр тяжести", то есть откуда будет идти вращение. В моем случае это самый верх слоя (текст). Также создаем ключи вращения (в моем случае X rotation от 90 до 0) и в этот X rotation дописываем выражение Inertial Bounce. Также можете создать свет (Light) в композиции для еще более натурального вида анимации.
Decay Bounce.
Еще один вид отскока, на этот раз "от земли". Со следующим выражением:
veloc = thisComp.layer("Control Layer").effect("velo control")("Slider");
amplitude = thisComp.layer("Control Layer").effect("amplitude control")("Slider");
decay = thisComp.layer("Control Layer").effect("decay control")("Slider");
Проблема в том, чтобы использовать данное выражение необходимо создать дополнительный Null Object (или solid слой), назвать его как "Control Layer". Затем применить к ниму 3 фильтра Slider control, и назвать каждый как "velo control", "amplitude control", "decay control". Поставить у них значения -200,-200 и 4, соответственно. Кстати эти значения регулируют скорость (velo), амплитуду (amp) и затухание (decay) отскока. Затем на объект к которому необходимо сделать данный отскок, применяем выражение на параметр Position.
Better Bounce.
Очень простое выражение, которое можно записать в виде:
freq = effect("bounce - frequency")("Slider"); //oscillations per second
amplitude = effect("bounce - amplitude")("Slider");
decay = effect("bounce - decay")("Slider");
Это выражение можно добавить к любому из параметру transform, главное аккуратнее подбирайте частоту отскока (freq) так как оно основано на fps проекта.
Баскетбольный мяч.
Еще одно популярное выражение имитирующее отскок баскетбольного мяча. Выражение к позиции следующее:
ребят, предлагаю сюда скидывать различные интересные экспрешшоны и пояснения к ним) мельком пролистал 87 тем и вроде не увидел аналогичной темы. а тема интересная блин! expressions значительно упрощают задачу и ускоряют работу, делают результат гораздо динамичней и красивей. короче плюсов дофига, минусов нету)
начну пожалуй с самого популярного экспрешшона рунета, автором которого является Тимур Константинов. вот скрипт:
mp = .1;//Чем больше значение, тем больше амблитуда
freq = 5;//Чем больше значение, тем больше частота
decay = 7;//Чем больше значение, тем меньше задержка
n = 0;
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)<
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
>else<
value;
>
точнее - вот так:
amp = .1;
freq = 5;
decay = 7;
n = 0;
if (numKeys > 0)n = nearestKey(time).index;
if (key(n).time > time)n--;
>
>
if (n == 0)t = 0;
>elset = time - key(n).time;
>
if (n > 0)v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
>elsevalue;
>
да, спасибо. скопипастил криво) можно и с комментариями оставить после amp/frec/decay, потому что за двойным слешем программа не читает скрипт и туда можно вписывать пометки и комментарии
вот ссылка на несколько полезных выражений
вот те,которыми я пользуюсь:
Для оси X:
Math.cos(S*time)*360
Для оси Y:
Math.sin(S*time)*360
Для колес эволюции и оси Z:
time*S
amp = 15; //amplitude (pixels)
freq = 10; //frequency (cycles per second)
n = 0;
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)<
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
amp = .05;
freq = 4.0;
decay = 2.0;
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
>else<
value;
>
,где amp - амплитуда, freq - частота, а decay - затухание
Серега маслов, это вообще не Тимура скрипт)) А Хэрри Фрэнка с грэй машин)
Но экспрешн реально полезный)
2 Владислав Соловьев
а по моему - это просто код программирования.
зная язык, можно самому написать без Генри и Тимура
Владислав Соловьев
спасибо за разъяснение, буду знать) спасибо тем, кто поддержал тему! продолжаемв том же духе))
Вовка, это то да)
Просто этот экспрешн я видел давным давно еще на старой версии сайта грэй машин) А вообще Хэрри Фрэнк очень неплохо рассказывает, советы дельные)
origin = [10,10,10];//описываем стандартный размер массива (таблица)
dimX = 10;//к-во ячеек по X
dimY = 10;//к-во ячеек по Y
dimZ = 10;//к-во ячеек по Z
gap = 50;//максимально расстояние между ячейками
gridRate = 500;//скорость движения частиц
holdTime = .1;//максимальная задержка по времени
//описываем необходимые переменные, заранее обнулив их
start = 0;
startX = 0;
startY = 0;
startZ = 0;
endX = 0;
endY = 0;
endZ = 0;
deltaX = 0;
deltaY = 0
deltaZ = 0;
end = 0;
j = 0;//переменная, необходимая для проведения цикла и дальнейшей проверки значений
while (time >= end) //цикл, аналог цикла "for"
seedRandom(j,true); //генератор случайных чисел
//задаем начальные позиции элемента
startX = Math.floor(random(dimX))*gap + origin[0]; //по X
startY = Math.floor(random(dimY))*gap + origin[1]; //по Y
startZ = Math.floor(random(dimZ))*gap + origin[2]; //по Z
j +=1;//наращиваем значение j на единичку с каждым шагом, т.е. в следующем цикле
произойдет новое перемещение объекта
seedRandom(j,true) //снова рандомим
start = end; //присваиваем значению "end" значение "start" для просчета
конечной позиции элемента
//========«строчим все как для старрта»==========
endX = Math.floor(random(dimX))*gap + origin[0];
endY = Math.floor(random(dimY))*gap + origin[1];
endZ = Math.floor(random(dimZ))*gap + origin[2];
deltaX = Math.abs(endX - startX);
deltaY = Math.abs(endY - startY);
deltaZ = Math.abs(endZ - startZ);
//теперь конечная позиция будет менятся в каждом новом цикле
end += (deltaX + deltaY + deltaZ)/gridRate + 3*holdTime;
>
p1 = start + deltaX/gridRate; //определено рандомное расположение объекта и первое движение по X
p2 = p1 + holdTime; //второе движение c задержкой
p3 = p2 + deltaY/gridRate;//третье со смещением по Y
p4 = p3 + holdTime;// четвертое с задержкой
p5 = p4 + deltaZ/gridRate; //пятое со смещением по Z
//========«проверка на порядок действий (порядок движения) и движение по-этапное»=========
if (time < p1)
ease(time,start,p1,[startX,startY,startZ],[endX,startY,startZ]) //изменение позиции с мягким ключом (короче в виде часиков песочных :D)
>
else if (time < p2)
[endX,startY,startZ] //первое смещение
>
else if (time < p3)
ease(time,p2,p3,[endX,startY,startZ],[endX,endY,startZ]) //третье движение
>
else
if (time < p4)
[endX,endY,startZ] //четвертое
>
else
if (time < p5)
ease(time,p4,p5,[endX,endY,startZ],[endX,endY,endZ]) //пятое
>
else
[endX,endY,endZ]
>
//движение элемента теперь будет происходить рандомно по сетке по направлениям X,Y и Z
Мы не обмениваемся ссылками на пиратский контент - будь то скрипты, плагины или что-нибудь в этом духе. За ссылки на ломаные скрипты - бан.
Особенно воздержитесь от вопросов типа "как поставить афтер эффектс" или "у меня кодек не работает". Для этого есть другие места.
ВНИМАНИЕ - список материалов группы в разделе "Список выражений" чуть ниже (привет, кэп). Прежде чем задать вопрос, посмотри. Возможно, на него уже есть ответ.
Ссылки на выражения по темам
- Часть 1.
- Часть 2 - seedRandom
- Часть 3 - Шум Перлина
- Bar Graph'ы, инфографика (+проект)
- Остановка в случайном месте
- Вступление
- Кладем слой с эффектом в композицию
- Ставим ключевой кадр всем выбранным свойствам
- Пэрентим кучу слоёв к другой куче слоёв
- Добавляем нуль, подрезанный под выбранные слои
- Массовая смена тайминга композиций и выложенных прекомпов
- Подрезка первого слоя под второй
- Подрезка прекомпоза для AE младше CC
- Expression Toolbox - своя библиотека выражений
- iExpressions - более сотни выражений
- Smart Baker - умный перевод выражений в кифрэймы
- True Comp Duplicator - дублирует композицию со всеми вложенными прекомпами
- Reposition Anchor Point - перемещаем сами поняли что
- Masks to Layers - маски в слои
- Ease and Wizz - сглаживания
- Rift - грамотный сдвиг слоев, кифрэймов, маркеров(. )
- pt-ImportSubtitles - импорт субтитров в текстовый слой
- pt-Multiplane - создание трехмерной сцены из 2д слоев с глубиной
- Mocha Import - грамотный импорт tracking data из mocha
- Duik - ИК и куча фишечек для анимации
- BG Renderer - рендерит пока вы работаете
- Activate Disabled Expressions - активирует отключенные выражения
- Distribute Layers - раскидывает слои по композиции
- Align 3D - выравнивание слоев в 3D!
- Lines Creator - соединяет слои линиями
- AEmap + Locations - делает карту мира и работает с ней
- ДЗ №2 - появление без кифрэймов
- ДЗ №3 - золотое сечение
- ДЗ №4 - зависимость от скорости
- ДЗ №5 - Зависимость от расстояния
- ДЗ №6 - одометры
AE_Expressions запись закреплена
Решил, что сейчас лучшее время, чтобы выложить весь курс по выражениям сюда, а не на гугл или ютуб )
Абдул Альхазред
Это спасибо, это от души
AE_Expressions запись закреплена
Очень интересный подход к проблеме временного парентинга. Помню, сколько сил потребовало полное решение от Алексей Кравченко
Лариса Магданова
На самом деле пользоваться действительно просто, автор показала на скрине исчерпывающую инструкцию. Может, картинка сложится, если показать так?
AE_Expressions запись закреплена
Олег Иванов
Решил потихоньку показывать, то над чем сейчас работаем. Мы создаём абсолютно уникальный проект, который позволит очень быстро создавать 3Д локацию любой точки Земли и показать на ней ваше путешествие.
Сходили в поход в горы, сплавились по крутой реке, проехали на горном веле, проделали большой путь, покажите это в красивом видео. Дабы люди оценили масштаб. Сделать это максимально просто с помощью нашего проекта для After Effects и Element3D.
Очень скоро мы сделаем просто бомбический апгрейд существующего проекта. А пока вот вам кусочек этого апдейта: реалтайм террейн прямиком из АЕ и Element3D.
Следите за новостями, дальше больше!
Читайте также: