loopOut und loopIn sind After-Effects-Expressions, die es ermöglichen, eine definierte Keyframe-Sequenz automatisch und beliebig oft zu wiederholen – ohne zusätzliche Keyframes manuell setzen zu müssen.
Was ist die Loop-Expression?
In After Effects endet eine Animation standardmäßig an ihrem letzten Keyframe – danach bleibt der Wert statisch. Die Loop-Expressions loopOut() und loopIn() lösen dieses Problem elegant: Sie instruieren After Effects, den animierten Bereich nach dem letzten (loopOut) bzw. vor dem ersten (loopIn) Keyframe zu wiederholen. Das Ergebnis ist eine endlose Animation, die aus nur zwei oder mehr Keyframes besteht.
Loop-Expressions sind fester Bestandteil jedes professionellen Motion-Design-Workflows. Sie sparen nicht nur Zeit, sondern erzeugen exakt identische Wiederholungen ohne Timing-Abweichungen.
Erklärung
Syntax
``javascript loopOut(type = "cycle", numKeyframes = 0) loopIn(type = "cycle", numKeyframes = 0) ``
Parameter:
type– Art der Wiederholung (String)numKeyframes– Anzahl der Keyframes, die in die Schleife einbezogen werden (0 = alle)
Loop-Typen im Überblick
| Typ | Verhalten |
|---|---|
"cycle" | Wiederholt die gesamte Sequenz von vorne (Standard) |
"pingpong" | Spielt die Sequenz vorwärts, dann rückwärts |
"offset" | Wiederholt und versetzt den Startwert akkumulativ |
"continue" | Setzt die letzte Keyframe-Kurve linear fort |
cycle – der Standardtyp
``javascript loopOut("cycle") ``
Ein Ball bewegt sich von Y=0 nach Y=500 – mit cycle springt er nach Erreichen von Y=500 sofort zurück zu Y=0 und beginnt erneut. Ideal für Lade-Animationen oder Ticker-Effekte.
pingpong – Hin und Her
``javascript loopOut("pingpong") ``
Die Animation wird vorwärts und dann automatisch rückwärts abgespielt. Ein Pendel, ein Atemeffekt oder ein Herz, das schlägt – pingpong erzeugt organisch wirkende, symmetrische Schleifen.
offset – additive Wiederholung
``javascript loopOut("offset") ``
Jede Wiederholung addiert den Differenzwert der Sequenz zum vorherigen Endwert. Ein Rad, das sich kontinuierlich dreht (von 0° auf 360°), nutzt offset – ohne diesen Typ würde es bei jeder Wiederholung zur Ausgangsposition zurückspringen.
``javascript // Typisch für Rotation: loopOut("offset") // Keyframes: 0° bei t=0, 360° bei t=1s → endlose Rotation ``
continue – lineare Extrapolation
``javascript loopOut("continue") ``
Setzt die Bewegungskurve des letzten Keyframe-Segments linear fort. Kein Zurückspringen, keine Wiederholung – der Wert wächst oder fällt unbegrenzt weiter.
numKeyframes-Parameter
``javascript loopOut("cycle", 2) ``
Mit numKeyframes = 2 werden nur die letzten 2 Keyframes in die Schleife einbezogen. Der Rest der Animation spielt einmalig ab, erst dann beginnt die Loop. Nützlich für Intro-Animationen mit anschließender Endlosschleife.
loopIn – rückwärts gerichtet
``javascript loopIn("cycle") loopIn("pingpong") ``
loopIn verhält sich analog zu loopOut, wirkt aber vor dem ersten Keyframe. Selten allein verwendet, aber in Kombination mit loopOut kann eine lückenlose Schleife in beide Richtungen erzeugt werden.
Beispiele
Endlos rotierendes Logo
``javascript // Auf die Rotation-Eigenschaft anwenden: loopOut("offset") // Keyframes: 0° bei 0:00, 360° bei 0:02 // Ergebnis: gleichmäßige, endlose Rotation ``
Pulsierendes Icon (Skalierung)
``javascript // Auf Scale anwenden: loopOut("pingpong") // Keyframes: 100% bei 0:00, 110% bei 0:15 // Ergebnis: organisches Atmen / Pulsieren ``
Lauftext (Position)
``javascript // Auf Position X anwenden: loopOut("cycle") // Keyframes: X=1920 bei 0:00, X=0 bei 0:03 // Ergebnis: Ticker, der endlos von rechts nach links läuft ``
Schleife nur der letzten Phase
``javascript // Intro spielt einmal ab, dann Loop der letzten 2 Keyframes: loopOut("cycle", 2) ``
In der Praxis
Broadcast-Design: Lade-Spinner, Fortschrittsbalken und Laufbänder werden fast immer mit loopOut("cycle") oder loopOut("offset") realisiert.
Social-Media-Content: Kurze, loopende Animationen (GIFs, Instagram-Reels mit nahtlosem Loop) profitieren von pingpong oder cycle.
Charakter-Animation: Idle-Animationen (atmender Charakter, blinkende Augen) nutzen pingpong mit Easy-Ease-Keyframes.
Performance: Loop-Expressions sind extrem ressourcenschonend. After Effects berechnet nur den Keyframe-Abschnitt und wiederholt ihn mathematisch – kein Overhead durch zusätzliche Keyframes.
Workflow-Tipp: Eine Expression lässt sich mit Alt+Klick auf die Stoppuhr einer Eigenschaft eingeben. Für häufig genutzte Expressions bietet sich ein Expression-Preset im Animation Presets-System an, oder – noch besser – ein Expression Control über ein Null-Objekt.
Vergleich & Abgrenzung
| Methode | Vorteil | Nachteil |
|---|---|---|
loopOut("cycle") | Einfach, sauber | Harter Sprung ohne Glättung |
loopOut("pingpong") | Weich, symmetrisch | Doppelte Zyklusdauer |
loopOut("offset") | Akkumulativ (z.B. Rotation) | Nur sinnvoll für kontinuierliche Werte |
| Manuelle Keyframes | Volle Kontrolle | Aufwändig, fehleranfällig bei langen Timelines |
| Time Remapping + Expressions | Sehr flexibel | Komplexer |
Häufige Fragen (FAQ)
Warum zeigt die Loop nichts an? Die Eigenschaft braucht mindestens zwei Keyframes. Ohne Keyframes gibt es nichts zu loopen – After Effects wirft keinen Fehler, aber auch keine Bewegung.
Kann ich loop mit Wiggle kombinieren? Direkt nicht sinnvoll – Wiggle ist stochastisch und kennt keine Keyframes. Für geschlossene Wiggle-Loops gibt es die Technik mit seedRandom und einer manuellen Interpolation, oder man verwendet loopOut("cycle") auf einer separaten Nullobjekt-Eigenschaft, die Wiggle steuert.
Beeinflusst loopOut die Render-Performance? Nein – Loop-Expressions sind rechnerisch günstig. Sie ersetzt reine Keyframe-Wiederholungen und kann die Projektgröße sogar reduzieren.
Wie stoppe ich eine Loop nach X Wiederholungen? Mit einem if-Statement in der Expression: ``javascript if (time < 5) { loopOut("cycle"); } else { value; } ``
Funktioniert loopOut auch in Compositions mit Precompose? Ja – die Expression referenziert nur die Keyframes der aktuellen Eigenschaft, unabhängig von der Kompositionsstruktur.
Verwandte Einträge
- After Effects: Expressions Grundlagen – Animationen mit JavaScript automatisieren – Grundlegendes Expression-System in After Effects
- After Effects: Wiggle Expression – Organische Zufallsbewegungen erzeugen – Zufällige Bewegungs-Expression
- After Effects: Graph Editor – Präzise Animationskurven bearbeiten – Keyframe-Kurven und Interpolation
- Null-Objekte & Parenting – Null-Objekte als Expression-Controller
- Expression Controls (Slider, Winkel, Farbe) – Slider und andere Expression Controls
Weiterführend
- Adobe Help Center: „Apply expressions" (adobe.com/help, 2024)
- Motionscript.com – Dan Ebberts: Expression-Referenz für After Effects (2023)
- School of Motion: „After Effects Expressions 101" (schoolofmotion.com, 2022)
- Video Copilot: Expression-Tutorials (videocopilot.net, 2023)
- AEJuice: „Loop Expressions Cheat Sheet" (aejuice.com, 2024)
