diff --git a/Animations.md b/Animations.md index 483b5c1..c416f75 100644 --- a/Animations.md +++ b/Animations.md @@ -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 diff --git a/Development.md b/Development.md index 5ea27e3..d41b7d5 100644 --- a/Development.md +++ b/Development.md @@ -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