Animations: rows grouped by object, value field in the row (#408)

- Development: 2007 checks.
admin committed 2026-10-11 17:42:18 +02:00
1 parent 011c64dea8
commit 0fbe23143e
2 files changed
+14 -4

No files matched your search

+13 -3
@@ -102,8 +102,17 @@ pointer, *Fit* frames the content again. It is built from a copy of the root wit
value at the playhead written over it, so the document stays untouched and undo never hears of
scrubbing; past the end of a *Once (reset)* pass it shows the starting values, as the player
would. Under the preview lies the **timeline**: a row per target and property, a frame ruler on
top. **Double-click** a cell to set a key with the value that holds there (then edit the value in
the inspector while the key is selected); click a key to pick it, drag a band to pick several,
top. The rows are **grouped by object** (#408): each object has a head line with its name,
indented by its depth, and the groups stand in the order of the hierarchy, the root first. Under
its head an object's rows follow the order the object lists its properties in (X, Y, Z, then the
inspector's order), so they sort themselves however they were added. Rows whose object is gone
come last. Only the view is sorted, the animation keeps its rows as they are.
Each row shows its **value at the playhead** on the right of its header, in the field the
inspector uses for that kind (a number, a tick, a colour, a picture …). Before the row has keys
it shows what the object holds, a relative row shows its offset. **Editing that field sets a key
at the playhead** (or changes the one there) and picks it; while playing, it pauses first.
**Double-click** a cell to set a key with the value that holds there (then edit the value in
the row or in the inspector while the key is selected); click a key to pick it, drag a band to pick several,
drag keys to move them (one landing on another replaces it), `Delete` removes the picked keys —
or the whole row when its header is picked. `Ctrl`+drag duplicates keys: the originals stay, the
copies land where the pointer lets go. `Ctrl+C` copies the picked keys and `Ctrl+V` pastes them
@@ -117,7 +126,8 @@ the removed frames and pulls the rest earlier. Each is one undo step. The same m
*Delete row* for the row under the pointer; right-clicking a row's header also picks that row. On a
*Video time* row it also offers to key the video at 1x to its end (see [Videos](Videos)). Click or drag the ruler to scrub. The wheel zooms the
frames about the pointer, from 48 pixels a frame out to 50 frames a pixel, so an hour at 30 fps
fits a screen (#407). `Shift`+wheel scrolls, the middle button (or `Shift`+drag) pans. Rows are not collapsed or reordered.
fits a screen (#407). `Shift`+wheel scrolls, the middle button (or `Shift`+drag) pans. Groups cannot be collapsed yet.
Scrubbing while the animation plays pauses it, and the button turns back to *Play*.
**Play, stop, pause.** `Play animation` starts an animation on an object (both are ports: the
object as any action takes it, the animation from an *Animation* literal, a list item tagged
+1 -1
@@ -21,7 +21,7 @@ php tests/php/releases.test.php # the release stor
php tests/php/files.test.php # uploaded files in a folder per account (#344), the same way
php tests/php/videos.test.php # the video store, its queue and the worker (#402), with the
# real ffmpeg: the CI image and game-maker-video have it
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2004 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2007 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result