Skip to main content

Camera Shot Rules

Shot selection rules determine how the automatic camera system chooses shots when no explicit camera beat is present.

Rules are evaluated in order from a DialogueShotSelectionProfile. The first rule that returns a valid shot is used.

Cinematic rules

The default cinematic profile evaluates these rules in order:

GroupEstablishingShotRule

Fires on the first beat of a group conversation (more than two participants). Returns a group-wide establishing shot with a Blend transition.

EstablishingShotRule

Fires on the first beat of a two-person conversation. Selects a wide or two-shot to establish the scene before closer framing begins.

RepetitionAvoidanceShotRule

Prevents the same shot type from being used more than a configurable number of consecutive times (default: 3). Picks the first preset from its varietyShots list that differs from the previous.

ShotReverseShotRule

Alternates framing between the two conversation participants. When the speaker changes, the camera switches to frame the new speaker with an over-the-shoulder shot using a Cut transition. This creates the classic shot-reverse-shot pattern used in film.

MoodDrivenShotRule

Selects shots based on the current mood state. DefaultMoodCameraHintResolver maps moods to camera hints using substring matching:

Mood keywordsCamera hintDefault shot
angry, aggressive, furious, rageIntenseCloseUp
sad, melancholy, grief, sorrowSoftMedium
happy, friendly, warm, cheerfulWarmMediumCloseUp
fear, anxious, nervous, tenseTenseCloseUp

When the mood does not match any keyword, the rule is skipped (returns Neutral).

BeatPositionShotRule

Selects shots based on where the current beat falls within the node's beat groups. The first beat uses an opening shot, the last beat uses a closing shot, and middle beats use a default shot.

DefaultShotRule

A catch-all fallback that always returns a valid shot (MediumCloseUp by default). Place this last in the profile.

First-person rules

A separate shot selection profile handles first-person mode. The built-in rules are:

FPMoodDrivenShotRule

Same mood resolution as cinematic, but maps to first-person presets:

Camera hintFirst-person preset
Intense / TenseFP-Intimidate
SoftFP-Conversation
WarmFP-Focus

FPBeatPositionShotRule

Opening beats use FP-Focus, closing beats use FP-Conversation, middle beats use FP-Focus.

FPDefaultShotRule

Always returns FP-Focus as the fallback.

Rule evaluation order

Rules are evaluated in the order they appear in the profile. This means:

  1. put specific, conditional rules first (establishing, mood-driven)
  2. put avoidance and alternation rules in the middle (repetition, shot-reverse-shot)
  3. put the default rule last as a fallback

A well-ordered profile creates natural-feeling camera work without any per-beat configuration.

Camera settings

The DialogueCameraSettings ScriptableObject (loaded from Resources) provides global configuration for the camera system, including transition durations and default shot preferences.

Practical advice

The default profile order works well for most conversations. If you find the camera behaviour unsatisfying, the most common adjustments are:

  • moving the mood-driven rule higher to make emotional moments more visually distinct
  • adjusting the repetition avoidance rule to allow more variety
  • changing the default rule's preferred shot to match your game's visual style

Next step

Continue to Mood and Non-Verbal.