tools/scenes.json says WHAT to shoot; tools/clips.js only knows how. Every knob Oliver asked for is a key: seconds, setting (gore/zombie), beat, court, boss, weapons, movement, density, diversity, gore, games, screen — documented in the file's own "_" block, validated in capture.py so a typo names itself instead of coming back as fifteen seconds of empty court. Nine scenes ship in the default list, across all four courts. The frame is a PHONE now (393x852 -> 1080x2340), not 9:16: the portrait branch derives its logical height from the canvas box, so a 9:16 take was never the framing a player sees. The player has legs — held arrow keys through the real axisX, so horde and flamer are no longer a statue with a flamethrower. The crowd tops itself up where the game's own spawner puts it, diversity walks the roster, and `gore` paints in the run's history a fifteen-second clip has no time to earn. The pilot is picked by what the court is doing rather than by config: tennis mode taps to swing, splatter draws the slingshot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
71 lines
3.8 KiB
JSON
71 lines
3.8 KiB
JSON
{
|
|
"_": [
|
|
"THE SHOT LIST. `python3 tools/capture.py` shoots every scene below into promo/clips/;",
|
|
"`python3 tools/capture.py horde boss` shoots two; `python3 tools/capture.py my.json` shoots",
|
|
"another list entirely. Keys starting with _ are ignored, which is where the comments go.",
|
|
"",
|
|
"name file name, and the name you pass on the command line",
|
|
"seconds length of the take (3-60)",
|
|
"setting gore | zombie — the splatter run, or the tennis match against the roster",
|
|
"beat transition | horde | boss | death | mopboy — the staged moment, optional",
|
|
"court grass | clay | hard | gloom",
|
|
"boss 1-10, the chapter whose boss walks on (gore only; it owns the court, so no match)",
|
|
"weapons rack tins granted and cycled through: bomb, triple, beacon, flamer, rocket",
|
|
"movement 0 statue .. 1 sweeps the full width (only bites in a rally or under a burst)",
|
|
"density 0 .. 1 how many bodies are kept on court (1 is about fourteen)",
|
|
"diversity 0 shamblers only .. 1 the whole roster (steward, runner, ball boy, brute, bouncer)",
|
|
"gore 0 .. 1 blood already on the court when the clip opens",
|
|
"games run progress the HUD shows and the speed ramp reads (default 8, or the boss chapter)",
|
|
"screen phone (default, 393x852 -> 1080x2340) | tall | 9x16",
|
|
"seed whole-shoot seed lives on the command line: --seed 1234 re-rolls every take"
|
|
],
|
|
|
|
"scenes": [
|
|
{
|
|
"_": "THE FLAGSHIP. Four seconds of an ordinary SNES tennis game, then the turn. Nothing else in the clip needs to happen — do not add weapons or a crowd to it.",
|
|
"name": "transition", "seconds": 17, "setting": "gore", "beat": "transition",
|
|
"court": "grass", "movement": 0.35, "gore": 0
|
|
},
|
|
{
|
|
"name": "horde", "seconds": 15, "setting": "gore", "beat": "horde",
|
|
"court": "clay", "movement": 0.85, "density": 0.8, "diversity": 0.9, "gore": 0.45, "games": 14
|
|
},
|
|
{
|
|
"_": "The epidemic: a wave lined up across the far court and a flamethrower opened on it.",
|
|
"name": "flamer", "seconds": 14, "setting": "gore",
|
|
"court": "grass", "weapons": ["flamer", "rocket"], "weaponEvery": 6,
|
|
"movement": 0.7, "density": 0.85, "diversity": 0.6, "gore": 0.3, "games": 9
|
|
},
|
|
{
|
|
"_": "Artillery night: three tins in fourteen seconds on the dark court.",
|
|
"name": "arsenal", "seconds": 14, "setting": "gore",
|
|
"court": "gloom", "weapons": ["bomb", "beacon", "triple"], "weaponEvery": 4,
|
|
"movement": 0.6, "density": 0.7, "diversity": 1, "gore": 0.55, "games": 16
|
|
},
|
|
{
|
|
"_": "The ball boy calmly mopping a massacre. The pilot stops shooting so he can work.",
|
|
"name": "mopboy", "seconds": 15, "setting": "gore", "beat": "mopboy",
|
|
"court": "hard", "movement": 0.4, "density": 0.55, "diversity": 0.7, "gore": 0.5, "games": 10
|
|
},
|
|
{
|
|
"name": "death", "seconds": 13, "setting": "gore", "beat": "death",
|
|
"court": "clay", "movement": 0.5, "density": 0.9, "diversity": 0.8, "gore": 0.7, "games": 11
|
|
},
|
|
{
|
|
"_": "Chapter three's boss walks on with the whole rack already gathered.",
|
|
"name": "boss", "seconds": 16, "setting": "gore", "beat": "boss", "boss": 3,
|
|
"court": "grass", "weapons": ["rocket", "bomb"], "movement": 0.75, "gore": 0.4
|
|
},
|
|
{
|
|
"_": "ZOMBIE TENNIS: a rally on real tennis rules, the opponent bursts, the next one is announced.",
|
|
"name": "match", "seconds": 18, "setting": "zombie",
|
|
"court": "grass", "movement": 0, "gore": 0.25
|
|
},
|
|
{
|
|
"_": "...and the same mode on clay, deeper into the roster, with the court already bloody.",
|
|
"name": "match-clay", "seconds": 16, "setting": "zombie",
|
|
"court": "clay", "movement": 0, "gore": 0.8, "games": 20
|
|
}
|
|
]
|
|
}
|