Compositions: clips move with their item

- A clip belongs to the item at its start frame on its track.
- Dragging and Start in the inspector take the clips along, Alt during
  the drag moves the item alone.
- Copying and deleting an item take its clips along.
- Development: 2060 editor checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-10-13 08:03:37 +02:00
1 parent 5ff3ef33e0
commit 059b83c137
2 files changed
+14 -4

No files matched your search

+13 -3
@@ -55,6 +55,10 @@ read by the tab, the scene view and the running game alike:
else by the names. A clip is one pass of its animation, whatever the animation's play mode says.
After its end it holds its last value until the item ends.
- **Clips on one track do not overlap.** A clip dragged towards another stops at it.
- **A clip belongs to the item it begins on**: the item lying on its track at its first frame, of
two there the one in front. A clip that begins before an item and only reaches into it belongs
to the item before. A clip may be longer than its item. It goes where its item goes: dragged,
copied, removed (see below).
- **An item with a video** — a sprite wearing a video or one of its clips — runs *driven* (see
[Videos](Videos#following-an-animation)): its Video time is the item's offset plus the time since
the item began. Video sprites below it run along unless they were set to Driven by hand. Before the video begins (a negative offset) it shows the
@@ -78,7 +82,11 @@ the clips as narrower bars above them. The header bar has **+ Track**, **Play**
- **Dragging an animation onto a track** makes a clip at that frame, if it fits between the clips
there.
- **Dragging an item** moves it in time and from track to track, past and over other items; it
stops at frame 0. Several picked items move together.
stops at frame 0. Several picked items move together. **Its clips come along**, in the same undo
step. As clips of a track never overlap, the item stops where one of them would come to lie over
another clip. Press `Alt` once the drag runs and the item goes alone, its clips stay (`Alt`
pressed before is the clip band). Typing a *Start* in the inspector moves the clips the same
way. Dragging an edge leaves them where they are.
- **The edges.** Over an item's left or right edge the cursor turns to `ew-resize` and the edge
lights up, as in the [Song tab](Songs). **Dragging the right edge** sets the length. **Dragging
the left edge** of a video item trims it: the start moves and the offset with it, so the picture
@@ -104,10 +112,12 @@ the clips as narrower bars above them. The header bar has **+ Track**, **Play**
playhead, on the picked track, else on the top track of the picked items. Several items keep
their distances and their tracks to each other. The same copy pastes into a scene as plain
objects; objects copied from a scene do not paste into a composition, they have no timing.
**Picked clips** are copied and pasted the same way, into this composition or another. As clips
Copied items take their clips along; where one of those would lie over a clip, items and clips
move on together to the first frame where they fit. **Picked clips** are copied and pasted the same way, into this composition or another. As clips
of a track never overlap, a paste that would lie over a clip moves on, all its clips together,
to the first frame where they fit.
- `Delete` removes the picked items with their objects, the picked clips or the picked track.
- `Delete` removes the picked items with their objects and their clips, the picked clips or the
picked track.
- **Play** plays from the playhead at the composition's frame rate, round with its Loop; from the
end it starts at 0. The wheel zooms the time, the middle button or `Shift`-drag pans. Both glide
like the other tabs (see [Concepts](Concepts)).
+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 # 2059 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 2060 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