Motion pass

Read every cut of the draft at full size, fix what reads flat, and write one row for each cut in the brief.

At the end of this page the draft has no flat cut, and the three motion checks are clean or waived with a reason. The brief has a filled “Motion pass”. This is stage 7 of the loopThe loop is the ten stages that make a film: brief, references, design kit, states, board, draft, motion pass, critique, fix and final..

You need a full draft from Draft. The strip verbs read the last full draft, so a range draft does not count.

Steps

Read the motion checks

The draft prints these. Each one is clean, or the page declares a waiverA waiver is a declared break of a check rule, with a measured reason, in the page's <script id="authoring"> block. with a reason that names a world or a second and a measured number.

CheckThe rule
overshoot-share21 to 61 percent of the arrivals that move overshoot. About 1 in 3 lands with a spring (EASE.pop). Type, UI and counts do not overshoot by default.
live-holdNo span over 0.5 s outside a declared hold where no part of the frame moves by itself. A camera drift does not count.
constant-cameraThe camera moves for 60 percent of the film or less. It holds still by default.
seam-varietyEach moving seam changes axis or direction from the one before. A hard cut is exempt.

Strip every cut

bin/vawe strip films/hello/page.html --cuts

This writes one strip for each worldA world is the one element that holds one beat of the film, marked with data-world="<id>". change, centred on the cutA cut is the change from one world to the next.. Read each grid at full size. Look at how the outgoing part and the incoming part overlap.

Look closer at the spectacle second

bin/vawe strip films/hello/page.html --at 2.75 --onion
bin/vawe strip films/hello/page.html --at 2.75 --velocity

--onion blends several frames of one move into one image: the newest is the strongest, and older frames are fainter. It shows the spacing, the path and the overshoot. --velocity graphs the speed and scale of the elements that move most, with the start, peak, settle and overshoot of each. --sel picks elements by a CSS selector. --velocity reads a page only.

Check each cut against the principles

For each cut, check these points: anticipation on the hero, follow-through and overlap, eased spacing, and arcs on travelling elements. Also check secondary action, exits faster than entrances, and holds alive through element motion. The camera stays still unless it is the spectacle. The sources are taste/craft/motion-craft.md and core/motion/README.md.

Fix what reads flat

Edit the page. Render only the seconds you changed.

bin/vawe dev films/hello/page.html --from 2 --to 4
bin/vawe strip films/hello/page.html --at 2.75

Write one row for each cut

In brief.md, fill the “Motion pass” section with one row for each cut: each principle you checked, what read flat and what you fixed. The next: line asks for this while the section is empty.

What you see

Each strip run prints the path of an image. A grid also gives the seconds when the move starts, peaks and settles. --onion writes to out/onion/<film> and --velocity writes a PNG to out/velocity.

A grid of frames through the cut at 1.53 s of colour-sting.
vawe strip --cuts: the frames through one cut, with its motion numbers.
Six frames of one move blended into one image, older frames fainter.
vawe strip --onion: the path, spacing and overshoot of one move.
A graph of speed and scale over time for the moving element at the cut.
vawe strip --velocity: start, peak and settle of each moving element.

What good looks like

  • The hold is not frozen. One part moves in every hold (a line typing, a counter, a glint), not the camera.
  • A hero arrival overshoots. Most others land on a soft stop.
  • Two moving seams in a row do not go the same way.
  • Every row of “Motion pass” names a cut and a fix. The example is the last section of films/examples/colour-sting/brief.md.

Common mistakes

What you seeWhyWhat to do
strip --cuts finds no cutsThe page has no data-world elements, or no full draft existsAdd the elements, then run bin/vawe dev
A camera drift in every holdYou tried to fix live-hold with the cameraGive the hold an element motion instead, and keep the camera for the spectacle
ship warns that the Motion pass is emptyThe section still has its placeholder rowWrite the rows; the warning is advice and does not stop the render

On this page