Stage
The sky over the ridge, the grade on the frame, and the moments the camera attends to. One instance, on the scene's `stage` entity.
Stage
The sky over the ridge, the grade on the frame, and the moments the camera
attends to. One instance, on the scene's stage entity.
What it owns
One axis. light runs 0 (deep night) to 1 (the sun clear of the ridge).
The phase and the night's clock decide its target and it eases toward it:
| Phase | Target |
|---|---|
title | 0.05 |
intro | 0.03 |
night | FL.progress() * 0.72 — the night ends at first blush |
dawn | climbs to 1 over dawnRamp seconds |
ended + triunity | 1.00 |
ended + grey | 0.90 |
ended + lost | 0.10 — the night takes the temple back |
paused | held |
game.light.firstlight turns the axis into the sun, the ambient, the sky and
the grade; this component pushes them at the scene every frame — in edit mode
as well, so a still taken while nobody is playing is the picture a player
gets.
The post-process chain, stood up at awake and driven off the ramp: fog,
bloom, colour correction, tonemap, vignette, in that order. It grades the
scene layer rather than all, so the screens slice's widgets are drawn on
top of a graded picture and are never graded themselves.
An ending's colour. Each result puts a mood over the ramp — the Triunity
warmer and more saturated, a grey dawn light but colourless, a lost night
cold and nearly monochrome — blended in over moodRamp seconds.
The three staged beats, played as cutscenes from game.light.moments:
the opening over the ridge, and a resolution for each of the three endings.
The opening ends with FL.request("begin") and a dawn resolution with
FL.request("ended"), so the beats are what hands the night on.
Fields
| Field | Default | What it does |
|---|---|---|
dawnRamp | 5.5 | Seconds first light takes to fill the sky once dawn comes. |
moodRamp | 2.5 | Seconds the ending's colour takes to settle. |
grade | true | Run the post-process chain. Off leaves the raw render. |
moments | true | Play the staged opening and endings. |
preview | -1 | Hold the light axis at this reading instead of taking it from the night. Negative hands it back to the game. |
preview is the authoring hold: set it to 0, 0.62, 0.85 or 1 and capture, and
the ramp can be judged at any point without playing three minutes to get
there. It also bypasses the ending mood, so what comes back is the ramp
alone.
A clock under every hand-off
A beat that cannot be staged must never leave the night unable to begin or to
end, so update keeps a clock under both: intro hands on after 16 seconds
whatever the cutscene did, and dawn after 15. playMoment also reports and
carries on rather than raising when cutscene.play refuses.
ui.action clears this component's flags but never stops a playback. The
action and the phase change it causes are one emit apart and both listeners
run inside it — a stop there lands after the opening the phase change just
started and kills it in the same frame. Ending a beat is the phase handler's
job, and cutscene.play ends whatever is running when the next beat starts.
Scoped to this part · feeds back into the world's score.