Експериментиране с изрази в Adobe After Effects 6

В шестата версия наAdobe After Effects машината за изразяване получи няколко полезни допълнения, включително тези, свързани със самия език за изразяване.

Но на първо място.

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

Според мен синтаксисът стана много по-удобен и логичен.

Вече не е необходимо всички многословни обекти, методи и свойства да бъдат разделени от разделителя "_ " (напримерaudio_levels ). Сега всичко е във формат"interCaps". Напримерaudio_levels сега изглежда така -audioLevels.

Вместо кавички като ", вече можете да използвате единични кавички.

Старият синтаксис, според разработчиците, също ще работи, но е за предпочитане да използвате новия.

Подобрено мърдане()

Сега можете да регулирате осцилациите наwiggle() сseedRandom(). Факт е, чеseedRandom() променя стойностите, получени сwiggle(), дори ако последният е зададен по същия начин. Като променимseedRandom(), като същевременно запазимwiggle(), непроменени, ще получаваме напълно различни стойности всеки път. Вижте следните изрази:

seedRandom(13);

мърдане(3,35)

мърдане(3,35)

Въпреки че и в двата случаяwiggle() е константа, но стойностите на израза ще бъдат напълно различни, благодарение наseedRandom().

Имайте предвид обаче, чеwiggle() игнорира безвременния параметърseedRandom(seed, timeless=false). Той еfalse по подразбиране.

Ако искате да запазитеwiggle() постоянен за определен брой кадри, можете да използвате полезната нова функцияposterizeTime().

posterizeTime()

Изразителната машина вAE 6.0 получи нова функцияposterizeTime(). С нея можете да контролирате скоростта на анимацията. Например стойността наwiggle() ще се променя пет пъти в секунда в следния израз:

posterizeTime(5);

мърдане(5,35)

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

Това е доста интересен нов помощник за ключови кадри(„Конвертиране на аудио в ключови кадри“). Той създава нулев обект, нареченАудио амплитуда по подразбиране. Този слой съдържа три анимирани ефектаплъзгач. Първият от тях показва промените в силата на звука в левия канал в ключови кадри, вторият в десния, а третият в двата канала едновременно. Вече можете да извличате стойности от тези ефекти с помощта на изрази и да ги прилагате към някакво свойство. Тоест, да направите това, което преди това беше направено вmotion math с помощта на скриптаlayeraud. И според промяната в нивата на силата на звука, свойствата, които извличат стойности отплъзгача, ще се променят.

В примера, показан на илюстрацията, използвамеКонвертиране на аудио в ключови кадри, за да преоразмерим слоясредно циан въз основа на нивото в десния канал и слоясредно жълт в зависимост от нивото в левия канал. Изразите са прости...

Между другото, ако не намеритематематика на движението там, където сте свикнали да я виждате вAE5.5Асистент за ключови кадри ), не се притеснявайте. Някъде впомощ за скриптове вAE6.0 прочетох, че по подразбиранемотивация не е инсталирана в шестата версия (учете се, казват те, господа, пишете скриптове сами). Но настройването наAE не представлява проблем. За да направите това, просто плъзнете файлаMotionMath.AEX от плъга наAfter Effects 6.0'Support Files'-ins'Professional'Keyframe Assistant'(MotionMath) едно ниво нагоре, т.е. вAfter Effects 6.0'Support Files'Plug-ins'Professional'Keyframe Assistant. Е, в същото време файлове за езикова поддръжка, ако искате да използвате поддръжка за немски, френски или японски.

Всеки, който е пробвал новата версия наAE, първо е забелязал въвеждането на инструментаtext. Най-накрая те казаха, чеadobe е продължил напред и е взел под внимание многото искания от потребителите и е създал добър текстов инструмент. Въпреки че онзи ден се качих на конференции, посветени наAE, и като цяло не всичко е толкова гладко с този инструмент, както се оказа. Отбелязвам, че лично нито един от изброените проблеми не ме докосна.

Инструментътtext има доста голям брой настройки и предимства по отношение на лекотата на използване в сравнение сtext effect (който остана в комплекта и очевидно не трябва да се изоставя напълно).

С помощта на изрази и този нов инструмент можем да постигнем много, много интересни ефекти.

Първо, нека създадем текстов слой. За да направим това, можем да отидем в менютослой>нов>текст (ctrl+alt+shift+t) или просто да щракнете върху инструмента"T" върху нашата композиция. Имайте предвид, че можете да създавате както вертикален, така и хоризонтален текст. За да направите това, щракнете с левия бутон върху"T" и задръжте. Ще се появи изборът нахоризонтален тип инструмент иливертикален тип инструмент. Изберетеинструмент за хоризонтален тип. Въведете произволна дума. Няма значение коя е. Написах "здравей свят".

Сега нека добавим израз за свойствотоизходен текст (текстови слой > група свойстватекст > свойствоизходен текст).

Нека започнем да изследваме възможностите на изразите за управление на свойстватекст. По подразбиране имамеtext.sourceText в полето за израз. Това означава, че въведеният от нас текст остава непроменен и нищо не се случва с него. Сега нека въведемposition[0]. в полето за израз. Сега, вместо "hello world", имам числото124 (стойността на координатата X на текстовия слой). Ако анимирате текстов слой, самият текст ще се промени, показвайки стойността на координатата X в момента.

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

Нека проучим това с пример.

Има следния израз:

s="Здравей свят";

s[1]

На първия ред въвеждаме променливатаs, която е равна на"Hellow world". Това е по същество масив, от който извличаме буквата с индекс 1 на втория ред.Това е буквата "e". След това ще се покаже на екрана.

Java Script поддържа добавяне на низове. Например общият израз"Hellow"+"World" ще бъде показан на екранаHellowWorld.

Ще изброя всички поддържани свойства и методи, които намерих тук, така че да не се налага да се ровите в книгите. Но всъщност,Java урок, бих препоръчал да имате под ръка... Поради факта, чеAdobe всички разширяват поддръжката на скриптове доAE. Така че не се знае да ни се готвят нови версии.

Свойства и методи на низове

СвойстваДължина - отразява дължината на низа

anchor , big, blink, bold, charAt,фиксиран, цвят на шрифта, размер на шрифта, indexOf, курсив, lastIndexOf, връзка, малък, удар, под, подниз, sup, toLowerCase, toUpperCase, fromCharCode

Опитах ги всички, но следното всъщност работи вAE :

fromCharCode() - извлича знак по индекс от набора шрифтове

toUpperCase() - промяна на главни букви

toLowerCase() - промяна на малки букви

Това е така, защото повечето от методите са заweb. И AE има само ядро ​​и вградени обекти, а не цялата мощ наJava за браузъри. Вярно е, че когато ги използвате, не дава AE грешка, но нищо друго освен надписа „използван е такъв и такъв метод“ не може да се получи.

А сега примери за свойства и методи.

Този израз извлича дължината на низа и го отпечатва на екрана вместо нашия текст:

s = 'здравей свят';

s.length

Следният израз извлича знаци от набора от шрифтове, посочени за вашия текст:

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

Ако използвате знака "'r" в низ като този"abcd'refgh", тогава вашият низ ще завърши в тази точка и ще започне нов:

abcd

efgh

Сега нека създадем нещо по-сложно. Например мрежа от шестнадесетични знаци с размер 8*4 знака. Знаците ще се променят (нещо като ефектNumbers ). За да направите това, въведете следното в полето за въвеждане на израз:

брой редове = 4;

брой знаци = 8;

holdFrames = 5;

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

seedRandom(seed,true);

s = "";

j = 0;

while(j 57) c += 7;

s +=String.fromCharCode(c);

k += 1;

s += "'r";

j += 1;

s

Нека го разбием.

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

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

Друг низов параметърsplit(). Нека го анализираме с пример.

s = "честност, почтеност, лоялност, състрадание, емпатия";

s.split(",")[2]

Променливата s е зададена на текстовия низ"честност, почтеност, лоялност, състрадание, емпатия". Трябва да извлечем думаталоялност. За това използваме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 секунди. Експериментирайте сами, за да получите различен резултат.

Да рисуваме

За да рисувате, щракнете двукратно с левия бутон на мишката върху желания слой и изберетеинструмент за рисуване. Направете една къдрица. Сега можете да добавите израз.

Добавете израз към свойствотоstoke end.

честота = 0,5;

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

Ще има доста интересна рисунка.

Нека усложним нашата сцена, като добавим израз, за ​​да контролираме цвета на четката.

линеен(индекс,1,4,[0,1,1,1],[1,0,1,1])

линеен(индекс,5,8,[1,0,1,1],[1,1,0,1])

линеен(индекс,9,12,[1,1,0,1],[0,1,1,1])

Сега добавете свойстваstroke къмrotation :

(индекс-1)*30

За последната стъпка дублирайте нашия слой 11 пъти и получете крайната анимация.

Изрази и новият инструмент (ефект) Liquify

Този нов ефект позволява много интересни симулации на органични течности. Нека го приложим върху всяко изображение, което харесвате, и да създадем малко изкривяване. Сега приложете израза към свойствотоDistortion Persentage

freq = 0.6; // променлива, която определя свойството честота на опресняване

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

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

ВAE6.0 има промени в устройството за проследяване, което позволява по-удобно манипулиране на данните за проследяване с помощта на изрази.

Ще дам пример, когато трябва да направите "рояк" от цветни точки, които да кръжат около главата на делтапланера.

Преди да започнете анализа на проследяването, приложете израза към параметъраAttach Point на точката на проследяване:

L= thisComp.layer("Комп 1");

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

masterPos + wiggle(4,45) – позиция

Сега проследете и вземете роякточки около делтапланера.

Е, това е всичко. Опитайте сами шестата версия и е напълно възможно да успеете да откриете нещо друго. Пожелавам ти успех.