Encode the splatter bed too, and give the opponent his racket back
zombie-mode: 5.9 MB of 24-bit WAV down to 287 KB. Its master is 982597 frames at 48 kHz, so loopEnd is the un-round 20.47077 — the decoder hands back 20.4787, and those 7.9 ms of AAC padding would tick once a loop. Nothing in assets/audio/ is a multi-megabyte WAV any more. o_run1/o_run2 had no racket in either hand. The cause was the batch prompt: opponent_run never said "racket", and its reference sheet was built from the racket-less frames it was replacing, so there was nothing to copy one from. It is a ref_only batch off o_idle1 now — same man, front-facing, racket in his right hand — with the subject spelling out that he still carries it mid-stride. The stride reads as well as the old one did. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cf3498c049
commit
cd1c7a0cd8
9 files changed
+23
-8
No files matched your search
+10
-2
@@ -463,8 +463,16 @@ included, or a duck silently no-ops.
|
||||
48.000 s master to a 48.0174 s buffer — 17 ms of silence spliced in at every seam, once a loop, on
|
||||
the title screen. `menuMusic` passes `48`. Re-encode the file and re-measure:
|
||||
`fetch(f).then(r=>r.arrayBuffer()).then(a=>new AudioContext().decodeAudioData(a)).then(b=>b.duration)`.
|
||||
`zombie-mode.wav` (5.9 MB) is the other candidate for this treatment, and it loads mid-match rather
|
||||
than up front, so it matters less.
|
||||
`zombie-mode` got the same treatment: 5.9 MB of 24-bit WAV to 287 KB, `loopEnd` 20.47077 (982597
|
||||
frames at 48 kHz — an un-round master, and the decoder returns 20.4787, so 7.9 ms of padding is
|
||||
trimmed). Both beds are AAC now; nothing in `assets/audio/` is still a multi-megabyte WAV.
|
||||
|
||||
**The opponent was running with empty hands.** `o_run1`/`o_run2` had no racket in either fist, and
|
||||
the cause was the batch prompt: `opponent_run` never said the word "racket" and its reference sheet
|
||||
was built from the racket-less frames it was replacing, so the generator had nothing to copy one
|
||||
from. Fixed by making it a `ref_only` batch off `o_idle1` — same man, front-facing, racket
|
||||
unmistakably in his right hand — with the subject spelling out that he still carries it mid-stride.
|
||||
**When a prop goes missing from a sprite, check the batch's `subject` before blaming the roll.**
|
||||
|
||||
Measuring which audio files actually loaded: `performance.getEntriesByType('resource')` is USELESS
|
||||
here — the ~200 sprite PNGs blow past the 250-entry resource-timing buffer and every later fetch is
|
||||
|
||||
Reference in new issue
Block a user