Wiggle Expression in After Effects ist eine JavaScript-basierte Expression, die einer animierbaren Eigenschaft kontinuierlich zufällig wechselnde Werte zuweist – ganz ohne Keyframes.
Rubrik: Software & Tools Deep-Dive · Unterrubrik: Adobe After Effects · Niveau: Fortgeschritten Synonyme / Auch bekannt als: wiggle(), Rütteln-Expression, Schütteln-Expression
Was ist die Wiggle Expression?
Die Wiggle Expression ist eine der am häufigsten eingesetzten Expressions in After Effects. Sie basiert auf dem eingebauten Perlin-Noise-Algorithmus von After Effects und erzeugt fließende, pseudozufällige Wertveränderungen auf nahezu jeder animierbaren Eigenschaft – Position, Rotation, Skalierung, Deckkraft, Effektparameter und mehr. Das Ergebnis klingt und wirkt organisch: vergleichbar mit dem Wackeln einer Handkamera, dem Flattern eines Blattes im Wind oder dem Flackern einer Lampe.
Der entscheidende Vorteil gegenüber manuell gesetzten Keyframes liegt im Tempo: Eine Zeile Code ersetzt Dutzende von Keyframes und produziert dabei ein natürlicheres, weniger vorhersehbares Ergebnis. Wiggle ist deshalb ein Standardwerkzeug für Motion-Designer, VFX-Artists und Broadcast-Grafiker.
Erklärung mit konkreten Parametern
Grundsyntax
``javascript wiggle(frequency, amplitude) ``
| Parameter | Typ | Beschreibung | Typischer Wert |
|---|---|---|---|
frequency | Float | Wie oft pro Sekunde der Wert wechselt | 1–20 |
amplitude | Float | Maximale Abweichung vom Ausgangswert (in Pixel, Grad etc.) | 5–200 |
Erweiterte Syntax
``javascript wiggle(frequency, amplitude, octaves, amp_mult, t) ``
| Parameter | Typ | Beschreibung | Standard |
|---|---|---|---|
octaves | Integer | Anzahl übergelagerter Rausch-Schichten | 1 |
amp_mult | Float | Amplituden-Multiplikator pro Oktave | 0.5 |
t | Zeit | Zeitbasis für die Berechnung | time |
Octaves und amp_mult im Detail: Mit octaves = 3 und amp_mult = 0.5 erhält man drei überlagerte Rausch-Schichten, wobei jede weitere Schicht halb so stark ist wie die vorherige. Das Ergebnis wirkt komplexer und weniger regelmäßig. Empfehlung: wiggle(2, 40, 3, 0.5) für natürliche Kamerabewegungen.
Nur einzelne Achsen wackeln lassen
Position ist ein Array [x, y]. Um nur die Y-Achse zu animieren:
``javascript x = value[0]; y = wiggle(3, 50)[1]; [x, y] ``
Nur X-Achse:
``javascript x = wiggle(3, 50)[0]; y = value[1]; [x, y] ``
Wiggle zeitlich begrenzen
``javascript startTime = 1; endTime = 4; if (time >= startTime && time <= endTime) { wiggle(5, 30); } else { value; } ``
Reproduzierbarer Seed
``javascript seedRandom(42, true); wiggle(3, 50); ``
Der seedRandom(n, true)-Aufruf fixiert den Zufallsstamm – nützlich, wenn identische Bewegungen in mehreren Layers gewünscht sind oder das Projekt reproduzierbar gerendert werden muss.
Schritt-für-Schritt Anleitung
- Layer auswählen und im Timeline-Panel die gewünschte Eigenschaft aufklappen (Shortcut: P für Position, R für Rotation, T für Opacity).
- Alt + Klick auf das Stoppuhr-Symbol der Eigenschaft – das Expression-Feld öffnet sich.
- Den bestehenden Inhalt löschen und eingeben:
wiggle(3, 50). - Enter drücken oder außerhalb klicken – die Expression wird aktiviert.
- Im Graph Editor (Shortcut: Shift + F3) lässt sich der resultierende Werteverlauf visuell prüfen.
- Um die Expression vorübergehend zu deaktivieren: Das = Symbol links neben dem Expression-Feld klicken.
- Expression-Preset speichern: Animation-Menü > Expression-Presets > Speichern – so steht die Expression für alle Projekte als Preset bereit.
Beispiele – 5 konkrete Anwendungen
- Handheld-Kamera-Effekt:
wiggle(2, 8)auf die Position einer 3D-Kamera. Frequenz 2 wirkt ruhig und dokumentarisch; Amplitude 8 Pixel bei Full HD ist kaum störend, aber deutlich spürbar. - Flackernde Leuchtreklame:
wiggle(15, 30)auf die Deckkraft (Opacity). Hohe Frequenz erzeugt nervöses Flackern; mitseedRandom(7, true)davor lässt es sich für alle Neon-Layer synchronisieren oder bewusst verstimmen. - Atmende Titelgrafik:
wiggle(1.2, 3)auf die Skalierung (Scale). Sehr langsame, minimale Pulsation gibt statischem Text Leben, ohne von der eigentlichen Aussage abzulenken. - Schüttelnder Text bei Aufprall: Kombiniert mit einem Keyframe-Timing: Expression erst ab
time > 2.5aktiv, mitwiggle(20, 12)– intensives, schnelles Zittern für einen kurzen Impact-Moment. - Organischer Partikel-Drift: Auf Position mit Achsenbeschränkung auf Y:
y = wiggle(0.5, 120)[1]– sehr langsames, weiträumiges vertikales Treiben für Hintergrund-Elemente wie Schneeflocken oder Blütenblätter.
In der Praxis
Wichtigste Shortcuts:
- Alt + Klick auf Stoppuhr → Expression öffnen
- E → Alle Expressions eines Layers anzeigen
- Shift + F3 → Graph Editor öffnen
Häufige Fehler und Lösungen:
- Wiggle springt statt zu fließen: Die Framerate der Komposition ist zu niedrig. Lösung: Komposition auf mindestens 24 fps setzen.
- Beide Achsen wackeln, aber nur eine soll: Array-Syntax vergessen (siehe Abschnitt oben).
- Expression erzeugt andere Werte nach Projekt-Neustart: Kein fixer Seed gesetzt.
seedRandom(n, true)davor hinzufügen. - Amplitude wirkt zu stark nach Export: Bei Prerender-Workflows wird Wiggle auf Basis der Kompositionszeit berechnet. Sicherstellen, dass In-Point und Kompositions-Timecode übereinstimmen.
Profi-Tipp: Wiggle auf ein Null-Objekt anwenden, dann alle betroffenen Layer per Parenting mit dem Null-Objekt verknüpfen. So lässt sich die gesamte Bewegung mit einem einzigen Expression-Wert steuern – z. B. über einen Slider Control-Effekt als Amplitude-Master.
Vergleich & Abgrenzung
| Methode | Vorteil | Nachteil |
|---|---|---|
| Wiggle Expression | Kein Keyframe-Aufwand, fließend, skalierbar | Begrenzte Kurven-Kontrolle |
| Manuelle Keyframes + Easy Ease (F9) | Volle Kontrolle, reproduzierbar | Zeitaufwändig |
| Motion Sketch (Window > Motion Sketch) | Echte Handbewegungen aufzeichnen | Grob, schwer editierbar |
| Noise-Effekt auf Effektparameter | Visuell im Effekt-Panel sichtbar | Komplexer Setup |
| Expressionfähige Drittanbieter-Plugins (z. B. Motion Bro) | GUI-basiert, kein Code nötig | Kostenpflichtig |
Häufige Fragen (FAQ)
Kann Wiggle auf Effektparameter angewendet werden? Ja. Alt + Klick auf den Stoppuhr-Symbol eines beliebigen Effektparameters öffnet das Expressionsfeld. Wiggle funktioniert auf jedem animierbaren numerischen Wert – einschließlich Color als Array [r, g, b, a], Blur-Stärke oder Masken-Pfad-Expansion.
Wie synchronisiere ich Wiggle auf mehreren Layers identisch? Mit seedRandom(fixerWert, true) und identischen Parametern auf allen Layers. Alternativ: Wiggle nur auf ein gemeinsames Parent-Null-Objekt anwenden.
Verwandte Einträge
Weiterführend
- Adobe After Effects Benutzerhandbuch – helpx.adobe.com/de/after-effects/using/expression-basics.html
- Dan Ebberts: motionscript.com – umfangreichste Expression-Referenz (englisch)
- School of Motion: After Effects Expressions 101 – schoolofmotion.com
- Video Copilot: videocopilot.net/tutorials (englisch, praxisnah)
