Introduction til grunnleggende After Effects Scripting 
 Å gå sammen med vår siste tutorial om manusutvikling arbeidsflyt, vil vi gå over de grunnleggende begreper og god praksis er nødvendig for å begynne å skrive After Effects skript. Vi vil gå over vanlig After Effects handlinger som for eksempel: å lage et prosjekt, og skaper en komposisjon, og skaper et lag, lage figurer, legge til effekter, endrede verdier og uttrykk, ved hjelp av tekst og fonter, og legger til nøkkelbilder, ved hjelp av funksjoner, etc. 
 After Effects Scripts på VideoHive 
 
 Hvis du leter etter en rask løsning med en After Effects script, det er en stor samling over på VideoHive. Eller, kan du vurdere å søke til å sende inn dine egne skript som forfatter! 
 
Skrive din første Script
 Som nevnt i After Effects Sublime Text bygge pakken installasjon og bruk opplæringen, skript er filer som bruker Adobe Extend språk. Extend er en utvidet form for Javascript som brukes av flere Adobe-programmer, for eksempel  Photoshop   Scripts bruke Adobe Extend språket, som er en utvidet form for Javascript som brukes av flere Adobe-programmer som Photoshop, Illustrator og InDesign   Denne opplæringen vil gå over grunnleggende begreper og god praksis er nødvendig for å begynne å skrive After Effects skript.   Vi vil starte med å bruke den   metoden i   objekt og pakke det mellom klammeparenteser product: {//Oppretter prosjektet app.newProject ();}.     Hensikten er roten til nesten alt som sett på dette skjemaet:     dette skjemaet finner du i Adobe After Effects CS6 Scripting guide som de fleste av hva jeg vil forklare i denne opplæringen.   Vi skaper nå vår komposisjon ved hjelp av   objektets underobjekter   som inneholder prosjekt som er opprettet i den første linjen og   sub-objekt som gir deg tilgang til mappene og komposisjoner som du ser i prosjektvinduet i After Effects. product: {//Oppretter prosjektet app.newProject (); //Opprette comp app.project.items.addComp ( "Demo", 1280, 720, 1, 10, 24);}   Skrive ren og vedlikeholds kode er virkelig viktig. Vi er ikke å skrive raske og skitne uttrykk lenger. Siden vi ønsker at våre skript for å være lett skalerbar, må vi omfavne Javascript samfunnets konvensjoner.   Så vil vi isolere viktige data til variabler og navngi dem deretter til deres innhold. Dessuten vil vi legge forholdene i tilfelle ville det allerede være et prosjekt eller en sammensetning i vår After Effects fil. Product: {//Oppretter prosjektet Var currentProject = (app.project)? app.project: app.newProject (); //Oppretter komp Var compSettings = cs = [1280, 720, 1, 10, 24]; Var defaultCompName = "Demo"; Var currentComp = (currentProject.activeItem)? currentProject.activeItem: currentProject.items.addComp (defaultCompName, cs [0], cs [1], cs [2], cs [3], cs [4]); currentComp.openInViewer ();}     nøkkelord indikerer at følgende variabelen er en ny variabel. Det er derfor, på linje 9, vi bruker ikke   ordet lenger fordi vi ønsker å bruke   's verdi (som er komp vi har nettopp opprettet).   Her er, linje for linje, hva vi gjorde i vanlig engelsk:   linje 3: Opprett ny variabel   som vil være lik for bedriften app.project   hvis   er ikke definert, og vil ellers lik for bedriften app.newProject ()  .   Line 6: Opprette nye variabler   og Selge cs   som begge tilsvarer en ny matrise med verdier   Linje 7: Opprett ny variabel   som inneholder navnet vi vil gi vår comp   som vil tilsvare til Home activeItem   tilhører vår   objekt. Hvis det ikke er udefinert og vil ellers lik resultatet av   metoden   sub-objekt av   hvem vi sender en rekke argumenter som inneholder:   Linje 9: Bruk   metode   som vil åpne tidslinjen for denne komposisjonen.   Ja, det er mange metoder og egenskaper. Igjen, må du ta en titt på et eller annet tidspunkt i Adobe After Effects guide CS6 Scripting å lære mer om objektene og deres tilgjengelige metoder og egenskaper. Guiden er veldig godt skrevet og et raskt søk etter  Prosjekt objekt   Siden en rekke operasjoner vil skje i løpet av skriptet gjennomføring, vil du ønsker å bestemme hva som skal skje når du treffer, En ???? + Z   /  Hvis du gjør det er ganske enkelt, vi må bare pakke inn vår kode mellom   og Selge endUndoGroup ()   metoder den   objekt. Denne metoden tar ett argument som er navnet som vil bli vist i After Effects   menyen product: {app.beginUndoGroup ( "Demo Script."); //Opprette prosjekt Var currentProject = (app.project)? app.project: app.newProject (); //Oppretter komp Var compSettings = cs = [1280, 720, 1, 10, 24]; Var defaultCompName = "Demo" var currentComp = (currentProject.activeItem)? currentProject.activeItem: currentProject.items.addComp (defaultCompName, cs [0], cs [1], cs [2], cs [3], cs [4]); currentComp.openInViewer (); app.endUndoGroup ();}   For å lage vår bakgrunnslaget, vil vi bruke   under gjenstand for vår   metode og sende det disse argumentene:   Den beste måten å skape vår sentrert korset er ved hjelp av Grid effekt på vår bakgrunnslaget. For å gjøre det, vil vi bruke vår   variabel som refererer til   og vi vil bruke sin   eiendom.   Det er noen ting du bør legge merke til her. Først den   metoden er chainable som betyr at du kan kalle det flere ganger for å nå den sub-egenskapen du ønsker å få.  . Layer er opacity  . Grid effektens opasitet   i tillegg benytter vi metoden   når vi ønsker å sette en verdi, men ikke når vi ønsker å sette et uttrykk.   For å legge til tørk effekt, vil vi lage et nytt lag, og bruk Radial viskereffekt.   Vi brukte metoden   for å gjøre animasjonen sløyfe (fornuftig rett?).   spille med teksten er litt annerledes siden du må endre kildeteksten verdi egenskaper direkte   Vi endret våre tekstverdiegenskaper og brukes   for å sende den til vår tekst lag. Også, vi brukte et enkelt uttrykk for å gjøre vår nedtelling.   er en Javascript-funksjon som vil fjerne desimal del av et nummer. Etter at midt vi ankerpunkt ved hjelp av   metoden.   Hvis du vil legge ellipsene vi vil bruke   fremgangsmåte og gi den en vektor gruppe og en vektor form. Vi vil også gjøre en liten funksjon for å unngå kode repetisjon.   Linje 5 er veldig viktig siden du ikke vil være i stand til å finne de   eiendom i verken dokumentasjonen eller i After Effects grensesnitt for øyeblikket, takket være Dan Ebbert for hans hjelp (http://forums.creativecow.net/thread/227/22280).   Vi brukte en tilpasset liten funksjon i stedet for å kopiere ellipsen skapelsen. Du kan bruke funksjoner som du ønsker.   Basic tommelfingerregel. Hvis du er kopi-lime linjer med kode, vurdere å bruke en funksjon   For resten vi bare endret form egenskaper. Det kan være lurt å henvise til Adobe After Effects guide CS6 Scripting å se dem oppført.   Du har kanskje lagt merke til   linjen ser litt annerledes enn hva vi har skrevet ennå. Javascript støtter kjeding over flere linjer. Resultatet vil bli det samme, og det er ikke en god eller dårlig måte, det er en forhåndsbetaling koding stil valg du kanskje eller kanskje ikke ønsker å adoptere.   Mulighetene av scripting er uendelige, og kan gjøre en virkelig kraftig verktøy når de mestrer. Her er litt mer dokumentasjon om scripting og Java: 
,  Illustrator 
, og  InDesign 
. Extend er en god og effektiv måte å oppnå alt du vil i After Effects. 
 
 
 
 
 Opprette Vår første Sammensetning 
 
 newProject () 
 app 
 app 
 
 
 
 app 
 prosjekt 
 elementer 
 
 Rengjøring Våre etiske 
 
 
 Var 
 Var 
 currentComp 
 
 
 
 currentProject 
 app.project 
 
 
 compSettings 
 <. li> 
 defaultCompName 
 
 Linje 8:. Opprett ny variablecurrentComp 
 currentProject 
 addComp 
 elementene 
 currentProject 
 
 Navn på sammensetning 
 
 Bredde på sammensetningen 
 
 Høyde på sammensetningen 
 
 Pixel forholdet mellom komposisjon 
 
 Tid (i sekunder) av sammensetningen 
 
 Frame rate av sammensetningen 
 
 
 currentComp 
 openInViewer 
 
 vil umiddelbart ta deg til riktig informasjon. 
 
 
 Hurtigjavascript Concepts 
 
 Variable : Kan lagre en verdi, en matrise med verdier eller et objekt 
 
 Var myVar = "String verdi"; 
 
 Var myVar = 2; 
 
 
 Var myVar = array ( "verdi1", "value2", 3);. 
 
 
 funksjon:. en del av kode designet for å utføre en bestemt oppgave 
 
 funksjon myFunction (argument) {//Gjør noe} 
 
 
 objekt: objektet er litt mer komplisert, men for nå, må du vet det har egenskaper og metoder 
 
 eiendom:. ligner på en variablemyObject.myProperty = "Value" 
 
 Metode: Ligner på en funksjon callmyObject.myMethod (argument) 
 
 
 Legge Angre grupper 
 
 CTRL + Z 
 beginUndoGroup () 
 app 
 Rediger & gt; Historie 
 
 Lage bakgrunnslaget 
 
 lag 
 currentComp < p>. Ring 
 addSolid () 
 
 Layer farge 
 
 Array av flytende tall (mellom 0 og 1). For å få denne verdien du må dele hver av RGB-verdier ved 255 eller bruke denne jsFiddle jeg gjort: http://jsfiddle.net/seblavoie/mezGe/43/embedded/result/
 
 Lagnavn 
 
 Layer bredde 
 
 Layer høyde 
 
 Layer pixel ratio product: {app.beginUndoGroup ( "Demo Manus"); //Opprette prosjekt Var currentProject = (app.project)? app.project: app.newProject (); //Oppretter komp Var compSettings = cs = [1280, 720, 1, 10, 24]; Var defaultCompName = "Demo" var currentComp = (currentProject.activeItem)? currentProject.activeItem: currentProject.items.addComp (defaultCompName, cs [0], cs [1], cs [2], cs [3], cs [4]); currentComp.openInViewer (); //Lage bakgrunnslaget Var backgroundLayer = currentComp.layers.addSolid ([93, 5, 2], "Bakgrunn", cs [0], cs [1], cs [2]); app.endUndoGroup ();} 
 
 Legge Grid Effect 
 
 backgroundLayer 
 currentComp.layers.byName ( "backgroundLayer") 
 Effects 
 //Legge rutenettet effekt backgroundLayer.Effects.addProperty ( "Grid"); backgroundLayer.property ( "Effects") eiendom ( "grid") eiendom ( "anker") SetValue ([0,0])...; ... backgroundLayer.property ( "Effects") eiendom ( "grid") eiendom ( "Corner") uttrykk = "[bredde /2, høyde /2]"; backgroundLayer.property ( "Effects") eiendom ( "grid") eiendom ( "farge") SetValue ([0,0,0])...; backgroundLayer.property ( "Effects") eiendom ( "Grid") eiendom ( "Blending Mode") SetValue (2),... 
 eiendom () 
 
 
 backgroundLayer.property (" Effects ") eiendom (." Grid ") eiendom (." opacity ") 
 
 
 SetValue () 
 
 
 Opprette Tørk Layer 
 
 //Opprette tørke lag Var wipeLayer = currentComp.layers.addSolid ([0,1, 0,1, 0,1], "Wipe", cs [0], cs [1], cs [2]); wipeLayer.Effects.addProperty ( "Radial Tørk"); wipeLayer.property ( "Effects") eiendom ( "Radial Tørk") eiendom ( "Tørk") SetValue (2)...; //Mot wipeLayer.property ( "Opacity") SetValue (50).; //Innstilling tørke overgang animasjon wipeLayer.property ( "Effects") eiendom ( "Radial tørk") eiendom ( "Transition Completion») setValueAtTime (0, 100)...; wipeLayer.property ( "Effects") eiendom ( "Radial tørk") eiendom ( «Transition Ferdigstillelse") setValueAtTime (1, 0)...; wipeLayer.property ( "Effects") eiendom ( "Radial tørk") eiendom ( «Transition Ferdigstillelse") uttrykk = "loopOut ( 'Cycle')";... 
 setValueAtTime () < p> å sette keyframes og en 
 loopOut ( "Cycle") 
 
 
 Legge tekstlaget 
 
 //Legge til tekst layervar textLayer = currentComp.layers.addText ( "Countdown");. Var textProperty = textLayer.property ( "kilde~~POS=TRUNC tekst~~POS=HEADCOMP "); Var textPropertyValue = textProperty.value; //Endre kildeteksten settingstextPropertyValue.resetCharStyle (); textPropertyValue.fontSize = 200; textPropertyValue.fillColor = [0, 0, 0]; textPropertyValue.justification = ParagraphJustification.CENTER_JUSTIFY; textProperty.setValue (textPropertyValue); //Legge uttrykk til kilden texttextProperty.expression = "Math.floor (10-tiden)"; //Justere tekstlaget anker pointvar textLayerHeight = textLayer.sourceRectAtTime (0, false); textLayer.property ( "Anchor Point ") .setValue ([0, textLayerHeight.height /2 * -1]); 
 SetValue () 
 Math.floor () 
 sourceRectAtTime () 
 
 
 Legge til ellipser 
 
 addShape () 
 //Legge formlag for circlesvar shapeLayer = currentComp.layers.addShape (); //Legge sirkel figurer groupvar shapeGroup = shapeLayer.property ( "Innhold") addProperty ( "ADBE Vector Group");. //Legge sirkel shapescreateEllipse (shapeGroup, 200); createEllipse (shapeGroup, 400); //Legge svart strek til den shapesvar slag = shapeGroup.property ( "Innhold") .addProperty ( "ADBE Vector Graphic - Stroke") .property ( "Farge") SetValue ([0, 0, 0]);. funksjonen createEllipse (shapeGroup, størrelse) { Var ellipse = shapeGroup.property ( "Innhold") addProperty ( "ADBE Vector Shape - ellipse."); Var ellipseSize = ellipse.property ( "Size") SetValue ([size, størrelse]);.} 
 Innhold 
 
 
 
 
 Var hjerneslag 
 
 
 Konklusjon 
 
 
 Adobe After Effects guide CS6 Scripting 
 
 MotionScript 
 
 Javascript på Codeacademy 
 
 Introduksjon til å skrive skript 

