Animation: Timeline-Editor (Teil b) #98

Closed
opened 2026-09-16 20:14:01 +02:00 by meleki · 1 comment
Owner

Aus #97, Teil (b) von drei. Baut auf Teil (a) auf (Modell, Laufzeit, Nodes, 193378e).

Was heute ist: Der Animation-Tab ist ein Platzhalter („Animates X – the timeline editor is being built“). Modell und Kommandos sind da: setAnimationRoot, addAnimationRow/removeAnimationRow/retargetAnimationRow, setRowRelative, setKey/moveKeys/deleteKeys.

Zu bauen (Entscheidungen 18–23 in #97):

  • Kopfzeile: Wurzel-Asset-Picker, fps, playback, Play/Pause, horizontaler Zoom.
  • Add-Dialog: Asset (= Wurzel) → optional Objekt darin (Selector wie beim Parent-Picker, über den ganzen Baum) → Property der Auswahl. Ziel + Property nur einmal je Animation; Dialog auch zum Umhängen einer Zeile (nur gleiche Art).
  • Zeilen: jede Zeile eine Zeile, kein Gruppieren, kein Einklappen. Zeilenkopf mit Ziel, Property, Schalter „relativ“, Entfernen. Fehlendes Ziel als „missing“ sichtbar.
  • Zellen: Doppelklick setzt einen Key mit dem dort geltenden Wert. Keys auswählen (Klick, Gummiband), per Drag verschieben (Landen auf einem Key ersetzt ihn), Entf löscht, alles mit Undo.
  • Playhead zum Scrubben; ausgewählter Key zeigt seinen Wert im Inspector, dort änderbar.
  • Actor-Demo (tools/seed-actor.mjs, tools/smoke-actor.mjs) auf Play animation umstellen.

Nicht in v1: Kopieren/Einfügen, Loop-Bereich, Kurvenansicht, Aufnahme-Modus, Umsortieren per Drag.

Tests: Gate + Unit-Tests für die Editor-Geometrie (Zelle ↔ Frame, Gummiband), e2e-Modul 25 wieder auf einen echten Ablauf bringen.

Aus #97, Teil (b) von drei. Baut auf Teil (a) auf (Modell, Laufzeit, Nodes, `193378e`). **Was heute ist:** Der Animation-Tab ist ein Platzhalter („Animates X – the timeline editor is being built“). Modell und Kommandos sind da: `setAnimationRoot`, `addAnimationRow`/`removeAnimationRow`/`retargetAnimationRow`, `setRowRelative`, `setKey`/`moveKeys`/`deleteKeys`. **Zu bauen (Entscheidungen 18–23 in #97):** - Kopfzeile: Wurzel-Asset-Picker, `fps`, `playback`, Play/Pause, horizontaler Zoom. - **Add-Dialog:** Asset (= Wurzel) → optional Objekt darin (Selector wie beim Parent-Picker, über den ganzen Baum) → Property der Auswahl. Ziel + Property nur einmal je Animation; Dialog auch zum Umhängen einer Zeile (nur gleiche Art). - Zeilen: **jede Zeile eine Zeile**, kein Gruppieren, kein Einklappen. Zeilenkopf mit Ziel, Property, Schalter „relativ“, Entfernen. Fehlendes Ziel als „missing“ sichtbar. - Zellen: **Doppelklick** setzt einen Key mit dem dort geltenden Wert. Keys auswählen (Klick, Gummiband), per Drag verschieben (Landen auf einem Key ersetzt ihn), Entf löscht, alles mit Undo. - Playhead zum Scrubben; ausgewählter Key zeigt seinen Wert im Inspector, dort änderbar. - Actor-Demo (`tools/seed-actor.mjs`, `tools/smoke-actor.mjs`) auf `Play animation` umstellen. **Nicht in v1:** Kopieren/Einfügen, Loop-Bereich, Kurvenansicht, Aufnahme-Modus, Umsortieren per Drag. **Tests:** Gate + Unit-Tests für die Editor-Geometrie (Zelle ↔ Frame, Gummiband), e2e-Modul 25 wieder auf einen echten Ablauf bringen.
admin added this to the Development project 2026-09-16 21:24:29 +02:00
Author
Owner

Gebaut in 5af0a1c: Kopfzeile mit Wurzel-Picker, + Row, Play/Pause; Add-Dialog Asset → Objekt darin → Property, auch zum Umhängen (nur gleiche Art); jede Zeile eine Zeile mit Ziel, Property, „relativ“, Entfernen, „missing“ bei fehlendem Ziel; Doppelklick setzt einen Key mit dem geltenden Wert; Keys per Klick/Gummiband auswählen, ziehen (Landen ersetzt), Entf löscht, alles mit Undo; Lineal scrubbt, Mausrad zoomt, Shift+Mausrad scrollt; Inspector-Abschnitt für Zeile und Key. Unit-Tests für Geometrie und Zeilen-Selektion. Actor-Demo umgestellt (4ed2edd).

Offen aus der Testzeile: Modul 25 ist noch ein Rumpf, das ist #110.

CI auf 35c8788: Task 68 gate → CHECK EXIT 0 (92 Files, 1180 Tests), Task 69 suite → ALL PASSED – 928 checks, Smokes 24 / 19 / 21. Die erste Suite auf 89c46c3 (Task 67) war rot an genau einem Check: e2e 21d zählt die Arten der Kind-Tabelle auf und kannte animation noch nicht, nachgezogen in 35c8788. Die Check-Summe fällt von 960 auf 928, weil Modul 25 bis #110 ein Rumpf mit 5 Checks ist.

Folge-Issues: #101 Easing, #102 Kopieren/Einfügen/Frames, #103 Record, #104 Behavior-Variablen/Shader-Parameter, #105 Laufzeit-Steuerung, #106 Crossfade, #107 Timeline-Komfort, #108 Kurvenansicht (held-back), #109 Zielreichweite, #110 e2e-Schritt für Timeline und Vorschau.

Gebaut in `5af0a1c`: Kopfzeile mit Wurzel-Picker, `+ Row`, Play/Pause; Add-Dialog Asset → Objekt darin → Property, auch zum Umhängen (nur gleiche Art); jede Zeile eine Zeile mit Ziel, Property, „relativ“, Entfernen, „missing“ bei fehlendem Ziel; Doppelklick setzt einen Key mit dem geltenden Wert; Keys per Klick/Gummiband auswählen, ziehen (Landen ersetzt), Entf löscht, alles mit Undo; Lineal scrubbt, Mausrad zoomt, Shift+Mausrad scrollt; Inspector-Abschnitt für Zeile und Key. Unit-Tests für Geometrie und Zeilen-Selektion. Actor-Demo umgestellt (`4ed2edd`). Offen aus der Testzeile: Modul 25 ist noch ein Rumpf, das ist #110. **CI auf `35c8788`:** Task 68 `gate` → `CHECK EXIT 0` (92 Files, 1180 Tests), Task 69 `suite` → `ALL PASSED – 928 checks`, Smokes 24 / 19 / 21. Die erste Suite auf `89c46c3` (Task 67) war rot an genau einem Check: e2e 21d zählt die Arten der Kind-Tabelle auf und kannte `animation` noch nicht, nachgezogen in `35c8788`. Die Check-Summe fällt von 960 auf 928, weil Modul 25 bis #110 ein Rumpf mit 5 Checks ist. **Folge-Issues:** #101 Easing, #102 Kopieren/Einfügen/Frames, #103 Record, #104 Behavior-Variablen/Shader-Parameter, #105 Laufzeit-Steuerung, #106 Crossfade, #107 Timeline-Komfort, #108 Kurvenansicht (held-back), #109 Zielreichweite, #110 e2e-Schritt für Timeline und Vorschau.
admin moved this to Done in Development on 2026-09-17 06:33:16 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#98