Die After Effects Expressions sind kleine Code-Befehle – ähnlich wie JavaScript oder andere Skriptsprachen. Mit den Expressions kann der Wert einzelner Ebenen-Eigenschaften und deren Verhalten festgelegt werden. Das Verhalten der Expressions kann ausserdem mit mathematischen Funktionen erweitert und auf die individuellen Bedürfnisse angepasst werden.
Um Expressions in After Effects zu verwenden, muss man die Skriptsprache nicht kennen, denn mit etwas Vorwissen und präzisen Suchbegriffen findet man schnell ein passendes Code-Snippet für simplere Animationen. Für ein komplexeres Projekt muss man sich jedoch meist länger mit den einzelnen Baustücken der After Effects Expressions beschäftigen.
Der Fokus dieses Digezz Projektes ist das Kennenlernen von ersten nützlichen Expressions. Die drei Methoden «Wiggle», «Time» und «LoopOut» werden in drei separaten Videos mit kurzen Beispielen vorgestellt. Wichtige Parameter der Methoden und deren Auswirkung werden im Text zum Video erklärt.
Wie werden Expressions verwendet?
Expressions werden grundsätzlich auf Ebenen-Eigenschaften wie Position, Skalierung oder Rotation angewendet. Um die gewünschte Expression einzufügen muss als erstes die Zeitachse geöffnet werden. Anschliessend blendet man die zu bearbeitende Ebenen-Eigenschaft – zum Beispiel Position – ein und klickt mit gedrückter Alt-Taste auf die Stoppuhr im Menü. Es erschein ein Eingabefeld in der Zeitleiste, in das der vorbereitete Code eingefügt werden kann.
Adobe After Effects Expression – Wiggle
Die Methode «Wiggle» erlaubt es, zufällige Bewegungen in einem vordefinierten Rahmen zu generieren. Um den Effekt korrekt generieren zu können, müssen zwei Werte bekannt sein:
- wie viel Male pro Sekunde soll der Wert angepasst werden?
- um wie viele Pixel soll das Objekt verschoben werden?
Wiggle(Wiederholung, Wert)
Wiggle(3,40)
Wenn diese Expression auf die Ebenen-Eigenschaft «Position» angewendet wird, bewegt sich das Objekt drei Mal pro Sekunde um 40 Pixel auf der x & y-Achse. Diese Expression kann auch erweitert werden, damit die zufällige Bewegung nur auf einer der Achsen ausgeführt wird. Für die zufällige Bewegung auf der X-Achse kann man dieses Skript verwenden:
xPos = transform.position[0];
yPos = transform.position[1];
wNum = wiggle(3,40);
[wNum[0],yPos];
In den Variablen xPos und yPos wird die jeweilige Position des Objektes auf der entsprechenden Achse gespeichert. Die durch «Wiggle» generierten Nummern werden in wNum abgespeichert. Durch die Angabe [ wNum[0],yPos ] werden die Werte für die Position auf der X-Achse – der erste Wert (wNum[0]) – und auf der Y-Achse (yPos) weitergegeben. Der gleiche Effekt kann auch auf der Y-Achse erzielt werden. Dafür muss man die letzte Zeile des Scripts mit [ xPos, wNum[1] ]; ersetzen.
Alternativ kann die Eigenschaft «Position» in getrennte Werte aufgeteilt werden. Den Wert kann man mit einem Klick der rechten Maustaste auf «Position» und Auswahl von «Separate Dimension» trennen. Anschliessend ist es möglich, die Wiggle-Expression nur auf den Wert der gewünschten Dimension anzuwenden.
Ein Problem, welches während der Arbeit mit der Wiggle-Expression auftauchen kann, ist die ungleichmässige Generierung der Werte. Besonders für Transformationen und Animationen, die möglichst gleichmässig geschehen sollten, muss die Wiggle-Expression angepasst und erweitert werden:
w = wiggle(3,80);
[w[0], w[0]]
Die generierten Werte werden in der Variable «w» gespeichert. Für jedes Frame wird anschliessend ein Wert ausgelesen und für beide Dimensionen der gewünschten Eigenschaft verwendet. So kann eine gleichmässige, aber zufällige Skalierung generiert werden.
Adobe After Effects Expression – Time
Die Methode «Time» ermöglicht es, die vergangene Zeit seit Beginn der Komposition auszulesen. Dies kann als dynamischer Wert für verschiedene Ebenen-Eigenschaften verwendet werden. So ist es möglich, kontinuierliche Rotation, Bewegung und Ähnliches zu generieren. Die Syntax für die «Time»-Expression ist sehr simpel – man fügt einfach time in das Expression-Fenster ein. Der verwendete Wert ist die aktuelle Zeit – die vergangenen Sekunden im Dezimalformat. Bewegungen und Animationen mit dem Wert von «Time» sind grundsätzlich eher langsam, da das Objekt nur ein Pixel pro Sekunde animiert wird. Mit Hilfe von mathematischen Funktionen und Operatoren kann die Geschwindigkeit beziehungsweise der ausgegebenen Wert jedoch beeinflusst werden.
time
time*72
time*time
Adobe After Effects Expression – LoopOut
Die Methode «LoopOut» erlaubt es, eine bestimmte Anzahl Keyframes auf verschiedene Weise zu wiederholen. LoopOut wiederholt die Animation nach dem letzten Keyframe. Die Expression LoopIn funktioniert ähnlich, wiederholt die Animation jedoch vor dem ersten Keyframe.
Die Anzahl der wiederholten Keyframes kann in der LoopOut-Expression definiert werden. Ohne Angaben werden die letzten zwei Keyframes wiederholt (Standartwert = 1). Um weitere Keyframes zu wiederhohlen, kann der Wert durch die Anzahl Keyframes (- 1) ersetzt werden.
Die Art der Wiederholung wird mithilfe von vier Parametern bestimmt. Der Standartwert ist «circle» – also die Repetition der letzten Bewegung. Mit «pingpong» wird die Animation bei jeder zweiten Bewegung rückwärts abgespielt. «continue» setzt die letzte Bewegung mit der Geschwindigkeit / dem Wert des letzten Keyframes fort. Mit «offset» wird die Animation gleich wie bei «circle» wiederholt, die Startposition liegt jedoch auf der Position des letzten Keyframes.
loopOut(“Art der Wiederholung”, “Anzahl Keyframes, die wiederholt werden sollen -1”)
loopOut(“circle”, 2) = die letzten drei Keyframes werden in einem endlosen Kreislauf wiederholt.
(fms)