▣
module · drop-in viewer
shots
The camera language of the three staged beats, and the rule that makes one written shot read on a television and on a phone held upright.
by·posted 1mo ago
What it does
shots
The camera language of the three staged beats, and the rule that makes one written shot read on a television and on a phone held upright.
local Shots = require("game.staging.shots")
local def = Shots.intro({ aspect = 0.75, hx = 0, hy = 1, hz = -16 })
cutscene.play(def)
intro(ctx), firstlight(ctx) and resolution(ctx) each return a cutscene
definition. ctx is { aspect, hx, hy, hz, tier } — the live aspect and where
the Henter is standing when the beat begins.
Fitting
A shot is written once, as an eye path and a look path in world metres, and then fitted to the live screen by two things:
lensFor(h, v, aspect)— the vertical field of view that covers at leasthdegrees across AND at leastvdegrees down, whatever the aspect is. A 3:4 phone gets a taller lens so the hill still runs from the bottom of the frame to the sky; a 16:9 monitor gets the shot's own vertical angle and the extra width for free.dollyFor(aspect)— how far in the eye comes on a narrow frame. 1.0 at 16:9 and wider, closing to 0.76 by 3:4, which is what keeps the subject the same size on screen once the lens has opened up.
fit(spec, aspect) applies both to one shot; fitAll to a list.
The rest
BEAT_LAYERS— what a beat's camera draws (all !ui !EditorUI !debug).cairnPoint()— the summit landmark the crest turns to face, read from the scene when it is there so a set-dressed cairn moves the shot with it.
Discussion
Scoped to this part · feeds back into the world's score.
Sign in to post.sign in
No comments yet. Be the first.