Logo
///  >

Tips : Adobe After Effects: Tip#5: Variablen und Dimensionen

von Di, 10.Juli 2007


Das letzte Mal wurden beim Thema Expressions mit After Effects Arrays und Dimensionen vorgestellt, in diesem Kurz-Tip geht es um Variablen und Indexierung - ebenfalls sehr wichtige Instrumente in Sachen Expression-Scripting für After Effects.

Für diejenigen, die neu in diesen Mini-Expression-Workshop einsteigen gilt die Empfehlung, die vorangegangenen Tips kurz nachzuvollziehen, da die Artikel aufeinander aufbauen. Diejenigen, die soweit dabei geblieben sind, sollten die Expression mit dem dazugehörigen selbstgebauten Projekt, mit dem wir uns die letzten Male beschäftigt haben, noch parat haben.



Zur Sicherheit nachfolgend nochmal für alle unsere Übungsexpresssion, mit deren Hilfe wir die Z-Position aller Beta-Quadrate über die Z-Position des Alpha-Quadrates steuern. Das dunkelgraue Alpha-Quadrat fungiert also als eine Art Steuer-Ebene mit der Einschränkung, dass nur die Z-Position von den anderen Quadraten relativ übernommen wird. Die Expresssion wurde der leichteren Verständlichkeit halber nach ihren Sinneinheiten geordnet:

xPos=position[0];

yPos=position[1];

zPos=thisComp.layer("Alpha").transform.position[2] + value[2] ;
[xPos , yPos , zPos]


Gleich beim ersten Blick fällt auf, dass in den drei ersten Zeilen jeweils eine Gleichung gesetzt wurde. Wenn ein Gleichheitszeichen in einer Expression-Formel von After Effects auftaucht, handelt es sich häufig um die Definition einer Variablen. Aber was ist eine Variable und wofür braucht man sie ?

In diesem Fall stellt die Variable einfach nur einen Platzhalter, bzw. eine Bezeichnung dar, die das Hantieren mit der Gleichung übersichtlicher gestaltet. Für die x,y und die z-Position wurde als Variable der Name xPos, yPos und zPos gewählt. Mit gleichem Recht hätten wir Karl, Sabine und Tanja wählen können und die Expression würde genauso funktionieren. Probiert es ruhig mal aus:

Karl=position[0];

Sabine=position[1];

Tanja=thisComp.layer("Alpha").transform.position[2] + value[2] ;
[Karl , Sabine , Tanja]



Karl, Sabine und Tanja sind also einfach nur Namen die als Platzhalter fungieren. Und zwar als Platzhalter (sprich: Variable) für unterschiedliche Inhalte. Einmal für einfache Positionswerte in Zeile 1 und Zeile 2 und einmal als Platzhalter für eine längere Formel in Zeile 3, nämlich eine Additionsformel, die aus zwei Werten besteht, die addiert werden sollen:

Wert 1 lautet:

thisComp.layer("Alpha").transform.position[2]

und wird zu folgendem weiteren Wert addiert:

value[2]

Dies ist eines der Hauptanwendungsgebiete von Variablen. Der relativ lange, additive Ausdruck:

thisComp.layer("Alpha").transform.position[2] + value[2]

verschwindet einfach im Namen Tanja, sobald ein Gleichheitszeichen davor gesetzt wird:

Tanja=thisComp.layer("Alpha").transform.position[2] + value[2]

Ziemlich elegante Sache dies und Tanja klingt irgendwie auch viel besser und ist vor allem um einiges kürzer und handlicher als die lange Formel. Wann immer eine Formel eine andere oder mehrfache Verwendung finden soll, lohnt es sich, diese in eine Variable zu packen. Darüberhinaus werden Variablen gebraucht, wenn Werte flexibel bleiben müssen - dazu gleich mehr nach einem kurzen Blick auf unsere Formel.

Wenn wir jetzt unsere Formel betrachten, bleibt nur noch wenig Unbekanntes übrig.

Karl=position[0];

Sabine=position[1];

Tanja=thisComp.layer("Alpha").transform.position[2] + value[2] ;
[Karl , Sabine , Tanja]

Zu dem, was wir noch nicht geklärt haben, gehören die Ausdrücke auf der anderen Seite der Gleichungen. Die Zahlen in den eckigen Klammern, die ja für gewöhnlich einen Array anzeigen, werden in diesem Fall als Index bezeichnet. Betrachten wir zur Erklärung nochmal die Positionsangabe in einer Expression: Die kürzeste Expression Eingabe für die 3-D-Position eines 3-D-Layers würde z.B. so aussehen:
[300, 200, 100]

Also ein Array mit 3 Dimensionen. Mit dieser Expression wurde die Position der Ebene für alle Ewigkeit auf die Koordinaten x=300, y=200 und z=100 festgelegt. Wenn sich die Ebene nicht weiter bewegen soll: fein. Wenn jedoch die Ebene in der x- und y-Achse beweglich bleiben soll, brauche ich dafür einen Ausdruck, der flexibel ist. After Effects hat deshalb unterschiedlichen Parametern wie Position, Größe, Farbe etc. eigene Ausdrücke zugeordnet. Um bei einem Wert wie der Position im 3D-Raum nicht durcheinander zu kommen, gibt es eine feste Reihenfolge dieser Werte. Diese Reihenfolge wird als Index bezeichnet und ist festgeschrieben. Der Index 0 bezeichnet dabei den x-Wert, Index 1 steht für den y-Wert und Index 2 steht für den z-Wert. Mit folgender Expression bleiben die x- und y-Position der Ebene beweglich, während die Z-Position bei 100 festgeschrieben ist:

x=position[0];

y=position[1];

z=100;
[x,y,z]

Es muss also eine Variable für jede Position definiert werden, sobald die Werte flexibel, also variabel bleiben sollen. Wichtig bei dieser Formel ist ebenfalls die Setzung der Werte im finalen Array[x,y,z].

Je nachdem, wieviele Dimensionen ein Wert hat, können mit entsprechenden Index-Zahlen bestimmte Werte eines Parameters oder Arrays angesprochen werden. Die After Effects Hilfe bietet eine beispielhafte Übersicht von Parametern die von einer bis zu vier Dimensionen reichen und entsprechen mit bis zu 4 Index-Stufen adressiert werden können:




Zum Schluß ein Blick auf Zeile 3 unserer Expression:

Tanja=thisComp.layer("Alpha").transform.position[2] + value[2]

Ok, Tanja als Variable hatten wir bereits geklärt.

Folgende Formel generiert uns After Effects bei Bedarf auch automatisch:

thisComp.layer("Alpha").transform.position[2]

Sie stellt ganz einfach nur den Z-Wert der Ebene "Alpha" dar. Automatisch generieren lässt sich der Ausdruck mit Hilfe des Expression-Gummibandes (Pickwhip):




Einfach die Expression-Eingabe aktivieren und mit dem GummibandGummiband im Glossar erklärt einen einzelnen Positions-Wert einer anderen Ebene selektieren, z.B. die Z-Position der Ebene Alpha wie im Bild zu sehen.

Damit sollte die Expression die wir zur Steuerung der Z-Parameter für unsere "Postkarten im Weltall" via Alpha-Ebene klar sein.

Wer besonders cool sein möchte, kann die Gesamt-Expression noch weiter verkürzen, z.B. auf diese schmissige Formel, die wir quasi in einen einzigen Array packen:
[position[0] , position[1] , zPos=thisComp.layer("Alpha").transform.position[2] + value[2]]

Andere Möglichkeiten sind denkbar.

Viel Spass beim Experimentieren - die After Effects Tip zum Mini-Kapitel Expression sind damit erstmal abgeschlossen. Urlaub ist angesagt und ab Mitte August geht es dann weiter mit unseren wöchentlichen After Effects Tips.

Rob










  


Artikel zum selben Thema:

Tips: Adobe After Effects: Tip#4: Arrays und Dimensionen Do, 28.Juni 2007
Tips: Adobe After Effects: Tip#3: Finetuning für Positions-Expressions Mi, 13.Juni 2007
Tips: Adobe After Effects: Tip#2: Grosse Komp in kleiner Komp So, 3.Juni 2007
Tips: Adobe After Effects: Tip#1: Sound-Expression Di, 22.Mai 2007

Weitere Artikel:


Tips: Tricks zur Beta-Installation von DaVinci Resolve Fr, 3.Mai 2019
Wer einen Blick auf aktuelle Betas von DaVinci Resolve werfen will sollte wissen, wie er sein System im Zweifelsfall auch wieder auf eine stabile Version zurücksetzen kann...
Tips: Einhandgimbal als Stativersatz auf Reisen? Hier: Car Shots Di, 3.Mai 2016
Je weiter gereist wird, desto genauer wird jedes Gramm Equipment hinterfragt. Die großen Vorteile von Einhandgimbals sind ihr geringes Packmaß und ihr moderates Gewicht. Damit eignen sie sich im Vergleich zu den großen Zweihandsystemen hervorragend für Flugreisen und das Filmen „unterwegs“ - in unserem Beispiel aus dem Auto heraus rund um Las Vegas / Death Valley. Worauf gilt es hierbei zu achten?(Sponsored by SAE)
Tips: 14. Final Cut Pro X: Optimized Media aus FCPX via XML in DaVinci Resolve nutzen Do, 27.Februar 2014
FCPX und DaVinci Resolve verstehen sich auf Grund der aktualisierten XML-Funktionen mittlerweile erstaunlich gut. Doch wie kann man den XML-Import nach Resolve nutzen, wenn man die in FCPX generierten optimierten Medien verarbeiten möchte und nicht das (VDSLR) Originalmaterial?
Tips: 13. Final Cut Pro X: Bezier vs Linear (Audiokeyframing u.a.) Di, 25.Dezember 2012
In diesem Final Cut Pro X Tip wollen wir Keyframepfade unter Final Cut Pro X mit Hinblick auf Bezier vs Linear genauer betrachten sowie ihr zugehöriges Umfeld in der Audiospur bzw. im Viewer bei Bewegungspfaden ...
Tips: 12. Final Cut Pro (X):Verbindungen aufheben in FCP X 10.0.6 Mi, 31.Oktober 2012
Tips: Älteren Laptop fit für Videoschnitt machen Teil II: SSD Fr, 18.Mai 2012
Tips: Zusätzliche Festplatte(n) via eSATA an Mac und PC Di, 7.Februar 2012


[nach oben]


[nach oben]
















passende Forenbeiträge zum Thema
Apple Final Cut Pro X:
DV-AVI nicht mehr Unterstütze Formate FCPX
Bild und Ton nach Import in FCP X nicht mehr synchron
Welche Software statt Final Cut X? Oder bei FCX bleiben?
FCP X für iOS?
Das neue fcpx und die anderen Tools sind online
Messevideo: AJA Kona 5 mit 12G-SDI und HDMI 2.0 für Avid MC, FCPX, Premiere Pro CC u.a. // IBC 2018
final cut x - Doku :D
mehr Beiträge zum Thema Apple Final Cut Pro X


Specialsschraeg
11. April - 27. November / München
Camgaroo Award 2019
8-19. Mai / München
DOK.fest München
30. Mai - 2. Juni / St. Ingbert
Bundesfestival junger Film 2019
4-5. Oktober / Espelkamp
Filmfestival SPITZiale
alle Termine und Einreichfristen


update am 19.Mai 2019 - 15:02
slashCAM
ist ein Projekt der channelunit GmbH
*Datenschutzhinweis*