Neu: Exportlab MCP für ClaudeFrag dein Studio alles und erledige Aufgaben direkt im Chat.

Veröffentlicht Aug 14, 2026 in Videografen

Die After Effects Bounce Expression: kopieren, dann verstehen

After-Effects-Timeline mit einer Bounce Expression auf einer Positions-Eigenschaft
Exportlab

Die After Effects Bounce Expression: kopieren, dann verstehen

Einen Bounce von Hand zu keyframen ist ein verlorenes Spiel. Du setzt vier Keyframes, ziehst an den Kurven, spielst ab — und es sieht falsch aus, ohne dass du sagen könntest, warum. Zwanzig Minuten später ist es immer noch falsch.

Eine Expression erledigt das mit einem Einfügen. Hier ist die, die ich tatsächlich benutze — nicht die Version, die überall kursiert, sondern eine mit zwei Änderungen, die in der Praxis zählen.

Die Expression

Füg das auf jede animierte Eigenschaft ein (Position, Skalierung, Rotation), die bereits mindestens zwei Keyframes hat:

javascript
amp = .04;
freq = 1.8;
decay = 3;
n = 0;
time_max = 3;

if (numKeys > 0) {
    n = nearestKey(time).index;
    if (key(n).time > time) {
        n--;
    }
}

if (n == 0) {
    t = 0;
} else {
    t = time - key(n).time;
}

if (n > 0 && t < time_max) {
    v = velocityAtTime(key(n).time - thisComp.frameDuration / 10);

    // Ease Out Factor (startet bei 1, geht langsam auf 0)
    easeFactor = easeOut(t, 0, time_max, 1, 0);

    value + v * amp * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t) * easeFactor;
} else {
    value;
}

So wendest du sie an: Alt-Klick (Option-Klick am Mac) auf die Stoppuhr neben der Eigenschaft, einfügen, irgendwo außerhalb des Feldes klicken.

Was die Parameter machen

Die vier Zahlen oben sind das Einzige, was du anfassen musst. Alles darunter ist Mechanik.

amp — Amplitude (0.04). Wie weit der Überschwinger über das Ziel hinausgeht. Höher für einen größeren, lockereren Bounce; niedriger für ein dezentes Einrasten. Diesen Wert wirst du am häufigsten ändern, und kleine Schritte reichen — 0.08 ist bereits doppelt so dramatisch.

freq — Frequenz (1.8). Wie viele Schwingungen pro Sekunde. Höher heißt schnelleres, engeres Wackeln; niedriger heißt langsame, schwere Ausschläge. Denk an das Gewicht des Objekts: Ein Wasserball hat niedrige Frequenz, eine Metallfeder eine hohe.

decay — wie schnell es abklingt (3). Größere Werte beenden den Bounce früher. Bei decay = 1 wackelt es lange nach, bei decay = 6 federt es kaum einmal. Das ist der Parameter, der über „verspielt" oder „nervig" entscheidet.

time_max — die harte Abschaltung (3). Nach so vielen Sekunden hört die Expression auf zu rechnen und gibt einfach den normalen Wert zurück.

Die zwei Teile, die den meisten Versionen fehlen

Wenn du nach einer Bounce Expression suchst, findest du überall ungefähr dieselben fünfzehn Zeilen. Zwei Dinge in der Version oben fehlen dort meistens, und beide lösen echte Probleme.

Die time_max-Abschaltung. Ohne sie rechnet die Expression über die gesamte Länge der Ebene weiter. Die Mathematik ist längst auf nichts Sichtbares abgeklungen, aber After Effects berechnet sie trotzdem in jedem Frame, für jede Eigenschaft mit dieser Expression. In einer Komposition mit Dutzenden animierten Elementen merkst du das in der Vorschau.

Der easeFactor. Ein reiner abklingender Sinus erreicht nie null — er nähert sich nur an. In der Praxis hört die Bewegung auf, wenn sie kleiner als ein Pixel wird, und das ist ein willkürlicher Moment, der am Ende ein leichtes Zucken hinterlassen kann. Die Multiplikation mit einer Ease, die über time_max von 1 auf 0 läuft, erzwingt einen sauberen Stopp. Bei einem großen Bounce ist der Unterschied subtil, bei einem kleinen sehr deutlich.

Wie sie funktioniert, kurz erklärt

Drei Zeilen tragen das Ganze.

velocityAtTime(...) misst, wie schnell sich die Eigenschaft kurz vor dem Keyframe bewegt hat. Deshalb braucht die Expression überhaupt Keyframes: Sie erfindet keine Bewegung, sie reagiert auf deine. Der Versatz frameDuration / 10 greift die Geschwindigkeit leicht *vor* dem Keyframe ab, weil sie am Keyframe selbst schon auf null gefallen ist.

Math.sin(freq * t * 2 * Math.PI) erzeugt die Schwingung — das Hin und Her.

Math.exp(decay * t) wächst mit der Zeit schnell an, und die Division dadurch schrumpft die Schwingung. Das ist die Dämpfung.

Multipliziere das, addiere es auf value, und du hast einen Bounce, der mit der Geschwindigkeit deiner Animation startet und von dort ausklingt.

Wo du sie einsetzt (und wo nicht)

Position ist der offensichtliche Fall: eine Karte, die hereinfährt, ein Bauchbinden-Einblender, ein Icon, das an seinen Platz fällt.

Skalierung funktioniert gut für alles, was erscheint — aber reduziere amp auf etwa 0.02. Skalierung ist empfindlicher als Position, und dieselbe Amplitude, die auf einer fahrenden Karte gut aussieht, wirkt bei einem wachsenden Logo gummiartig.

Rotation macht am meisten Spaß: ein Badge, der einschwingt, ein klingelndes Benachrichtigungs-Icon. Hier lohnt sich eine höhere freq.

Wo sie nicht hingehört: Alles, was an einem exakten Frame einen exakten Wert treffen muss. Masken, Track Mattes, präzise UI-Zustände. Die Expression überschwingt konstruktionsbedingt — das ist ihr Sinn und gleichzeitig ein Problem, wenn der Endpunkt nicht verhandelbar ist.

Häufige Probleme

Es passiert nichts. Die Eigenschaft hat weniger als zwei Keyframes. Die Expression reagiert auf Bewegung; ohne Bewegung gibt es nichts zu federn.

Der Bounce geht in die falsche Richtung. Er folgt der Bewegungsrichtung in den letzten Keyframe hinein. Das ist meist ein Zeichen, dass die Keyframes falsch sitzen, nicht die Expression.

Es federt zu stark. Erhöhe decay, bevor du amp senkst. Decay steuert wie lange, amp steuert wie weit — und „zu viel" ist meistens ein Längenproblem.

Es federt auch beim ersten Keyframe. Genau das verhindert die n == 0-Prüfung. Wenn du die Zeile herausgelöscht hast, setz sie zurück.

Die Vorschau kriecht. Prüf, ob time_max noch drin ist, und schalte den Bewegungsunschärfe-Schalter beim Justieren aus. Vor dem Rendern wieder an: Ein Bounce ohne Motion Blur sieht spürbar billig aus, und es ist das Einfachste der Welt, das zu vergessen.

Expression, Plugin oder manuelle Keyframes?

Manuelle Keyframes geben dir volle Kontrolle und kosten sehr viel Zeit. Lohnt sich für Schlüsselmomente, in denen das exakte Timing die Aufnahme trägt — nicht für das vierzigste UI-Element.

Plugins wie Bouncer oder Flow bringen ein Panel mit Reglern und sind angenehm zu bedienen. Sie bedeuten aber auch: Wer dein Projekt öffnet, braucht dasselbe Plugin installiert. Darüber lohnt es sich nachzudenken, bevor Dateien an Kunden oder Mitarbeiter gehen.

Die Expression reist mit dem Projekt, braucht keine Installation und besteht aus vier Zahlen zum Einstellen. Deshalb bin ich hier gelandet, nachdem ich eine Weile ein Plugin genutzt habe.

FAQ: Bounce Expressions in After Effects

Wie füge ich eine Expression in After Effects ein?

Alt-Klick (Option-Klick am Mac) auf das Stoppuhr-Symbol neben einer Eigenschaft in der Timeline. Dort öffnet sich ein Textfeld anstelle der Keyframe-Werte. Expression einfügen, dann außerhalb des Feldes klicken.

Warum passiert bei meiner Bounce Expression nichts?

Die Eigenschaft braucht mindestens zwei Keyframes. Die Expression liest die Geschwindigkeit in den letzten Keyframe hinein — ohne Keyframes gibt es keine Bewegung, auf die sie reagieren kann.

Wie mache ich den Bounce stärker oder schwächer?

Ändere amp. Höhere Werte schwingen weiter über. Alternativ: Schieb deine beiden Keyframes näher zusammen — das erhöht die eingehende Geschwindigkeit und verstärkt den Bounce, ohne den Code anzufassen.

Wie verhindere ich, dass es so lange nachfedert?

Erhöhe decay. Bei 3 klingt der Bounce zügig aus, bei 1 wackelt es lange nach. time_max setzt eine harte Grenze, aber decay formt, wie es ausklingt.

Funktioniert die Bounce Expression auch auf Skalierung und Rotation?

Ja, auf jeder animierten Zahlen-Eigenschaft. Bei Skalierung solltest du amp auf etwa 0.02 senken — Skalierung überzeichnet den Überschwinger, und der Standardwert wirkt dort schnell gummiartig.

Verlangsamen Expressions After Effects?

Sie werden in jedem Frame ausgewertet, viele davon in einer großen Komposition summieren sich also. Die time_max-Abschaltung in dieser Version hilft: Nach Ende des Bounce gibt sie einfach den normalen Wert zurück, statt für den Rest der Ebene einen abgeklungenen Sinus zu berechnen.

Expression oder Plugin — was ist besser?

Die Expression braucht keine Installation und reist mit der Projektdatei, was zählt, sobald jemand anders sie öffnet. Ein Plugin gibt dir Regler und einen schnelleren Workflow. Für ein Soloprojekt ist beides in Ordnung; für alles, was du weitergibst, ist die Expression sicherer.

Wenn die Animation steht

Sitzt der Bounce, geht die Arbeit an der Stelle weiter, über die niemand Tutorials macht: dem Kunden zeigen, Anmerkungen einsammeln und eine Freigabe bekommen, auf die man sich später berufen kann. Falls das bei dir gerade in E-Mail-Ketten und „bei 0:14 wirkt das Logo komisch"-Nachrichten passiert, ist das genau das Problem, für das es Exportlab gibt — frame-genaue Kommentare direkt am Schnitt.

Ähnliche Artikel

Erfahre als Erstes Neuigkeiten von Exportlab.