Animations: copy/paste keys, Ctrl+drag duplicates, insert and remove frames (#102)
1 parent
94e46524f4
commit
f0554dd293
3 files changed
+14
-4
No files matched your search
+9
-1
@@ -61,7 +61,15 @@ would. Under the preview lies the **timeline**: a row per target and property, a
|
|||||||
top. **Double-click** a cell to set a key with the value that holds there (then edit the value in
|
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,
|
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 —
|
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. Click or drag the ruler to scrub. The wheel zooms the
|
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
|
||||||
|
with the earliest one on the playhead's frame, keeping their distances: into the rows they came
|
||||||
|
from, or — for keys of a single row — into the row picked now, if it is of the same kind. In
|
||||||
|
another animation each row finds the row animating the same property; rows without one are left
|
||||||
|
out. A pasted key replaces one on its frame. **Right-click** the timeline for *Copy*, *Paste*,
|
||||||
|
*Insert frames…* and *Remove frames…*: both ask for a count and work at the playhead over every
|
||||||
|
row — inserting moves every key from the playhead's frame on later, removing drops the keys in
|
||||||
|
the removed frames and pulls the rest earlier. Each is one undo step. Click or drag the ruler to scrub. The wheel zooms the
|
||||||
frames about the pointer, `Shift`+wheel scrolls, the middle button (or `Shift`+drag) pans. Rows are not collapsed or reordered.
|
frames about the pointer, `Shift`+wheel scrolls, the middle button (or `Shift`+drag) pans. Rows are not collapsed or reordered.
|
||||||
|
|
||||||
**Play, stop, pause.** `Play animation` starts an animation on an object (both are ports: the
|
**Play, stop, pause.** `Play animation` starts an animation on an object (both are ports: the
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ npm run check # typecheck + lint + format:check + tests, the gate CI runs
|
|||||||
# code is lost (tail's is reported), so a red run reads as green
|
# code is lost (tail's is reported), so a red run reads as green
|
||||||
npm run build # writes dist/ and regenerates index.html
|
npm run build # writes dist/ and regenerates index.html
|
||||||
./build.sh # the same under `set -o pipefail`, for callers that pipe the output
|
./build.sh # the same under `set -o pipefail`, for callers that pipe the output
|
||||||
node tools/seed-e2e.mjs && node tools/e2e.mjs # 943 editor checks, screenshots in /tmp/gm-e2e-*.png
|
node tools/seed-e2e.mjs && node tools/e2e.mjs # 948 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
|
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 start [GM_STEPS] # the same run detached, see below
|
||||||
./e2e.sh status # live progress, or the last run's result
|
./e2e.sh status # live progress, or the last run's result
|
||||||
@@ -232,4 +232,4 @@ widths to find click points. The **render device is not in this repo** — `/dev
|
|||||||
and a 1 GB `/dev/shm` come from `container.options` in the runner's own `config.yaml`, which
|
and a 1 GB `/dev/shm` come from `container.options` in the runner's own `config.yaml`, which
|
||||||
applies to every job on that runner. Without them chromium falls back to llvmpipe, which gets
|
applies to every job on that runner. Without them chromium falls back to llvmpipe, which gets
|
||||||
WebGL 1.0 only. Measured in the job container: `ANGLE (Intel, Vulkan 1.3.230, HD Graphics 630)`,
|
WebGL 1.0 only. Measured in the job container: `ANGLE (Intel, Vulkan 1.3.230, HD Graphics 630)`,
|
||||||
WebGL 2.0, and the same 943 checks as here.
|
WebGL 2.0, and the same 948 checks as here.
|
||||||
+3
-1
@@ -2,7 +2,9 @@
|
|||||||
`Backspace` remove the selection (objects, nodes, frames, keys or a row of the Animation tab, a graph group or comment — the box only, its nodes stay, and a band that caught boxes and nodes together removes both in one step; an asset asks first) · `Ctrl+G` create
|
`Backspace` remove the selection (objects, nodes, frames, keys or a row of the Animation tab, a graph group or comment — the box only, its nodes stay, and a band that caught boxes and nodes together removes both in one step; an asset asks first) · `Ctrl+G` create
|
||||||
container from the selection · `Ctrl+Enter` play, and pause/resume while playing · `Esc` stop ·
|
container from the selection · `Ctrl+Enter` play, and pause/resume while playing · `Esc` stop ·
|
||||||
`Ctrl+V` import an image from
|
`Ctrl+V` import an image from
|
||||||
the clipboard as a texture (ignored while a text field has focus) · `Tab` / `Shift+Tab` cycle fields · lists: `↑`/`↓` move,
|
the clipboard as a texture (ignored while a text field has focus) · Animation tab: `Ctrl+C` copy
|
||||||
|
the picked keys, `Ctrl+V` paste them at the playhead (while keys are copied this takes `Ctrl+V`
|
||||||
|
there, so an image is pasted from another tab), `Ctrl`+drag duplicate keys · `Tab` / `Shift+Tab` cycle fields · lists: `↑`/`↓` move,
|
||||||
`←`/`→` fold, `Enter` activates · number
|
`←`/`→` fold, `Enter` activates · number
|
||||||
fields: drag to scrub (`Shift` x10, `Alt` x0.1, snapping to the grid of that increment, so a
|
fields: drag to scrub (`Shift` x10, `Alt` x0.1, snapping to the grid of that increment, so a
|
||||||
step-1 field lands on whole numbers), `↑`/`↓` step, shown with three decimals (`ui/math.ts`,
|
step-1 field lands on whole numbers), `↑`/`↓` step, shown with three decimals (`ui/math.ts`,
|
||||||
|
|||||||
Reference in new issue
Block a user