Die Loop-Expression in After Effects – Endlosschleifen leicht gemacht

azubi@ahlersheinel

Wie sich mit After Effects-Expressions eine Menge Menge Zeit und Nerven sparen lässt, habe ich ja schon in einem anderen Artikel beschrieben. Heute stelle ich euch eine besonders häufig  genutzte Expression vor, die Loop-Expression. Mit ihr lassen sich Animationen wiederholen, ohne dass die Keyframes immer wieder kopiert und eingefügt werden müssen.

In allen Fällen außer einem (dazu später mehr) besteht die Loop-Expression aus drei Teilen: Einer Funktion und zwei Argumenten. Die am häufigsten genutzte Loop-Expression sieht so aus:

 loopOut(type = „cycle“, numKeyframes = 0)

 loopOut ist hierbei die Funktion, type = „cycle“ das erste Argument und numKeyframes = 0 das zweite Argument. Dahinter versteckt sich Folgendes: loopOut definiert, was mit den Keyframes passieren soll und wann es passieren soll: loop = Schleife, Out = nach dem letzten Keyframe. Der erste Keyframe der Animation wird somit einen Frame nach dem letzten Keyframe gesetzt und die Animation beginnt ab dort von vorne.

 

Die orange-farbenen Keyframes repräsentieren unsichtbare Keyframes, die durch die Expression generiert werden.

 Das Pendant dazu ist die Funktion loopIn. Sie hat die gleiche Funktionsweise wie loopOut, nur mit dem Unterschied, dass die Animation vor dem ersten Keyframe wiederholt wird, statt nach dem letzten.

 

Die orange-farbenen Keyframes repräsentieren unsichtbare Keyframes, die durch die Expression generiert werden.

Die Art des Ablaufs definieren

 type = gibt die Art des Ablaufs an. Hier gibt es vier verschiedene Möglichkeiten die Art eines Loops zu bestimmen. Wie im oberen Beispiel zu sehen, werden die Angaben immer in Anführungszeichen gesetzt (z.B. type = „cycle“). Die möglichen Angaben für das type-Argument sind:

 cycle: Die gesetzten Keyframes werden in derselben Reihenfolge immer wieder von vorne abgespielt.

 

pingpong: Die Keyframes werden vom ersten bis zum letzten vorwärts abgespielt, dann ab dem letzten rückwärts bis zum ersten, dann wieder bis zum letzten etc.

offset: Die Animation wird identisch wiederholt, der Startpunkt verschiebt sich jedoch immer auf den Endpunkt des letzten Zyklus. Erstellt man beispielsweise eine Animation von den Koordinaten [500,650] zu den Koordinaten [600,700], dann beginnt der zweite Zyklus nicht bei dem ursprünglichen Anfangspunkt [500,650], sondern bei [600,700] und bewegt sich zu [700,750]. Die Animation wird also mit jedem Ablauf versetzt.

  

continue: Die Animation wird auf Basis der Geschwindigkeit des letzten Keyframes fortgeführt. Deshalb funktioniert continue nur, wenn die Geschwindigkeit nicht 0 ist. Die Geschwindigkeit kann überprüft werden, indem man die animierte Eigenschaft in der Timeline auswählt, den Diagrammeditor öffnet und dort die Geschwindigkeitskurve anzeigen lässt. Achtung: Da continue ins Unendliche läuft und sich nicht durch die Loop-Expression limitieren lässt, darf kein zweites Argument existieren, sonst kommt es zu Fehlermeldungen (deshalb besteht die Expression in diesem Fall – wie am Anfang angesprochen – nur aus zwei Teilen).

Den Loop kontrollieren

 Durch das zweite Argument lässt sich die Schleife noch genauer definieren. Bei den Funktionen loopIn und loopOut lautet es numKeyframes, bei loopInDuration und loopOutDuration duration.

 numKeyframes: Dieses Argument definiert wie viele Keyframes der Animation wiederholt werden. Hierbei wird vom letzten Keyframe zurück gezählt. Ist der Wert 0, werden alle Keyframes wiederholt, ist er 1, wird die Animation ab dem vorletzten Keyframe wiederholt, bei einer 2 ab dem vorvorletzten etc.

 Beispiel: Eine Animation besteht aus 6 Keyframes und bei „numKeyframes“ steht eine 2. Wenn die Keyframes abgespielt wurden und die Expression einsetzt, wird die Animation ab dem zweiten Keyframe vor dem letzten – in chronologischer Reihenfolge betrachtet also ab dem vierten (6-5-4-3-2-1) – wiederholt.

Der rote Bereich wird jeweils immer nur einmal durch die Keyframes abgespielt, sie werden durch die Expression nicht wiederholt.

 duration: Wie bei numKeyframes gilt auch hier: Ist der Wert bei 0, wird die Animation komplett wiederholt. Ist er bei 1, wird die Animation eine Sekunde lang abgespielt. Dauert eine Animation länger als der bei duration angegebene Wert (in Sekunden), so wird sie immer wieder nach der bestimmten Zeit abgebrochen und beginnt von vorn. Ist sie kürzer als der duration-Wert, wird die Differenz mit einem Standbild des ersten Frames gefüllt.

 Beispiel: Eine Animation dauert eine halbe Sekunde. Nachdem sie abgespielt wurde, folgt für eine weitere halbe Sekunde ein Standbild des ersten Frames und wenn eine Sekunde verstrichen ist, wird die Animation erneut abgespielt. Dauert die Animation zwei Sekunden, wird immer nur die erste Hälfte abgespielt, da sie nach einer Sekunde von Anfang an wiederholt wird.

Kommentar: Der rote Bereich zeigt jeweils die Dauer zwischen zwei Schleifen an, in denen ein Standbild des ersten Frames der Animation angezeigt wird.

 Tipp: Die Argumente müssen nicht komplett ausgeschrieben werden. Es reicht die Werte anzugeben. Beispiel: loopOut(type = „cycle“, numKeyframes = 0) ist das Gleiche wie loopOut(„cycle“,0)

 Loops in der Praxis

 Sowohl umfangreiche Projekte als auch ganz kurze Videos wie etwaGIF-Sequenzen profitieren nicht selten von Loops. Hier ist ein kleines Beispiel, das mit Hilfe der Loop-Expression in einer Endlosschleife läuft.

Dieses Projekt hat mir selbst wieder vor Augen geführt, wie wichtig die Schleifenfunktion ist. Selbst wenn man nur eine minimale Änderung vornimmt, müsste man ohne die Loop-Expression zig verschiedene Keyframes immer wieder neu kopieren und einfügen. Durch die Expression wird das zum Glück komplett überflüssig und Änderungen an einer Animation werden für die gesamte Kompositionsdauer übernommen.

Benjamin Gätzschmann

Hallo! Im August 2016 habe ich meine Ausbildung zum Mediengestalter bei AhlersHeinel begonnen. Ich freue mich, dass ich hier in der Agentur sehr viel Praxiserfahrung sammeln kann und mit tollen Kolleginnen und Kollegen zusammenarbeite.

Sag etwas dazu