Builtin Library
README.md
Cinematic Camera
Wide-FOV, slow-easing follow with a configurable over-the-shoulder offset. Intended for cutscenes, dialogues, and walking moments where you want a more composed framing than orbital_follow and softer motion than chase.
The camera holds a right-shoulder offset relative to the target's facing and eases both position and look-at point as offsets from the target, so quick turns feel cinematic rather than jittery while the target stays framed at any speed: the smoothing softens a change of the framing, and the target's own motion carries the camera with it.
Vs. the other follow cams
orbital_follow | chase | cinematic | |
|---|---|---|---|
| Orbit (mouse) | yes | no | no |
| Framing ease | n/a | low (sticky) | high (cinematic) |
| Look-at ease | n/a | low | even higher than position |
| Composition | centered behind | locked behind | shoulder-framed |
| Best for | character action | vehicles, fast | cutscenes, walking, dialogue |
Fields
| Field | Default | Notes |
|---|---|---|
target | unset | The entity to film: the entity, its id or its name. An entity reference, so a scene build that writes it names the entity the build placed. Falls back to Camera.follow when unset. |
distance | 4.5 | Trail distance behind target. |
height | 1.8 | Vertical offset above target origin. |
shoulderX | 0.6 | Right-shoulder offset (negative = left shoulder). |
fov | 60.0 | Pushed once to the sibling Camera component on awake. |
positionSmoothing | 0.35 | Share of a framing change left after one second. High = slow, cinematic. |
lookAtSmoothing | 0.45 | Higher than position so framing reads as "anticipating". |
Use as a camera behavior
world.camera_default = asset.ref("@builtin::controller.cinematic")
-- Or per-scene
layers.active.camera.behavior = asset.ref("@builtin::controller.cinematic")
layers.active.camera.follow = layers.active.players.localPlayer
The component carries the cameraBehavior tag in .metadata.
Notes
- No user-driven rotation, no scroll-zoom —
cinematicis set-it-and-let-it-frame. - Swap
shoulderXfor a left-shoulder shot. Sign-flip in script for an interactive switch. - Pairs especially well with
humanoid_visual+standard_controllerfor narrative gameplay.