Expressions in After Effects

[Anfänger] Basics über Expressions

Ein großes Thema, dem jedem, der je was in After Effects zu tun hat nicht entkommen kann.

Die meisten verschreckt das Wort Expressions, wenn sie es hören und gucken dann beim nächsten Tutorial. Schreibt man im Forum: Probier es mit Expressions, hört man: Gibt’s nicht noch einen anderen Weg???

Aber jetzt ist Schluss!^^ Mit diesem Tutorial will ich auch allen Anfängern in Sachen After Effects Expressions mal etwas näher bringen , da, als ich angefangen hab ich Expressions gehasst habe und heute ohne sie nicht mehr arbeiten könnte^^

Wir empfehlen:
3D-Projekte in After Effects

Also, los geht’s:

Expressions könnte man als „Scripting für After Effects“ bezeichnen. Sie ersetzten oft Keyframes und ersparen jedem After Effects Nutzer manchmal sehr viel Zeit. Aber es gibt auch Expressions, die keine Keyframes ersetzen, sondern Sachen möglich machen, die normalerweise unmöglich wären. In diesem Tutorial gehen wir viele Möglichkeiten durch, aber es ist nicht möglich alle durchzuarbeiten, da es unendlich viele Möglichkeiten gibt.

Im Grunde genommen sind Expressions auf der Basis von Javascript aufgebaut. Man kann also beinahe alle Dinge, die in Javascript möglich sind in Expressions einbauen. Umgekehrt sind in Expressions Eigenschaften hinzugefügt worden, die speziell für After Effects und den Umgang mit Frames, Zeit und AfterEffects Ebenen etc. gebraucht werden.

Fangen wir mal mit einem praktischen Beispiel an:

Ein beliebter Fall für Expressions ist zufällige Bewegung: Zum Beispiel die Simulation eines Erdbebens. Mit Keyframes: (Fast) Unmöglich!

Ich nehme also mal ein Footage, welches ich von der Website www.StockFootageForFree.com gedownloadet habe. Eine Website die ich jedem, der was mit Videobearbeitung zu tun hat, wärmstens empfehlen kann.

Ich rufe zuerst mit „P“ den Positionsparameter auf. Um nun eine Expression hinzuzufügen klickt ihr auf mit gedrückter ALT-Taste auf die Keyframe Stoppuhr. Es erscheint ein kleines Texteingabefeld mit dem Inhalt:

transform.position

„transform.position“ bedeutet: Nehme den Wert „Position“ der aktuellen Ebene, der sich in der „Transform“ Kategorie befindet. Kurz: Diese Expressions ändert überhaupt nichts. Eine andere Expression, die den selben Effekt hat, aber kürzer und einfacher ist heißt:

value

Value heißt einfach Wert und nimmt deswegen auch einfach den Wert des aktuellen Parameters. Um nun zufällige Bewegung ins Spiel zu bringen braucht man folgende Expression:

wiggle()

Diese Expression kreiert zufällige Bewegung um den aktuellen Wert herum. Sie benötigt außerdem 2 Argumente. Argumente sind die Dinge, die in Klammern geschrieben sind. Sie werden durch ein Komma getrennt. In diesem Fall sind die Argumente:

wiggle(Häufigkeit, Stärke)

Die Häufigkeit gibt die Häufigkeit der Bewegung pro Sekunde an. Die Stärke die Anzahl der Pixel, die die Expression an Bewegungsfreiraum hat. Hat man also diese Expression:

So bewegt sich die Ebene von ihrem Standort aus zufällig 8-mal die Sekunde um maximal 25 Pixel. Dadurch ergibt sich der folgende Effekt:

Damit haben wir unsere erste Expression basierte Animation erstellt. Als nächstes ein anderer Effekt, bei dem auch die wiggle Expression benutzt wurde:

[Fortgeschritten] Wiggle-Text

Dieses Beispiel ist schon sehr komplex und beinhaltet fortgeschrittene Expressions. Aber keine Angst, in ein paar Minuten seid ihr soweit fortgeschritten, dass dies kein Problem mehr darstellen wird. Als erstes liegt hier ein Video mit 32-Bit-Kanal vor. Dieses Feature wird jedoch erst ab Version 7.0 unterstützt. Um den 32-Bit-Kanal zu aktivieren klickt ihr 2-mal mit gedrückter ALT-Taste auf den 8-Bit-Kanal Text im Projektfenster:

Erstellt einen Hintergrund eurer Wahl. In meinem Fall ist dies ein einfacher Verlauf von Schwarz zu Dunkelblau. Nun erstellt eine neue Textebene. Bei der Farbe sehen wir nun seltsame RGB Werte:

1, 1, 1 anstatt von 255,255,255. Das liegt an dem Wechsel zum 32-Bit-Kanal. 1, 1, 1 entspricht purem Weiß. Nun kann man jedoch auch 5,5,5 einstellen. Dies ergibt scheinbar auch normales weiß. Ist es aber nicht! Es ist „super Weiß“^^. Viel heller als normales weiß. So hell, dass es der Monitor und die Augen als normales Weiß darstellen. Möchten wir jetzt super Gelb-Orange, also super helles Gelb-Orange. Dazu stellt ihr bei den RGB Werten z.B. 5,4,1 ein. Den entstehenden Farbton könnt ihr in der Farbtonskala ablesen, die in dem folgenden Bild rot markiert ist.

Bestätigt nun den Farbdialog mit OK und ihr seht ganz normales weiß….. Was eine Enttäuschung…. :D Naja, fast^^ Um zu sehen, dass das ganze super helles Gelb-Orange ist, wendet einen einfachen schnellen Weichzeichner ein.

Dieser Effekt wird auch hervorgerufen, wenn Bewegungsunschärfe auftritt. Also aktivieren wir diese sowohl in der Komposition, als auch bei der Textebene. Löscht also nun den angewendeten Schnellen Weichzeichner wieder und ruft wie vorher den Positionsparameter mit „P“ auf. Und fügt eine Expression mit einem Klick mit gedrückter ALT-Taste hinzu. Wenn wir nun folgende Expression hinzufügen:

wiggle(5,50)

Dann bewegt sich der Text komplett wirr über den Bildschirm:

Aber wir möchten nur, dass sich der Text vertikal, also auf der Y-Achse bewegt. Das X-Argument des Positionsparamters soll jedoch unverändert bleiben. Deswegen wird erst einmal eine Variable „x“ erstellt, die die Originaldaten des X-Arguments hält:

x = value[0];

Wie in Javascript oder auch anderen Scriptsprachen muss jede Zeile mit einem Semikolon abgeschlossen werden. „value[0]“ ist auf den ersten Moment zum Teil verwirrend. „value“ haben wir schon kennen gelernt, aber was ist die [0]? Die Variable „value“ hält 2 Argumente: X und Y. Wir möchten aber nur das erste. Das erste Argument hat immer den Index 0. Der zweite dann „1“, bei 3D Ebenen das z-Argument „2“ und bei Farben der Alphawert „3“. Soweit wäre dann also das x-Argument geregelt. Jetzt möchten wir aber noch die Textebene auf der y-Achse bewegen. Der Code wird also um eine Zeile erweitert:

x = value[0];y = wiggle(5,50)[1];

Da wir die „wiggle“-Expression schon kennen ist diese Zeile nicht allzu schwer. Die wiggle-Expression kreiert zufällige Werte für alle Argumente des Parameters. In diesem Fall 2: X und Y. Hier wollen wir aber nur den 2., also schreiben wir, wie oben beschrieben, eine [1] dahinter. Um nun noch x und y den beiden Argumenten zuzuweisen fehlt noch etwas:

x = value[0];y = wiggle(5,50)[1];[x,y]

Das erste Argument wird also x zugeordnet und das zweite y. So soll es sein. Jetzt sieht unsere Animation so aus:

Wir können nun die Stärke der Wiggle-Expression nicht animieren. Um dies zu tun fügt ihr nun den „Effekt“: Einstellungen für Expressions > Einstellungen für Schieberegler. Dieser Effekt tut nichts, aber wir können diesen Schiebregler nutzen um die Wiggle-Stärke darauf zu verlinken. Um dies zu tun geht ihr zurück zu unserer Expression und fügt erst einmal eine neue Variable „s“ für Stärke hinzu. Also einfach nur „s = “. Der Cursor muss nun hinter dem Gleichheitszeichen bleiben, während ihr das Expression-Auswahlwerkzeug (von mir Pick-Whip genannt) benutzt um den Wert des Schiebereglers in die Expression zu laden:

Fügt nun noch ein Semikolon hinterher um die Zeile zu beenden. Jetzt ersetzt die „50“, die wir für die Stärke der wiggle-Expression eingesetzt hatten durch ein einfaches „s“. Nun haben wir folgende Expression:

s = effect(“Einstellungen für Schieberegler”)(“Schieberegler”);x = value[0];

y = wiggle(5,s)[1];[x,y]

Ich habe nun noch den Effekt „Einstellungen für Schieberegler“ mit Enter auf der Haupttastatur in „Stärke“ umbenannt. Die Expression wird automatisch aktualisiert. Nun können wir den Wert im Schieberegler beliebig animieren um den gewollten Effekt zu erzielen:

In dem Anfangsbeispiel habe ich der Textebene noch einen „Schnellen Weichzeichner“ Effekt hinzugefügt und diesem folgende Expression hinzugefügt:

effect(“Stärke”)(“Schieberegler”)/60

Hier sieht man eine der großen Vorteile, den Expressions bieten. Mehrere Werte auf einen Verlinken. Jetzt kann man, wenn man möchte kann man den Schieberegler-Wert verändern und sowohl der wiggle-Wert als auch der Weichzeichnungs-Wert wird veränder, wobei der Wert des Schiebereglers beim Weichzeichnen vorher durch 60 geteilt wird.

[Profi] Anzahl an Effekten

Um nun auch den Leuten ein bisschen Stoff zu geben, die schon mal zum Beispiel etwas mit Javascript zu tun hatten habe ich hier noch einen Profiteil angelegt. Es soll ermittelt werde, wie viele Effekte auf einer bestimmten Ebene angewendet sind. Diese bestimmte Ebene erstellen wir erst einmal. Eine Farbfläche, die wir „EffektEbene“ nennen. Nun jedoch herauszufinden wie viele Effekte auf dieser Farbfläche angewendet sind ist nicht allzu einfach, denn diese Eigenschaft gibt es bis zur aktuellen Version CS3 noch nicht. Als Vorwissen sollte man wissen, dass jeder Effekt der auf einer Ebene angewendet ist eine Nummer hat. Einen Index. Der erste Effekt hat den Index 1. Die einzige Möglichkeit ist nun also herauszufinden, was die höchste Effekt-Index-Nummer ist, die es gibt. Man muss also immer wieder mit einer höheren Nummer versuche einen Effekt mit dem Index: 1,2,3,4,5,6,7,8….. aufzurufen bis es nicht mehr möglich ist. Manche mögen schon ahnen, dass hier eine Schleife eingesetzt werden muss. Da Expressions auf Javascript basieren, können wir so eine auch in Expressions einbauen.

i = 1;while (thisComp.layer(“EffektEbene”).effect(i++));

Jetz müssen wir aber herausfinden, wann dort ein Fehler auftritt. Dies lösen wir mit dem „try{} catch{}“ Befehl, der ebenfalls aus der Javascript Branche stammt.

i = 1;try {while (thisComp.layer(“EffektEbene”).effect(i++));

}

catch(err) {

i -2;

};

Das hier ist dann auch schon die fertige Expression. Es heißt:

Sodann… Das war mal ein langes in für 3 Schwierigkeitsstufen gegliedertes Tutorial, dass euch Expressions hoffentlich etwas näher gebracht hat.

MfG

PhSn

Wir empfehlen:
Animation in After Effects

Unsere Empfehlung für dich

Animation in After Effects

Animation in After Effects

Es gibt Animationen und es gibt schöne Animationen. Bei dem einen sehen wir bewegte Elemente, bei dem anderen bewegende Momente. Lerne in diesem 8-stündigen Training, wie Animation in After Effects funktioniert und was eine gute Animation ausmacht.

  • Hocheffektiv: Direkt lernen am Praxisprojekt
  • Disney Rules vorgestellt - die Regeln guter Animation verstehen
  • Animationswerkzeuge in AE und Tipps & Tricks zum Workflow
  • Zum optimalen Verständnis inkl. aller Projektdateien

Dieses Training animiert zu schöneren Animationen. Lass uns was zusammen bewegen!

Zum Training