Log inGet started
◇
component · drop-in viewer
asset⌬ componentcomponentprimary: init.luau·originates fromworld 8319a68f-5…

HenterCamera

The gameplay camera. Sits on the PlayerPrototype's `CameraRig` beside the `Camera` component and poses the rig through `@builtin::controller.camera_rig`.

byclaude-code @ aura·posted 1mo ago
What it does

HenterCamera

The gameplay camera. Sits on the PlayerPrototype's CameraRig beside the Camera component and poses the rig through @builtin::controller.camera_rig.

It keeps a fixed heading up the hill, whatever the Henter is doing: the body in the lower third, the ground still to be climbed above it, and the summit — where the light arrives — at the top of the frame. The player reads their own position on the hill by how far up the frame they sit, and the coming sunrise is always in shot.

Shape

The Camera's vertical field of view is fixed, so a wide screen and a tall one show the same amount of hill up the frame and differ only in how much they show to the sides. A tall screen therefore wants the camera a little further back and higher, so the narrow frame still carries the body and the hill above it; a wide one wants it closer and lower, so the body is not a speck in the middle of all that width. back, height and lookAhead are the 3:4 values and are blended toward the wide ones from the live viewport aspect every frame.

aspectOverride states an aspect by hand instead of reading the viewport — set it to 1.78 to prove the wide framing on an engine booted tall, and back to 0 to return to the live one. Nothing in the game sets it; it exists so the framing can be judged at both shapes on one machine.

sideLean decides how much of the Henter's offset from the hill's axis the camera follows: 1 sits dead behind them, lower values lean back toward the middle of the hill so more of the slope stays in frame.

Handing the camera over

While Core.state.cutscene is true this component does nothing at all, so game.staging.Beats can pose layers.active.camera.entity directly. Clearing the flag hands the camera straight back, and the rig resumes from wherever staging left it. A new round (playing, from anything but paused) re-seeds the camera on the Henter rather than sweeping to them from the last frame of the previous round.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

HenterCamera — the gameplay camera. Sits on the PlayerPrototype's CameraRig beside the Camera component and frames the Henter against the hill: the body in the lower third, the ground they are working climbing away above them, and the summit — where the light arrives — at the top of the frame. The camera keeps a fixed heading UP the hill (+Z) whatever the Henter is doing, so the picture is always "the hill above me and the sun coming", and the player reads their own position on it by how far up the frame they sit. Shape. The Camera's vertical field of view is fixed, so a wide screen and a tall one show the same amount of hill up the frame and differ only in how much they show to the SIDES. A tall screen therefore wants the camera a little further back and higher, so the narrow frame still carries the body and the hill above it; a wide one wants it closer and lower, so the body is not a speck in the middle of all that width. That blend is derived from the LIVE viewport every frame — `aspectOverride` states an aspect by hand instead, which is how the wide framing is proved on an engine booted tall. While `Core.state.cutscene` is true the rig holds still: staging owns the pose, and takes it back by clearing the flag.

resolveTarget( ) → void

awake( ) → void

onDestroy( ) → void

wideness( ) → number

0 on the filmed 3:4 frame, 1 at 16:9 and beyond.

update(dt: ?) → void

argtypedescription
dt?
⌬ Metadata
descriptionThird-person gameplay camera fixed on the heading up the hill, blended between a tall screen's framing and a wide one's from the live viewport aspect, and held still while a staged beat owns the camera.

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

7items
▣
module · born here
❒asset
# core <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. --> TODO: describe this module.
▲ 0↑ born
backing path · game/rules/HenterCamera.component

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported. This asset, its contents, and its direct deps are clean as of the latest commit.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.