← Zurück zu Software & Tools
Expressions in After Effects sind JavaScript-basierte Code-Schnipsel, die in jedes animierbare Eigenschaftsfeld eingefügt werden und dynamische, berechnungsbasierte Animationen ohne manuelle Keyframes ermöglichen.

Rubrik: Software & Tools Deep-Dive · Unterrubrik: Adobe After Effects · Niveau: Fortgeschritten Synonyme / Auch bekannt als: AE Expressions, JavaScript-Expressions, Expression Language


Was sind Expressions?

Expressions sind eine eingebaute Skriptsprache in After Effects, die auf der JavaScript-Syntax (genauer: ExtendScript/ECMA-262) basiert. Im Gegensatz zu After Effects-Scripting (das die gesamte Anwendung steuert) betrifft eine Expression immer genau eine einzige animierbare Eigenschaft eines Layers – z. B. Position, Rotation, Opacity, Effektparameter.

Eine Expression ersetzt oder ergänzt Keyframes: Statt fest codierter Werte zu bestimmten Zeitpunkten berechnet die Expression den Wert dynamisch für jeden Frame. Das eröffnet Möglichkeiten, die mit klassischen Keyframes nicht oder nur mühsam realisierbar wären: Mathematisch berechnete Bewegungen, reaktive Abhängigkeiten zwischen Layers, zufällige Variationen, Audio-reaktive Animationen und vieles mehr.


Erklärung mit konkreten Parametern

Expression aktivieren

Alt + Klick auf das Stoppuhr-Symbol (Uhr-Icon) einer animierbaren Eigenschaft in der Timeline. Das Expression-Feld öffnet sich – hier wird der JavaScript-Code eingegeben.

Wichtigste eingebaute Objekte

`time` Die aktuelle Zeit der Komposition in Sekunden (Float). ``javascript time // z. B. 2.04167 bei 2 Sekunden in 24fps time * 360 // Rotiert 360° pro Sekunde ``

`thisLayer` Referenz auf den eigenen Layer. ``javascript thisLayer.name // Name des Layers als String thisLayer.inPoint // In-Point des Layers in Sekunden thisLayer.width // Breite des Layers in Pixel ``

`thisComp` Referenz auf die aktuelle Komposition. ``javascript thisComp.width // Breite der Komposition (z. B. 1920) thisComp.height // Höhe (z. B. 1080) thisComp.duration // Dauer in Sekunden thisComp.frameDuration // Dauer eines Frames in Sekunden (1/fps) thisComp.layer("Name") // Zugriff auf anderen Layer per Name ``

`value` Der "rohe" Eigenschaftswert ohne die Expression – also der Wert der Keyframes oder des statischen Werts. ``javascript value + [0, 10] // Position: 10 Pixel nach unten versetzt value * 0.5 // Skalierung halbiert ``

Wichtige eingebaute Methoden

`valueAtTime(t)` Gibt den Wert einer Eigenschaft zu einem anderen Zeitpunkt zurück. Sehr mächtig für Follow-Effekte.

``javascript // Aktuelle Layer-Position, aber 0.1 Sekunden später: thisComp.layer("Pfeil").transform.position.valueAtTime(time - 0.1) ``

`linear(t, tMin, tMax, valMin, valMax)` Lineare Interpolation – mapped einen Wertebereich auf einen anderen. ``javascript // Slider 0–100 auf Opacity 0–1 mappen: linear(effect("Fade")("Slider"), 0, 100, 0, 100) ``

`ease(t, tMin, tMax, valMin, valMax)` Wie linear, aber mit weichem Ease-In/Out.

`clamp(value, limit1, limit2)` Begrenzt einen Wert auf einen Bereich. ``javascript clamp(wiggle(3, 50)[0], -100, 100) // Wiggle zwischen -100 und 100 begrenzen ``

`toComp(point)` / `toWorld(point)` / `fromComp(point)` Koordinaten-Transformation zwischen Layer-, Kompositions- und Weltkoordinaten.

Arrays und Vektoren

Viele Eigenschaften sind Arrays: Position ist [x, y], Farbe ist [r, g, b, a]. ```javascript // Nur Y-Wert ändern: [value[0], value[1] + 50]

// RGB-Farbe auf Graustufen mappen: [value[0], value[0], value[0], value[3]] ```


Schritt-für-Schritt Anleitung: Reaktive Positions-Expression

Ziel: Layer B folgt Layer A mit 0,3 Sekunden Verzögerung (Follow).

  1. Layer B auswählen, Position-Property aufklappen.
  2. Alt + Klick auf Stoppuhr der Position-Property.
  3. Expression eingeben:

``javascript thisComp.layer("Layer A").transform.position.valueAtTime(time - 0.3) ``

  1. Enter drücken. Layer B folgt Layer A mit 300ms Verzögerung.
  2. Für variable Verzögerung: Slider Control auf MASTER-Layer anlegen (Name: "Delay"), Expression anpassen:

``javascript delay = thisComp.layer("MASTER").effect("Delay")("Slider"); thisComp.layer("Layer A").transform.position.valueAtTime(time - delay) ``


Beispiele – 5 konkrete Anwendungen

  1. Digitale Uhr: Text-Layer mit Expression Math.floor(time / 3600) (Stunden), Math.floor((time % 3600) / 60) (Minuten), Math.floor(time % 60) (Sekunden) – die Uhr läuft automatisch ab Frame 0.
  2. Audio-Reaktive Grafik: Expression auf Scale-Property: a = thisComp.layer("Audio-Amplitude").effect("Both Channels")("Slider"); linear(a, 0, 100, 80, 200) – Balken pulsiert mit Musik.
  3. Endlos-Rotation: Rotation-Property: time * 90 – der Layer dreht sich mit 90 Grad pro Sekunde kontinuierlich ohne Keyframes.
  4. Adaptives Layout: Wenn Text-Layer wächst, sollen Hintergrund-Shapes automatisch skalieren: Expression auf Scale des Hintergrunds referenziert thisComp.layer("Text").sourceRectAtTime(time).width / 100.
  5. Random but Stable: Zufällig scheinende, aber deterministisch generierte Animation: seedRandom(index, true); wiggle(2, 30) – jeder Layer mit eigenem index-Wert erzeugt einzigartiges, aber reproduzierbares Zufallsmuster.

In der Praxis

Shortcuts:

  • Alt + Klick auf Stoppuhr → Expression-Feld öffnen
  • E → Alle Expressions eines Layers anzeigen
  • EE → Alle Expression-Texte sichtbar machen
  • = Symbol neben Expression-Feld → Expression aktivieren/deaktivieren
  • Strg/Cmd + Z → Expression-Änderung rückgängig

Häufige Fehler:

  • "Expression deaktiviert" / rotes Expression-Feld: Syntax-Fehler im Code. After Effects deaktiviert Expressions bei Fehlern automatisch. Fehlermeldung im Expression-Feld lesen und korrigieren.
  • Expression gibt immer 0 zurück: Falscher Rückgabewert. JavaScript-Expressions in AE geben den letzten ausgewerteten Ausdruck zurück (kein explizites return notwendig, aber möglich).
  • Layer-Referenz "null" oder "undefined": Layer-Name falsch geschrieben oder Layer nicht in derselben Komposition. Layer-Namen in AE sind case-sensitive.
  • Expression läuft sehr langsam: Komplexe Expressions (insbesondere valueAtTime() auf animierten Properties) können performance-intensiv sein. Prerender-Workflow oder Expression-Ergebnisse als Keyframes einfügen (Animation > Expression in Keyframes konvertieren).

Profi-Tipp: After Effects unterstützt mehrzeilige Expressions und JavaScript-Funktionen. Komplexe Logik in Funktionen auslagern:

``javascript function mapRange(value, inMin, inMax, outMin, outMax) { return outMin + (outMax - outMin) * ((value - inMin) / (inMax - inMin)); } mapRange(time, 0, 5, 0, 100) ``


Vergleich & Abgrenzung

MethodeVorteilNachteil
ExpressionsDynamisch, wiederverwendbar, kompaktLernkurve (JavaScript)
KeyframesIntuitiv, visuell im Graph EditorStatisch, aufwändig bei Variation
After Effects Scripting (.jsx)Automatisiert Workflows, Batch-OperationenSteuert AE-Applikation, kein Per-Frame-Berechnung
Expressions-Plugins (z. B. Expression Universalizer)Vereinfacht Syntax-ProblemeLizenzabhängig

Häufige Fragen (FAQ)

Kann ich externe JavaScript-Libraries in AE-Expressions einbinden? Nein. AE Expressions laufen in einer abgeschlossenen Umgebung ohne Zugriff auf externe Bibliotheken. Nur die eingebauten AE-Expressions-Objekte und Standard-JavaScript-Methoden (Math, Array, String etc.) sind verfügbar.

Was ist der Unterschied zwischen Expressions und After Effects Scripts (.jsx)? Expressions berechnen Eigenschaftswerte frame-für-frame innerhalb einer Komposition. Scripts (.jsx) sind vollständige JavaScript-Programme, die die AE-Applikation steuern (Layers erstellen, Properties setzen, Kompositions-Struktur aufbauen) und über Datei > Scripts ausgeführt werden.


Verwandte Einträge

Weiterführend

  • Adobe After Effects Benutzerhandbuch – helpx.adobe.com/de/after-effects/using/expression-basics.html
  • Adobe Expression Language Reference – helpx.adobe.com/after-effects/using/expression-language-reference.html
  • Dan Ebberts: Motionscript.com – umfangreichste Expression-Referenz (englisch)
  • School of Motion: After Effects Expressions 101 – schoolofmotion.com
← Zurück zu Software & Tools
Infotag · 13. Mai · 15:00 Uhr · Vor Ort

Sei am Mittwoch dabei.
Bring Eltern oder Freunde mit.

Ein halber Nachmittag, der dir drei Jahre Klarheit bringen kann. Kostenlos, unverbindlich, ehrlich.

  • Rundgang durch Studios, Schnitträume und Tonstudio
  • Echte Absolventenfilme sehen
  • 1:1-Beratung zu Bewerbung & BAföG
  • Studierende direkt fragen
  • Kaffee, kein Sales-Pitch
  • Auch online möglich

Platz beim Infotag reservieren

Dauert 30 Sekunden. Bestätigung per E-Mail.
100 % kostenlos · keine Verpflichtung · jederzeit absagbar