Současně s naším nedávným návodem script development workflow, si projdeme základní koncept a osvědčené postupy, důležité pro začátek psaní After Effect skriptů. Projdeme si obvyklé After Effects akce jako: vytváření projektů, vytváření kompozic, vrstev, tvarů, přídávání efektů, změny hodnot a výrazů, používání fontu, přídání klíčových framů, používání funkcí, atd.
After Effects skripty na VideoHive
Pokud hledáte rychlé řešení s After Effects skriptem, existuje skvělá kolekce na VideoHive. Nebo můžete zvážit poskytování svých skriptů jako autor!
Psaní vašeho prvního skriptu
Jak je napsáno v After Effects instalačním balíku a návodu, skripty jsou soubory, které používají jazyk Adobe ExtendScript. ExtendScript je nástavba na JavaScript používána několika Adobe aplikacemi jako je Photoshop, Illustrator a InDesign. ExtendScript je dobrý a efektivní způsob, jak dosáhnout čehokoliv chcete v After Effects.
Skripty používají Adobe ExtendScript jazyk, který je nástavbou JavaScriptu používanou několika Adobe aplikacemi jako je Photoshop, Illustrator a InDesign
Tento návod projde základní koncepty a osvědčené postupy, důležité pro začátek psaní After Effects skriptů.
Vytvoření naší prvni kompozice
Začneme použitím
newProject()
metody
app
objektu a obalení do závorek
{
// Creating project
app.newProject();
}
ten
app
objekt je základem téměř všeho, jak je vidět na schématu:
Psaní čistého a udržitelného kódu je velice důležité. Už nepíšeme rychlé a špinavé výrazy. Protože chceme aby naše skripty byly jednoduše škálovatelné, musíme uctívat zásady JavaScript komunity.
Takže izolujeme klíčová data do proměnných a pojmenujeme je podle jejich obsahu. Také přidáme podmínky pro případ že v našem After Effects souboru již existuje projekt nebo kompozice.
klíčové slovo indikuje, že následující proměnná je nová. Proto na 9. řádku už nepoužíváme
var
klíčové slovo, protože chceme použít
currentComp
's hodnotu (kterou jsme právě vytvořili).
Zde je, řádka po řádce, co jsme udělali:
Řádek 3: vytvoření nové proměnné
currentProject
který se bude rovnat
app.project
pokud
app.project
není nedefinovaný jinak se bude rovnat
app.newProject()
.
Řádek 6: vytvoření nových proměnných
compSettings
a
cs
obě se rovnají novému poli hodnot.
Řádek 7: vytvoření nové proměnné
defaultCompName
která obsahuje jméno, které dáme naší kompozici.
Řádek 8: vytvoření nové proměnné
currentComp
která se bude rovnat
activeItem
s vlastností
currentProject
našeho objektu. Pokud není nedefinována a jinak by se rovnal výsledku
addComp
metody
items
pod-objektu
currentProject
kterému pošleme pole argumentů obsahující:
Jméno kompozice
Šířku kompozice
Výšku kompozice
Poměr pixelu kompozice
Čas (v sekundách) kompozice
Frekvenci snímků kompozice
Řádek 9: použití
currentComp
metody
openInViewer
která otevře časovou osu pro tuto kompozici
Ano, je to mnoho metod a vlastností. Znovu se budete muset podívat na Adobe After Effects CS6 Scripting Guide abyste se naučili o objektech a jejich metodách a vlastnostech. Tento návod je napsán opravdu velmi dobře a rychlé hledání pro Project object vás ihned navede k správné informaci.
Rychle koncepty Javascriptu
Proměnné: mohou ukládat hodnotu, pole hodnot nebo objekt.
var myVar = "String value";
var myVar = 2;
Pole: obsahuje několik hodnot. Pole mohou být deklarovány dvěma způsoby.
var myVar = array("value1", "value2", 3);
var myVar = ["value1", "value2", 3];
Funkce: Část kódu je navržena pro provedení určitého úkolu.
function myFunction(argument) {
// Do something
}
Objekt: Objekt je trochu složitější, ale pro teď musíte vědět, že má vlastnosti a metody.
Vlastnost: podobná proměnné
myObject.myProperty = "Value"
Metoda: podobné volání funkce
myObject.myMethod(argument)
Přídání Undo skupin
Protože se provede mnoho operací, chcete rozhodnout co se stane když stisknete
â + Z
/
CTRL + Z
To je velice jednoduché, jen musíte obalit kód
beginUndoGroup()
a
endUndoGroup()
metody
app
objektu. Tato metoda bere jeden argument, který je jméno zobrazené v After Effects
Hraní si s textem je trochu jiné, protože musíte přímo měnit zdroje textu.
// Adding text layer
var textLayer = currentComp.layers.addText("Countdown");
var textProperty = textLayer.property("Source Text");
var textPropertyValue = textProperty.value;
// Changing source text settings
textPropertyValue.resetCharStyle();
textPropertyValue.fontSize = 200;
textPropertyValue.fillColor = [0, 0, 0];
textPropertyValue.justification = ParagraphJustification.CENTER_JUSTIFY;
textProperty.setValue(textPropertyValue);
// Adding expression to source text
textProperty.expression = "Math.floor(10-time)";
// Adjusting text layer anchor point
var textLayerHeight = textLayer.sourceRectAtTime(0, false);
textLayer.property("Anchor Point").setValue([0, textLayerHeight.height / 2 * -1]);
My změnili hodnoty vlastnosti našeho textu a použili
setValue()
pro přeposlaní do naší textové vrstvy. Také jsme použili jednoduchý výraz pro náš odpočet.
Math.floor()
je Javascript funkcí, která odebere decimální část čísla. Potom vystředíme kotevní bod pomocí
sourceRectAtTime()
metody.
Přidání elips
Pro přidání elips použijeme
addShape()
metodu a dáme ji vektorovou skupinu a vektorový tvar. Také vytvoříme malou funkci, abychom se vyhnuli opakování kódu.
// Adding shape layer for the circles
var shapeLayer = currentComp.layers.addShape();
// Adding circle shapes group
var shapeGroup = shapeLayer.property("Contents").addProperty("ADBE Vector Group");
// Adding circle shapes
createEllipse(shapeGroup, 200);
createEllipse(shapeGroup, 400);
// Adding black stroke to the shapes
var stroke = shapeGroup.property("Contents")
.addProperty("ADBE Vector Graphic - Stroke")
.property("Color").setValue([0, 0, 0]);
function createEllipse(shapeGroup, size) {
var ellipse = shapeGroup.property("Contents").addProperty("ADBE Vector Shape - Ellipse");
var ellipseSize = ellipse.property("Size").setValue([size,size]);
}
že řádek vypadá jinak, než co jsme doposud napsali. Výsledek bude stejný a neexistuje špatný nebo dobrý způsob, je to osobní styl, kterému se můžete, ale nemusíte přizpůsobit.
Shrnutí
Možnosti skriptování jsou nekonečné a mohou být opravdu mocným nástrojem, jakmile jsou ovládnuty. Zde je více dokumentace o skriptování a Javascriptu:
Subscribe below and we’ll send you a weekly email summary of all new 3D & Motion Graphics tutorials. Never miss out on learning about the next big thing.