Animation: Easing pro Key (Interpolation) #101

Closed
opened 2026-09-16 21:23:30 +02:00 by meleki · 1 comment
Owner

Aus #97, Entscheidung 25: das Format sieht interpolation?: KeyInterpolation am Key schon vor, ausgewertet wird heute nur linear.

Zu bauen:

  • Arten: linear (Standard, fehlendes Feld), step (hält bis zum nächsten Key, wie heute bei Boolean/Text/Texture), ease-in, ease-out, ease-in-out. Das Easing eines Keys gilt für die Strecke von ihm zum nächsten Key.
  • Inspector-Abschnitt „Key“: Dropdown für die Art, bei Mehrfachauswahl für alle markierten Keys, mit Undo.
  • Auswertung an einer Stelle (trackWriteAt), damit Player und Vorschau im Tab dasselbe zeigen.
  • Sichtbar auf der Timeline: Key mit Easing anders gezeichnet als linear (z. B. Rand/Symbol).

Tests: Unit-Tests je Art an der Auswertung (Mitte der Strecke ergibt bei ease-in/out die erwartete Abweichung von 0.5), Speichern/Undo, Vorschau = Player.

Aus #97, Entscheidung 25: das Format sieht `interpolation?: KeyInterpolation` am Key schon vor, ausgewertet wird heute nur linear. **Zu bauen:** - Arten: `linear` (Standard, fehlendes Feld), `step` (hält bis zum nächsten Key, wie heute bei Boolean/Text/Texture), `ease-in`, `ease-out`, `ease-in-out`. Das Easing eines Keys gilt für die Strecke **von ihm zum nächsten** Key. - Inspector-Abschnitt „Key“: Dropdown für die Art, bei Mehrfachauswahl für alle markierten Keys, mit Undo. - Auswertung an **einer** Stelle (`trackWriteAt`), damit Player und Vorschau im Tab dasselbe zeigen. - Sichtbar auf der Timeline: Key mit Easing anders gezeichnet als linear (z. B. Rand/Symbol). **Tests:** Unit-Tests je Art an der Auswertung (Mitte der Strecke ergibt bei ease-in/out die erwartete Abweichung von 0.5), Speichern/Undo, Vorschau = Player.
admin added this to the Development project 2026-09-16 21:24:29 +02:00
admin moved this to Next in Development on 2026-09-17 06:47:03 +02:00
Author
Owner

Umgesetzt in b278605, Wiki cd5d761.

Inhalt

  • Easing pro Key für die Strecke bis zum nächsten Key: Linear (Standard, wird nicht gespeichert), Step, Ease in, Ease out, Ease in-out (quadratisch).
  • Ausgewertet nur in trackValueAt – Player und Vorschau zeigen dieselbe Kurve. Step hält auf dem Ping-pong-Rückweg den oberen Key (wie seit #112).
  • Inspector: Dropdown Easing beim einzelnen Key und bei Mehrfachauswahl (SetKeyInterpolationCommand, mit Undo). Keys auf nicht überblendbaren Zeilen werden übersprungen.
  • Timeline: Die Key-Form zeigt das Easing (Raute linear, Kreis in-out, rechts rund ease-in, links rund ease-out, Quadrat step).
  • Fix nebenbei: SetAnimationKeyCommand hat beim Wertwechsel das Easing verworfen, jetzt bleibt es erhalten.

Tests (lokal)

  • npm run check → 92 Files, 1197 Tests (vorher 1191), CHECK EXIT 0
  • GM_STEPS=24,25,26 → ALL PASSED – 101 checks
  • Gegenprobe mit drei eingebauten Fehlern (kein Easing / keine Step-Regel / Wertwechsel verliert Easing) → jeweils rot.
  • Keine neuen e2e-Checks, Summe bleibt 943.

CI auf b278605 wurde für den Abschluss nicht abgewartet.

Umgesetzt in `b278605`, Wiki `cd5d761`. **Inhalt** - Easing pro Key für die Strecke bis zum nächsten Key: `Linear` (Standard, wird nicht gespeichert), `Step`, `Ease in`, `Ease out`, `Ease in-out` (quadratisch). - Ausgewertet nur in `trackValueAt` – Player und Vorschau zeigen dieselbe Kurve. `Step` hält auf dem Ping-pong-Rückweg den oberen Key (wie seit #112). - Inspector: Dropdown `Easing` beim einzelnen Key und bei Mehrfachauswahl (`SetKeyInterpolationCommand`, mit Undo). Keys auf nicht überblendbaren Zeilen werden übersprungen. - Timeline: Die Key-Form zeigt das Easing (Raute linear, Kreis in-out, rechts rund ease-in, links rund ease-out, Quadrat step). - Fix nebenbei: `SetAnimationKeyCommand` hat beim Wertwechsel das Easing verworfen, jetzt bleibt es erhalten. **Tests (lokal)** - `npm run check` → 92 Files, 1197 Tests (vorher 1191), `CHECK EXIT 0` - `GM_STEPS=24,25,26` → `ALL PASSED – 101 checks` - Gegenprobe mit drei eingebauten Fehlern (kein Easing / keine Step-Regel / Wertwechsel verliert Easing) → jeweils rot. - Keine neuen e2e-Checks, Summe bleibt 943. CI auf `b278605` wurde für den Abschluss nicht abgewartet.
admin moved this to Done in Development on 2026-09-17 07:32:56 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#101