Animation: Behavior-Variablen und Shader-Parameter als Zeilenziele #104

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

Aus #97, Entscheidung 6: v1 animiert nur Schema-Properties (Transform, color, texture, enabled, Textgröße, Kamera …).

Zu bauen:

  • Behavior-Variablen des Zielobjekts als Property wählbar (Dialog listet sie unter dem Behavior-Namen). Der Wert wird zur Laufzeit in die Variable geschrieben, vor dem BehaviorSystem, damit das Behavior wie bei allen anderen Zeilen als letztes schreibt (Entscheidung 16).
  • Shader-Parameter (Uniforms eines Shaders am Sprite) als Ziel: Zahl, Farbe, Vektor. Vorschau im Tab muss das mitzeichnen.
  • Ziel-Art muss beim Umhängen gleich bleiben (Regel aus Entscheidung 22 gilt weiter).

Offen: Was passiert mit der Zeile, wenn das Behavior vom Objekt entfernt oder die Variable umbenannt wird? Vorschlag: wie ein gelöschtes Ziel, Zeile bleibt als „missing“.

Aus #97, Entscheidung 6: v1 animiert nur Schema-Properties (Transform, color, texture, enabled, Textgröße, Kamera …). **Zu bauen:** - **Behavior-Variablen** des Zielobjekts als Property wählbar (Dialog listet sie unter dem Behavior-Namen). Der Wert wird zur Laufzeit in die Variable geschrieben, vor dem `BehaviorSystem`, damit das Behavior wie bei allen anderen Zeilen als letztes schreibt (Entscheidung 16). - **Shader-Parameter** (Uniforms eines Shaders am Sprite) als Ziel: Zahl, Farbe, Vektor. Vorschau im Tab muss das mitzeichnen. - Ziel-Art muss beim Umhängen gleich bleiben (Regel aus Entscheidung 22 gilt weiter). **Offen:** Was passiert mit der Zeile, wenn das Behavior vom Objekt entfernt oder die Variable umbenannt wird? Vorschlag: wie ein gelöschtes Ziel, Zeile bleibt als „missing“.
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:46:59 +02:00
Author
Owner

Umgesetzt in beeea35, Wiki 245e049 (Animations.md).

Was jetzt geht

  • Behavior-Variablen als Zeilenziel: Das Behavior steht im Dialog unter seinem Owner, angeboten werden seine Variablen neben Enabled. Geschrieben wird vor dem BehaviorSystem: ein Graph liest den neuen Wert im selben Frame, ein Behavior, das dieselbe Variable setzt, schreibt trotzdem zuletzt.
  • Shader-Parameter als Zeilenziel: angeboten werden die Parameter des Shaders, den das Objekt trägt, auch wenn nur das platzierte Objekt ihn per Override trägt. Werte werden auf min/max des Parameters begrenzt. Laufzeit und Vorschau zeigen dieselben Werte.
  • Offene Frage (wie im Issue vorgeschlagen): Behavior entfernt, Variable umbenannt oder Shader ohne diesen Parameter → Zeile steht auf (missing), Keys bleiben, beim Abspielen übersprungen. Umhängen nur auf dieselbe Art.

Abweichungen

  • „Farbe, Vektor" bei Shader-Parametern gibt es nicht: der ShaderProperty-Node legt nur Zahlen an, alle Uniforms sind float.
  • Behaviors bieten keine X/Y-Zeilen mehr an (nichts Sichtbares). Dabei aufgefallen und behoben: eine Behavior-Variable namens x wurde in Laufzeit und Vorschau auf die Position geschrieben. Die Regel steht jetzt an einer Stelle (isPositionRow).

Umbau: Welche Properties eine Zeile anbietet, hängt jetzt von Asset und Properties ab. Alles läuft über targetDefs()/trackDef() in src/core/model/animation.ts (Dialog, Timeline, Inspector, Commands, Usages, Vorschau, Laufzeit).

Tests (lokal)

npm run check                        → 92 Files, 1202 Tests (vorher 1197), CHECK EXIT 0
npm run build                        → ok
GM_STEPS=24,25,26 (frisch geseedet)  → ALL PASSED – 101 checks

5 neue Unit-Tests; Gegenprobe mit drei eingebauten Fehlern (5 / 1 / 3 Tests rot), danach zurückgespielt. Keine neuen e2e-Checks, Summe bleibt 943. CI auf beeea35 war beim Schließen noch nicht gelesen.

Umgesetzt in `beeea35`, Wiki `245e049` (`Animations.md`). **Was jetzt geht** - **Behavior-Variablen als Zeilenziel:** Das Behavior steht im Dialog unter seinem Owner, angeboten werden seine Variablen neben `Enabled`. Geschrieben wird vor dem `BehaviorSystem`: ein Graph liest den neuen Wert im selben Frame, ein Behavior, das dieselbe Variable setzt, schreibt trotzdem zuletzt. - **Shader-Parameter als Zeilenziel:** angeboten werden die Parameter des Shaders, den das Objekt trägt, auch wenn nur das platzierte Objekt ihn per Override trägt. Werte werden auf min/max des Parameters begrenzt. Laufzeit und Vorschau zeigen dieselben Werte. - **Offene Frage (wie im Issue vorgeschlagen):** Behavior entfernt, Variable umbenannt oder Shader ohne diesen Parameter → Zeile steht auf *(missing)*, Keys bleiben, beim Abspielen übersprungen. Umhängen nur auf dieselbe Art. **Abweichungen** - „Farbe, Vektor" bei Shader-Parametern gibt es nicht: der `ShaderProperty`-Node legt nur Zahlen an, alle Uniforms sind `float`. - Behaviors bieten keine `X`/`Y`-Zeilen mehr an (nichts Sichtbares). Dabei aufgefallen und behoben: eine Behavior-Variable namens `x` wurde in Laufzeit und Vorschau auf die Position geschrieben. Die Regel steht jetzt an einer Stelle (`isPositionRow`). **Umbau:** Welche Properties eine Zeile anbietet, hängt jetzt von Asset *und* Properties ab. Alles läuft über `targetDefs()`/`trackDef()` in `src/core/model/animation.ts` (Dialog, Timeline, Inspector, Commands, Usages, Vorschau, Laufzeit). **Tests (lokal)** ``` npm run check → 92 Files, 1202 Tests (vorher 1197), CHECK EXIT 0 npm run build → ok GM_STEPS=24,25,26 (frisch geseedet) → ALL PASSED – 101 checks ``` 5 neue Unit-Tests; Gegenprobe mit drei eingebauten Fehlern (5 / 1 / 3 Tests rot), danach zurückgespielt. Keine neuen e2e-Checks, Summe bleibt 943. CI auf `beeea35` war beim Schließen noch nicht gelesen.
admin moved this to Done in Development on 2026-09-17 11:11:14 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#104