Články

Jak na Expressions v Adobe After Effects a tipy jak je využít

Určitě každý, kdo pracuje v After Effects, se někdy ocitl v situaci, kdy mu základní funkce programu nestačily. Jednou možností jak situaci vyřešit je poohlédnout se po nějakém pluginu, anebo si pomocí expressions vytvořit vlastní funkci či rozšíření. Byť se v komunitě setkáme s pojmem plugin docela často, zjistíme, že spousta takových rozšíření pro After Effects je právě nascriptovaný UI panel, který “pouze” aplikuje předem vytvořené expressions. Jako příklad uvedu Motion2, či DuIK.

Co jsou expressions?

A co přesně expressions jsou? Zde je krásná definice přímo od Adobe:

An expression is a little piece of software—much like a script—that evaluates to a single value for a single layer property at a specific point in time. Whereas scripts tell an application to do something, an expression says that a property is something.

Expressions lze psát buď pomocí ExtendedScript, což je skriptovací jazyk vyvíjený firmou Adobe, nebo lze použít plnohodnotný JavaScript. Od verze AE 16.1 je také k dispozici vylepšený expressions editor, který umožňuje pohodlnější a rychlejší psaní kódu.

Stará (vlevo) a nová (vpravo) verze expressions editoru.

Varianty použití

Nejjednodušší použití expressions, bez znalosti ExtendedScript nebo JavaScriptu, je pomocí pickwhip. Takto lze využít různé parametry z jednotlivých layers jako vstupní hodnoty jiných layers. Například máme několik masek, které chceme, aby se chovaly naprosto stejně. Nemusíme animovat parametry u každé zvlášť, ale stačí odkázat pomocí expressions v jednotlivých parametrech na jednu “mateřskou” masku (viz tip č. 1 na konci článku).

Použití pickwhip v rámci expressions.

Je však nutné dávat pozor na to, jaké datové typy propojujeme. To znamená, že pokud jako zdroj máme textProperty (datový typ string), nelze jej použít jako vstupní hodnotu pro position, který očekává vektor ([x,y]). Pokud spojíme dva nekompatibilní datové typy, debugovací nástroj se ozve, že je něco v nepořádku a snaží se nám oznámit, co konkrétně máme špatně.

Propojení dvou nekompatibilních datových typů v praxi.

Kdy použít expressions

Expressions vytvořené pomocí pickwhip nám dokáže výrazně ulehčit práci bez větší námahy a bez investice ve formě času. Podobně lze využít předdefinované knihovny, kterou nám AE nabízí. Jedná se především o knihovnu jednotlivých funkcí, které je nutné použít jako součást většího celku. Najdeme zde ale pár takových, které jsou aplikovatelné samostatně. Jako např. loopout cycle nebo wiggle.

Takto může vypadat expression pro zacyklení dvou keyframů. Můžeme jej napsat, nebo vložit z nabídky.

Oproti tomu složitější expressions, kde je nutná práce s logikou a matematikou, nám mohou zabrat velmi dlouhou dobu. Proto je nutné zvážit, zda se nám tato investice vyplatí. Pokud víme, že expressions budou sloužit po celou dobu projektu, nebo zde existuje potenciál pro budoucí použití je výhodné se zabývat napsáním složitějšího kódu. AE umožňuje si ukládat jednotlivé parametry i s expressions a můžeme si tak vytvořit vlastní knihovnu.

Expressions je velmi silný nástroj a nemá smysl se práci s nimi vyhýbat. Člověk by se tak ochudil o zajímavé možnosti, které dělají AE více flexibilnějším nástrojem. Já osobně vidím největší potenciál v automatizovaných procesech, jako je např. TV grafika nebo různé dynamické šablony, ale o tom až příště.

Na závěr přikládám tři tipy, které mohou někomu udělat radost.

Tip č.1: ShapeLayery mají jeden vzor.

Mám více ShapeLayerů a chci, aby všechny měly stejný tvar path. Vrstva kola je hlavní a vrstvy kola 2—4 na ni odkazují. Vrstvy kola 2—4 mohou mít různý scale, rotaci, pozici, ale path bude stejný.

Tip č.2: Index.

Každá vrstva má tzv. index, což je pozice vrstvy v timeline. Index 1 je vrstva úplně nahoře a vrstvy pod ní mají index o 1 větší. Pomocí expressions jej můžeme použít například jako činitel, kterým budeme násobit hodnotu scale. Při duplikaci se díky zvyšujícímu indexu bude zvětšovat scale.

Tip č.3: Automatické přemisťování anchor pointu

Tento trochu složitější expression automaticky přemisťuje anchor point při rotaci objektu ze strany na stranu.

  

Ivan Floreš

Motion designer
Motionhouse