The shot list documents itself: all eight tins, five beats, ten bosses

The header block in tools/scenes.json is now the whole schema — every key with
its range and default, what each of the EIGHT weapons does (fire, laser and gun
were missing from both the docs and the validator), the five beats, the crowd
roster diversity walks in order, the bosses by chapter, and the traps worth
knowing: a serve tin is spent in about four seconds of autopilot fire, a burst
tin owns its own window, a horde locks the rack, a boss cannot start inside a
match, and `movement` fights the match's own auto-run legs.

Two scenes added from the campaign's own wish list: `epidemic` (the fire ball
lighting a whole wave off the body it hit) and `champion` (chapter ten, the
night court). Both verified on film.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-18 13:34:17 +02:00
1 parent 472c86b36e
commit 532dd3b83e
3 files changed
+106 -27

No files matched your search

+5 -3
View File
@@ -3556,9 +3556,11 @@ never an interstitial. An interstitial after death would land exactly in the "on
**THE CAPTURE RIG IS BUILT (2026-08-18), AND THE SHOT LIST IS DATA.** `python3 tools/capture.py`
fills `promo/clips/`; `python3 tools/capture.py horde boss` shoots two; `python3 tools/capture.py
my-shots.json` shoots another list entirely; `--seed 77` re-rolls every take. What to shoot lives
in `tools/scenes.json` — nine scenes today — and its `"_"` block documents every knob:
`seconds`, `setting` (gore / zombie), `beat` (transition / horde / boss / death / mopboy),
`court`, `boss`, `weapons`, `movement`, `density`, `diversity`, `gore`, `games`, `screen`.
in `tools/scenes.json` — eleven scenes today — and its `"_readme"` block IS the schema, written so
an agent can open that one file and write a new batch: every key with its range and default, all
eight tins and what each does, the five beats, the crowd roster `diversity` walks, the ten bosses
by chapter, and the traps (a serve tin is spent in ~4 s of autopilot fire; `movement` fights the
match's own auto-run legs, so a zombie-tennis scene leaves it 0).
`tools/clips.js` is the engine that knows how to shoot any of it: `tools/capture.py` serves the
repo with it injected, opens a throwaway-profile Chrome, and the page stages the scene, records
canvas + audio, POSTs the webm back; ffmpeg writes h264/aac. Nothing is faked for the camera —