Logo Logo
Themen schraeg
Wissen
Codecs· Einführungen· Lexika
Hardware
Camcorder· Computer· DVD· Video-DSLR· Zubehör
Software
3D· Compositing· Download· DVD· Effekte· Farbkorrektur· Player· Tools· Videoschnitt
Filmpraxis
Beleuchtung· Drehbuch· Filmen· Filmlook· Keying· Montage· Regie· Sound· Tips
DV-Film
Festivals· Filme
Sonstiges
Hersteller· Reviews· Technik
/// Tips : Sonstige

Tips : Adobe After Effects: Tip#5: Variablen und Dimensionen
von rob 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










  



[nach oben]

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: 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
Wie bereits http://www.slashcam.de/news/single/Apple-Final-Cut-Pro-X-10-0-6-verfuegbar-10234.html (berichtet) bringt das kostenlose Update auf Final Cut Pro X 10.0.6 eine ganze Reihe an neuen Funktionen und Bugfixes für Final Cut Pro X mit. In diesem Tip wollen wir die neue Funktion „Verbindungen aufheben“ vorstellen und auch zeigen, wie man sie sinnvoller aktiviert als von Apple vorgesehen.
Tips: Älteren Laptop fit für Videoschnitt machen Teil II: SSD Fr, 18.Mai 2012
Im zweiten Teil unseres Laptop-Tuning Kapitels geht es um das Thema SSD. Welche Einbauoptionen gibt, worauf sollte man beim Kauf achten und was hat es mit TRIM, GARBAGE COLLECTION und den verbauten SATA-Controllern auf sich?
Tips: Zusätzliche Festplatte(n) via eSATA an Mac und PC Di, 7.Februar 2012
Tips: 11. Final Cut Pro (X): AVCHD 1080 50p in Final Cut Pro (X) bearbeiten So, 29.Januar 2012
Tips: 9. Final Cut Pro (X): Splitscreen Mo, 19.September 2011
Tips: 8. Final Cut Pro: Der Waveform-Monitor Di, 7.September 2010


[nach oben]















Artikel-Übersicht


Artikel-Kategorien:
Einführungen
Test
Grundlagen
Tips
Tutorials
Erfahrungsberichte
Workshop
Ratgeber
Buchkritiken
Scoop
Problemlösungen
Ausprobiert
Basiswissen Videoproduktion
Interviews
Kurztest
News
Essays
Editorials
Berichterstattung
Home Media
Aktionen
Werbung
Filmkritiken
Glosse

passende Forenbeiträge zum Thema
Apple Final Cut Pro X:
Final Cut Pro X: Dual GPU und 4K Support
FCPX - neuer Plugin für XDCAM nicht installieren!
Using Final Cut Pro X to edit a documentary for the BBC
Welcher Imac für Final Cut Pro X
Probleme mit der Audiosyncronisation in FCPX
Long Form Editing mit Final Cut Pro X
iMac vs MacPro vs FCPx
mehr Beiträge zum Thema Apple Final Cut Pro X




update am 20.Juni 2013 - 10:45
slashCAM ist ein Projekt der channelunit GmbH
*Datenschutzhinweis*
ClipKanalschraeg

Aktuelles Video:
Smokey Chili