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 keywords | Camera hint | Default shot |
|---|---|---|
| angry, aggressive, furious, rage | Intense | CloseUp |
| sad, melancholy, grief, sorrow | Soft | Medium |
| happy, friendly, warm, cheerful | Warm | MediumCloseUp |
| fear, anxious, nervous, tense | Tense | CloseUp |
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 hint | First-person preset |
|---|---|
| Intense / Tense | FP-Intimidate |
| Soft | FP-Conversation |
| Warm | FP-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:
- put specific, conditional rules first (establishing, mood-driven)
- put avoidance and alternation rules in the middle (repetition, shot-reverse-shot)
- 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.