staging
The moments Lanternwake takes the camera off the player, and every word anybody in it says out loud.
staging
The moments Lanternwake takes the camera off the player, and every word anybody in it says out loud.
The beats
Five, all built as cutscene data and played through the cutscene toolbox,
all routed through one stage() helper so exactly one is ever on screen and
control is handed back on onFinished however the beat ended.
| beat | fires on | what it is |
|---|---|---|
lanternwake.opening | gameStart, or the phase reaching intro/explore, or 1.6 s into play if nothing else raised the curtain | The coach pulls away, Vane is left on the lane, the lane finds the village in the fog, the frame tilts until St Brannoc's spire is at the top of it, and the camera settles into the gameplay camera's own pose. |
lanternwake.the_vicar | vicarSpotted, once, and only while it stands between 7 m and 34 m away | The first time the thing is properly seen. |
lanternwake.crypt | cryptOpen | The stone moving, craned over from above. It hands straight on to lanternwake.revelation — bands and lines over live gameplay, so a thirty-second confession is not thirty seconds of standing still. |
lanternwake.escape | the phase reaching won | The gate, and the camera pulling up and away from it. |
lanternwake.caught | playerCaught, or the phase reaching caught/lost | Low, close and canted, fading to a dark red. |
The opening is deliberately not conditional on any other slice: if nothing has started it 1.6 s into play, staging starts it itself.
The voice
Every line lives in LINES with the recording that carries it and that
recording's measured length. M.say(key) plays the audio, writes
Core.state.subtitle and emits Core.emit("speak", key, text) — so the
words reach the screen whether or not the audio does. A line whose clip is
missing still appears; it is reported in the log and never deleted.
Dr Aurelia Vane and the Reverend Thackeray are read by two different voices. The Hollow Vicar does not speak.
Clips are cached, generated once, under:
/zero/source/voice/lines/lwv_<key>.soundClip the spoken script
/zero/source/voice/foley/lwf_<key>.soundClip the coach, the crypt stone, the drop
The lwv_ / lwf_ prefixes keep them clear of the sound slice's own
library, which is keyed on the bare canonical names.
The props
Under the Staging container, all temporary, all rebuilt by build():
stg_coach (the landau, its horse, two lit carriage lamps and a wheel
emitter) and stg_signpost (the parish fingerpost Vane is set down beside,
its lamp head as dark as every other lamp in the village).
The coach stands at the coach-stop while you author, and drives away down the road during the opening.
Timing
Nothing here uses a bare task.delay. Everything timed runs off a
cancellable queue in M.update, tagged by beat, so M.stop() drops the
lot and a skipped beat does not leave lines arriving over the next one.
Scoped to this part · feeds back into the world's score.