Stage Capture
stage_captureRender frame-locked stage captures in the background from a scene and song time range, using cameras, setup commands, and audio without affecting the live stage.
Instructions
Capture the stage on the PC, frame-locked: frame n shows the song at t0 + n / fps (takes and loops, keyed objects, tree growth, lights and behaviours all at that time), however long a frame takes to draw; nothing drops. Runs in the background with no headset and without touching the stage the person uses (its own server and a headless browser; nothing it does is saved to the scene or reaches the live link), on the GPU slot. Replies at once with the job; stage_capture_status(scene, job) follows it. The camera, one of: camera= a camera object in the scene (keyed ones fly their keys on the stage clock); shot= a story path from cameras.json (cameras= its file; keys evenly spaced, eased in and out over the shot's seconds from t0); path= {"keys": [{"pos", "look", "lens"}], "seconds", "at"} the same inline; view= {"pos", "fwd", "up", "vfov"} fixed. All in Blender coordinates (metres, Z up), lens in mm on a 36 mm sensor; "vfov" (degrees) in path or view overrides the lens. t0, t1: song seconds. size [w, h] (default [1920, 1080]; [1440, 1080] for 4:3). The stage clock is set to clock_at + (song t - t0) every frame (clock_at defaults to t0; clock=False leaves it alone). setup: live commands run once before the first frame, e.g. [{"type": "actor_play", "person": "body_a", "take": "t1", "at_music": 0}, {"type": "sky", "mode": "night"}] (per-shot overrides; the scene files are not changed). Every load set is in the shot unless sets=False (setup can unload one: {"type": "load_set", "name": ..., "loaded": false}). A setup command with "at_song": waits for that frame and runs just before it is drawn, e.g. {"type": "behaviour_run", "object": "light_switch", "at_song": 255.0} (one at or before t0 runs at frame 0). {"type": "screen_key", "material": "screen", "color": "#00ff00"} (captures only) draws a material flat and unlit in a key colour so a comp in post finds what covers it exactly ("object": instead of "material": that object's one material; default material "screen"); "color": "off" puts it back, e.g. timed with at_song. audio: the song file, cut to t0..t1 under the video. Out: /captures//capture.mp4 (H.264, 4:2:0), frames/f_00000.png with keep_frames (or video=False).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| t0 | Yes | ||
| t1 | Yes | ||
| fps | No | ||
| name | No | ||
| path | No | ||
| sets | No | ||
| shot | No | ||
| size | No | ||
| view | No | ||
| audio | No | ||
| clock | No | ||
| scene | Yes | ||
| setup | No | ||
| video | No | ||
| camera | No | ||
| scenes | No | ||
| cameras | No | ||
| clock_at | No | ||
| keep_frames | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |