Ein Video, das per Video clock: Driven der Animation folgt (#404), soll sich leicht in 1× abspielen lassen. Heute muss man dafür die Länge des Clips kennen und den End-Key selbst ausrechnen: Video 57,27 s, Animation 10 fps → Key auf Frame 572, Wert 57,2. Die letzten 0,07 s fallen dabei weg, das ist in Ordnung.
Dazu muss man bei langen Videos in der Timeline weit nach rechts scrollen, weil der Zoom bei 4 px pro Frame endet.
Plan
1× bis zum Ende des Clips
Neuer Eintrag im Rechtsklick-Menü der Timeline: „Video at 1× to its end from frame N“. Er gilt für die Zeile Video time unter dem Mauszeiger (sonst die gewählte Zeile).
Start = Playhead mit dem Wert, den die Zeile dort hat (leere Zeile: 0). Ende = der letzte ganze Frame vor dem Clip-Ende, Wert = Start + Frames / fps.
Der Start-Key wird linear, Keys dazwischen auf derselben Zeile fallen weg. Alles ist ein Undo-Schritt.
Welcher Clip: die Textur, die das Ziel am Playhead trägt (auch wenn texture in derselben Animation gekeyt ist).
Ausgegraut, wenn die Zeile relativ ist, das Ziel kein Video trägt, die Länge noch unbekannt ist oder der Start schon am Ende steht.
Ein Hinweis nennt danach Frame, Wert und die Länge des Clips.
Weiter herauszoomen
Untere Grenze der Zellbreite von 4 px auf 0,02 px pro Frame (1 h bei 30 fps ≈ 2160 px).
Die Frame-Zahlen am Lineal gehen in 1-2-5-Schritten beliebig weit (bisher Ende bei 1000).
e2e 66: Rechtsklick → Menüpunkt → Keys stimmen mit der Länge des Testvideos.
## Wunsch
Ein Video, das per `Video clock: Driven` der Animation folgt (#404), soll sich leicht in 1× abspielen lassen. Heute muss man dafür die Länge des Clips kennen und den End-Key selbst ausrechnen: Video 57,27 s, Animation 10 fps → Key auf Frame 572, Wert 57,2. Die letzten 0,07 s fallen dabei weg, das ist in Ordnung.
Dazu muss man bei langen Videos in der Timeline weit nach rechts scrollen, weil der Zoom bei 4 px pro Frame endet.
## Plan
### 1× bis zum Ende des Clips
- Neuer Eintrag im Rechtsklick-Menü der Timeline: **„Video at 1× to its end from frame N“**. Er gilt für die Zeile `Video time` unter dem Mauszeiger (sonst die gewählte Zeile).
- Start = Playhead mit dem Wert, den die Zeile dort hat (leere Zeile: 0). Ende = der letzte ganze Frame vor dem Clip-Ende, Wert = Start + Frames / fps.
- Der Start-Key wird linear, Keys dazwischen auf derselben Zeile fallen weg. Alles ist ein Undo-Schritt.
- Welcher Clip: die Textur, die das Ziel am Playhead trägt (auch wenn `texture` in derselben Animation gekeyt ist).
- Ausgegraut, wenn die Zeile relativ ist, das Ziel kein Video trägt, die Länge noch unbekannt ist oder der Start schon am Ende steht.
- Ein Hinweis nennt danach Frame, Wert und die Länge des Clips.
### Weiter herauszoomen
- Untere Grenze der Zellbreite von 4 px auf 0,02 px pro Frame (1 h bei 30 fps ≈ 2160 px).
- Die Frame-Zahlen am Lineal gehen in 1-2-5-Schritten beliebig weit (bisher Ende bei 1000).
## Tests
- Unit: Ende-Rechnung (Beispiel oben), Zoom-Grenze, Lineal-Schritte, Kommando (Keys dazwischen weg, Undo).
- e2e 66: Rechtsklick → Menüpunkt → Keys stimmen mit der Länge des Testvideos.
admin
added this to the Development project 2026-10-11 14:29:42 +02:00
admin
moved this to Next in Development on 2026-10-11 14:29:43 +02:00
admin
moved this to Done in Development on 2026-10-11 15:36:23 +02:00
Umgesetzt in 7742072, Wiki in b14b657 (Videos → „Following an animation“, Animations → Zoom).
So geht's
Playhead auf den Frame, an dem das Video starten soll.
Rechtsklick in die Zeile Video time → „Video at 1× to its end from frame N“.
Der Editor setzt einen Start-Key am Playhead (Wert der Zeile dort, leere Zeile 0) und einen End-Key auf den letzten ganzen Frame vor dem Clip-Ende. Beispiel aus dem Wunsch: 57,27 s, 10 fps, ab Frame 0 → Frame 572 mit 57,2 s.
Was gebaut ist
Kommando in animationCommands.ts: Start-Key linear, Keys dazwischen auf derselben Zeile fallen weg, ein Undo-Schritt.
Welcher Clip: der, den das Sprite am Playhead trägt, auch wenn Texture in derselben Animation gekeyt ist.
Ausgegraut bei relativer Zeile, ohne Video, bei noch unbekannter Länge oder wenn der Playhead schon am Ende steht.
Hinweis danach, z. B. „frame 572 shows 57.2 s of 57.27 s“.
Zoom bis 50 Frames pro Pixel (bisher Schluss bei 4 px pro Frame). 1 h bei 30 fps passt auf rund 2200 px. Das Lineal zählt in 1-2-5-Schritten beliebig weit.
66l klickt das echte Menü: ab Frame 5 mit 0,5 s endet das 2-s-Testvideo auf Frame 20 mit 2 s, der Key auf Frame 9 ist weg, Undo stellt den alten Stand her.
Gegenprobe: Lässt das Kommando die Keys dazwischen stehen, wird genau der Kommando-Test rot.
CI zu dd60a79 (der Push mit 7742072): Gate grün, im suite-Job ist nur 66k rot (Tempo-Messung, nicht dieser Menüpunkt). 66l war grün.
Nicht dabei
Ein Fit-Knopf für die Timeline. Vom Standard bis ganz raus sind es rund 44 Mausrad-Raster.
Umgesetzt in 7742072, Wiki in b14b657 (*Videos* → „Following an animation“, *Animations* → Zoom).
## So geht's
1. Playhead auf den Frame, an dem das Video starten soll.
2. **Rechtsklick in die Zeile `Video time`** → **„Video at 1× to its end from frame N“**.
3. Der Editor setzt einen Start-Key am Playhead (Wert der Zeile dort, leere Zeile 0) und einen End-Key auf den letzten ganzen Frame vor dem Clip-Ende. Beispiel aus dem Wunsch: 57,27 s, 10 fps, ab Frame 0 → **Frame 572 mit 57,2 s**.
## Was gebaut ist
- **Kommando** in `animationCommands.ts`: Start-Key linear, Keys dazwischen auf derselben Zeile fallen weg, ein Undo-Schritt.
- **Welcher Clip:** der, den das Sprite am Playhead trägt, auch wenn `Texture` in derselben Animation gekeyt ist.
- **Ausgegraut** bei relativer Zeile, ohne Video, bei noch unbekannter Länge oder wenn der Playhead schon am Ende steht.
- **Hinweis danach**, z. B. „frame 572 shows 57.2 s of 57.27 s“.
- **Zoom** bis 50 Frames pro Pixel (bisher Schluss bei 4 px pro Frame). 1 h bei 30 fps passt auf rund 2200 px. Das Lineal zählt in 1-2-5-Schritten beliebig weit.
## Tests
```
tsc, eslint, Prettier → sauber
Unit video-clock + timeline-view → 27 Tests grün (8 neu)
e2e 66 (melektaus-atx) → ALL PASSED, 23 Checks (66l neu)
Gate (melektaus-atx) → CHECK EXIT 0, 297 Dateien, 4553 Tests
```
- **66l** klickt das echte Menü: ab Frame 5 mit 0,5 s endet das 2-s-Testvideo auf Frame 20 mit 2 s, der Key auf Frame 9 ist weg, Undo stellt den alten Stand her.
- **Gegenprobe:** Lässt das Kommando die Keys dazwischen stehen, wird genau der Kommando-Test rot.
- **CI** zu dd60a79 (der Push mit 7742072): Gate grün, im `suite`-Job ist nur 66k rot (Tempo-Messung, nicht dieser Menüpunkt). 66l war grün.
## Nicht dabei
- Ein **Fit**-Knopf für die Timeline. Vom Standard bis ganz raus sind es rund 44 Mausrad-Raster.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Wunsch
Ein Video, das per
Video clock: Drivender Animation folgt (#404), soll sich leicht in 1× abspielen lassen. Heute muss man dafür die Länge des Clips kennen und den End-Key selbst ausrechnen: Video 57,27 s, Animation 10 fps → Key auf Frame 572, Wert 57,2. Die letzten 0,07 s fallen dabei weg, das ist in Ordnung.Dazu muss man bei langen Videos in der Timeline weit nach rechts scrollen, weil der Zoom bei 4 px pro Frame endet.
Plan
1× bis zum Ende des Clips
Video timeunter dem Mauszeiger (sonst die gewählte Zeile).texturein derselben Animation gekeyt ist).Weiter herauszoomen
Tests
Umgesetzt in
7742072, Wiki in b14b657 (Videos → „Following an animation“, Animations → Zoom).So geht's
Video time→ „Video at 1× to its end from frame N“.Was gebaut ist
animationCommands.ts: Start-Key linear, Keys dazwischen auf derselben Zeile fallen weg, ein Undo-Schritt.Texturein derselben Animation gekeyt ist.Tests
dd60a79(der Push mit7742072): Gate grün, imsuite-Job ist nur 66k rot (Tempo-Messung, nicht dieser Menüpunkt). 66l war grün.Nicht dabei