← Zurück zu Software & Tools
Expressions in After Effects sind kleine JavaScript-Codeschnipsel, die einer Eigenschaft (Position, Rotation, Deckkraft etc.) dynamische Werte zuweisen – entweder als Alternative zu Keyframes oder als Verbindung zwischen verschiedenen Layer-Eigenschaften.

Rubrik: Software & Tools · Unterrubrik: Adobe After Effects · Niveau: Fortgeschritten Synonyme / Auch bekannt als: AE Expressions, JavaScript Expressions, Scripting (abzugrenzen von Scripting mit ExtendScript/JSX); Aktivieren: Alt + Klick auf Stoppuhr einer Eigenschaft


Was sind Expressions?

Expressions sind das Automatisierungswerkzeug von After Effects. Sie basieren auf einer Untermenge von JavaScript (ECMAScript) und werden direkt in der Timeline eingegeben. Statt Werte manuell per Keyframe anzusteuern, berechnet eine Expression den Wert dynamisch: basierend auf der Zeit (time), auf Eigenschaften anderer Layer, auf Benutzer-definierten Kontrollwerten oder auf mathematischen Funktionen. Das Ergebnis sind Animationen, die sich automatisch anpassen – wenn zum Beispiel ein Null-Objekt als Kontroll-Schieberegler definiert wird, der die Animationsgeschwindigkeit aller Layer gleichzeitig steuert.


Erklärung

Expression aktivieren und eingeben

  1. Alt + Klick auf die Stoppuhr-Icon einer beliebigen Eigenschaft
  2. Das Expressions-Feld öffnet sich in der Timeline (farblich markiert)
  3. Code direkt eingeben oder bearbeiten
  4. Enter bestätigt; Esc bricht ab ohne Übernahme
  5. Fehler werden durch ein Ausrufezeichen und roten Layer-Namen signalisiert

Expression deaktivieren (ohne löschen)

Das =-Icon links neben dem Expressions-Feld umschalten (durchgestrichen = deaktiviert). Die Expression bleibt gespeichert, wirkt aber nicht.

Expression löschen

Alt + Klick auf die Stoppuhr erneut → Expression wird entfernt

Grundlegende Variablen und Objekte

```javascript // Aktuelle Zeit in Sekunden: time

// Eigener aktueller Wert (vor der Expression): value

// Frames-Dauer der Composition: thisComp.frameDuration

// Breite der Composition: thisComp.width

// Höhe der Composition: thisComp.height

// Name der Composition: thisComp.name ```

Auf andere Layer und Eigenschaften zugreifen

```javascript // Zugriff auf eine andere Ebene in derselben Comp: thisComp.layer("Ebenenname")

// Position-Eigenschaft einer anderen Ebene: thisComp.layer("Kontroll-Ebene").transform.position

// Deckkraft einer anderen Ebene: thisComp.layer("Referenz-Layer").transform.opacity

// Zugriff auf einen Effekt-Parameter: thisComp.layer("Ebene").effect("Effektname")("Parametername") ```

Eigenschaft mit Slider-Effekt steuern (Kontroll-Rig)

``javascript // 1. Auf einem Null-Objekt: Effekt > Expressions-Steuerung > Schieberegler hinzufügen // 2. Auf der Ziel-Eigenschaft Expression: control = thisComp.layer("CTRL_Null").effect("Schieberegler 1")("Schieberegler"); value + control; ``

Math-Funktionen in Expressions

```javascript // Sinus-Welle (periodische Bewegung): Math.sin(time 2 Math.PI frequency) amplitude

// Beispiel: Pendelnde Rotation: Math.sin(time 3) 45 // zwischen -45° und +45°

// Zufallszahl (nicht persistent): Math.random() * 100

// Zufallszahl mit Seed (persistent): seedRandom(1, true); random(0, 100)

// Wert auf einen Bereich begrenzen (clamp): clamp(value, 0, 100)

// Lineares Interpolieren zwischen zwei Werten: linear(time, startTime, endTime, startValue, endValue)

// Ease-Interpolation: ease(time, startTime, endTime, startValue, endValue) ```

if/else-Logik in Expressions

```javascript // Eigenschaft wechselt je nach Zeit: if (time < 2) { 0; // 0° bis Sekunde 2 } else { 90; // 90° ab Sekunde 2 }

// Oder ternärer Operator (kurzform): time < 2 ? 0 : 90; ```

Array-Werte (für Position, Farbe etc.)

```javascript // Position als Array [x, y]: [thisComp.width / 2, thisComp.height / 2] // Comp-Mitte

// Nur X-Position der Comp-Mitte, Y bleibt original: [thisComp.width / 2, value[1]]

// Farbe als Array [R, G, B, A] (0-1 Werte): [1, 0, 0, 1] // Reines Rot ```

Expression Selector (für Text Animatoren)

```javascript // In einem Text-Animator-Selektor: // textIndex = Index des Zeichens (1-basiert) // textTotal = Gesamtanzahl der Zeichen

// Jedes zweite Zeichen: textIndex % 2 == 0 ? 100 : 0

// Abnehmende Stärke: 100 - (textIndex / textTotal) * 100 ```

Expressions-Bibliothek (Presets)

Expressions können als Animation Presets gespeichert werden:

  • Animation > Animation Preset speichern
  • Gespeichert unter: ~/Documents/Adobe/After Effects/User Presets/

Beispiele

  1. Stoppuhr-Zähler: Textebene mit Expression auf Source Text: ` Zeit: ${Math.floor(time)}s ` – zeigt laufende Sekunden
  2. Verknüpfte Skalierung: Layer B skaliert immer doppelt so groß wie Layer A: thisComp.layer("A").transform.scale * 2
  3. Offset-Follow: Layer B folgt Layer A mit 0,5 Sekunden Verzögerung: thisComp.layer("A").transform.position.valueAtTime(time - 0.5)
  4. Bounce-Expression: Kombiniert Math.abs(Math.sin()) für einen einfachen Hüpfeffekt ohne viele Keyframes
  5. Universeller Loop-Controller: Null-Objekt mit Schieberegler steuert die loopOut-Frequenz aller Layer gleichzeitig

In der Praxis

Expressions sind nicht dasselbe wie Scripts (JSX/ScriptUI): Scripts sind externe .jsx-Dateien, die from After Effects ausgeführt werden und die AE-Programmstruktur verändern können. Expressions sind eingebetteter Code in einzelnen Eigenschaften.

Debugging: Expressions-Fehler erscheinen als gelber Hinweis im Compositing-View und als ! neben dem Expressions-Feld. Auf das ! klicken zeigt die Fehlermeldung.

Nützliche Expression-Ressourcen:

  • Dan Ebberts Motionscript.com: die umfangreichste frei zugängliche Expression-Bibliothek
  • ae.tutorials.io: Expression-Datenbank mit Suche

Häufige Shortcuts:

AktionShortcut
Expression öffnen/schließenAlt + Klick auf Stoppuhr
Expression aktivieren/deaktivieren= Icon links vom Feld
Expression-Pickwhip nutzenSpiralen-Icon im Expressions-Feld
Alle Expressions anzeigenU U (doppelt auf Layer)

Vergleich & Abgrenzung

MethodeVorteilNachteil
ExpressionsAutomatisch, dynamisch, skalierbarErfordert JavaScript-Grundkenntnisse
KeyframesIntuitiv, vollständige visuelle KontrolleManuell, schwer nachträglich skalierbar
Scripts (ExtendScript/UXP)Steuert ganze AE-ProjekteKomplexer, externe Datei, mehr Programmierung
Plug-insOft GUI-basiert, kein CodeKostenpflichtig, externe Abhängigkeit

Häufige Fragen (FAQ)

Muss ich JavaScript kennen, um Expressions zu nutzen? Für die häufigsten Expressions (Wiggle, loopOut, Math.sin) reicht das Kopieren und Anpassen von Parametern. Für komplexere Expressions (Bedingungen, Zugriff auf andere Layer, Arrays) sind grundlegende Programmierkenntnisse hilfreich, aber keine Voraussetzung. After Effects' Pickwhip-Werkzeug generiert automatisch den Code für die Verbindung zu anderen Eigenschaften.

Werden Expressions beim Export mitgerendert? Ja – beim Rendern berechnet After Effects alle Expressions frame-genau und bäckt die Ergebnisse in die Output-Datei. Im exportierten Video sind keine Expressions mehr vorhanden – nur die berechneten Werte pro Frame.


Verwandte Einträge

Weiterführend

  • Adobe After Effects Benutzerhandbuch – helpx.adobe.com/de/after-effects
  • Motionscript.com – Dan Ebberts (englisch, die Referenz für AE-Expressions)
  • Hasson, M.: After Effects Expressions. Focal Press, 2007
← 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