Skip to content

Camera shots and gaze

In a LearnBrite space the camera moves to frame whoever is speaking. You choose how: a wide shot to show who is where, a close-up for the line that matters. ChatMapper gives you the shots by name, so you never type a field value by hand.

The camera only moves for participants in third-person view. Participants in first person or VR keep their own view and see none of these shots, so never let the camera carry something the dialogue does not.

You need a project in LearnBrite mode. The camera controls appear only in that mode.

Select the conversation. In the Inspector, Default camera shot sets the framing for every line in that conversation that does not choose its own. Left on Runtime default (MLS), the space uses a medium long shot.

A good baseline is a medium close-up for a one-to-one talk, and a medium or medium long shot for a group or a demonstration. Set the baseline here and change single lines only where the framing should change.

Select a node. On the Content tab of the Inspector, the Camera block has three controls.

Shot. How the camera frames the node’s Actor. Empty means the conversation’s default.

ShotFramesUse it for
XLS Extreme long shotWhole figure, small in the spaceEstablishing a new location; isolation.
LS Long shotWhole figure, head to feetArrivals, exits, whole-body action.
MLS Medium long shotKnees upOpening lines and gestures. The runtime default.
MS Medium shotWaist upNeutral conversation and explanation.
MSUP Medium shot, extra headroomWaist up, with space above the headLines where a status meter shows above the actor.
MCU Medium close-upChest upThe working shot for dialogue.
CU Close-upFace and shouldersEmotional beats, a key question, a consequence.
BCU Big close-upFace fills the frameOne peak moment. It loses force if repeated.
XCU Extreme close-upEyes and mouthRare. It exposes lip-sync and face detail.
OSL Over the shoulder, leftThe speaker, seen past the player’s left shoulderA line addressed to the player.
OSR Over the shoulder, rightThe speaker, seen past the player’s right shoulderAlternating with left in a long exchange.
Hold the cameraCamera stays where it isKeeping the previous framing while someone else speaks.

Under the dropdown, the editor reminds you what the chosen shot shows and when it earns its place.

Move. How the camera reaches the shot.

OptionEffect
Default moveWhatever the conversation or space is set to.
CutInstant. The right choice between speakers.
Ease (0.5 s)A short move.
Slow move (1.5 s)A deliberate push in on the same speaker.

Gaze. Where the speaker looks. Normally leave it on Automatic gaze: the speaker looks at the Conversant, and everyone else looks at the speaker. Getting the node’s Conversant right is the better way to direct gaze.

OptionEffect
Automatic gazeThe default behaviour described above.
Look at the cameraAn aside to the participant.
Look straight aheadThe character faces forward.
Hold the head stillNo head movement.
Back to automaticEnds an earlier override.

A gaze override stays in force for that actor until a later line of theirs sets Back to automatic. If you use one for an aside, clear it on the actor’s next line.

Select several nodes. The Inspector shows Set camera shot; choosing a shot applies it to all of them.

A line with no shot of its own uses the first one it finds, in this order:

  1. the node,
  2. the node’s actor,
  3. the location,
  4. the conversation,
  5. the space’s default, MLS.

OSL and OSR are built from the player’s avatar towards the speaker, so they need two things: a player avatar in the scene, and a Conversant who is a visible actor and not the speaker. The editor warns you when a node’s Actor and Conversant are the same.

Use them on a bot’s line addressed to the player. Do not use them on the player’s own lines.

  • Change the shot when the meaning changes, not on every line.
  • Open wide, settle, then go close. Establish with a long or medium long shot, hold a medium or medium close-up for the exchange, and move to a close-up for the line that carries the stakes. Return to the baseline afterwards, so the next close-up still lands.
  • Keep the biggest close-ups for one moment per conversation at most.
  • Cut between speakers. Save a slow move for a push in on one speaker.
  • A player choice frames the player’s avatar while its dialogue is spoken. Leave its shot empty unless the player’s reaction is the point.

In a LearnBrite project the AI assistant knows these shots and the rules above. Ask it in plain words, for example “make the refusal a close-up” or “set sensible camera shots for this conversation”. It sets a conversation default first and overrides only the lines that need it, and it describes its choices in plain language in the Proposed changes card. As with every AI edit, nothing changes until you apply it. See Controlled AI editing.

The controls read and write the same fields LearnBrite scenarios have always used, so a project that already sets shots shows them in the dropdowns. A value the list does not know, such as a custom camera, is kept and shown as Custom.

For reference, the fields are avatar_shot, camera_animationTime (in seconds) and avatar_lookTarget.