For the complete documentation index, see llms.txt. This page is also available as Markdown.

Gaze profile reference

Reference for every setting group and field in the Convai Gaze profile asset, including defaults and value ranges for each entry.

ConvaiGazeProfile (Convai/Embodiment/Gaze Profile) is the single authoring asset for the Convai Gaze system: targeting, per-state policies, head/torso solving, the oculomotor eye model, blinking, body turns, idle life, emotion modulation, and diagnostics. Settings are grouped into 15 nested blocks, one per authoring concern; every public accessor keeps the same name and type regardless of the block it reads from.

Targeting

Who or what is worth looking at, and how long the character stays interested.

Field
Type
Default
Range
Description

PlayerMaxDistance

float

8 (meters)

>= 0

Distance beyond which the player anchor loses relevance entirely.

PlayerFullRelevanceDistance

float

4 (meters)

>= 0

Distance below which the player anchor is fully relevant.

PlayerLineOfSight

bool

false

Auto-created player anchor only: require an unobstructed line of sight to the player.

PlayerObstructionMask

int

Physics.DefaultRaycastLayers

Auto-created player anchor only: layers treated as vision obstructions.

TargetTeleportThreshold

float

1.25 (meters/frame)

>= 0.05

Target displacement treated as a camera cut/teleport: gaze re-acquires with a saccade instead of dragging.

CommitmentAcquireSeconds

float

0.35

>= 0.01

Seconds for engagement to ramp in after a target is acquired.

CommitmentReleaseSeconds

float

0.9

>= 0.01

Seconds for engagement to ramp out after a target is lost or released.

TargetLossHoldSeconds

float

0.6

>= 0

Seconds the last target point is held after target loss before decaying to ambient.

InterestDecayPerSecond

float

0.05

>= 0

Interest drained per second from the currently held target.

InterestRecoveryPerSecond

float

0.1

>= 0

Interest restored per second to non-selected candidates.

MaxContinuousHoldSeconds

float

14

>= 1

Hard cap on continuously holding one candidate when alternatives exist.

InterestBreakThreshold

float

0.15

01

Interest level below which the arbiter forces a break to another candidate.

EnableTargetLossSearch

bool

true

When the player target is lost mid-conversation after 2+ seconds of engagement, hold the last known point and perform a short burst of searching saccades before releasing to the normal decay path. Never applies during Idle.

TargetLossSearchMaxSeconds

float

3

15

Hard cap on a target-loss search before it releases to the normal decay path.

EnableLookAtActionTargets

bool

false

Glance at whatever the current action step is about, for as long as the step runs. Off by default — it tends to read as the character watching its own hands. Does not affect what a walking character looks at.

Conversation states

Per-DialogueState gaze policy: how strongly the character commits to its focus target during each conversational beat. See Dialogue state for the eight-value state model this table keys on.

Field
Type
Default
Description

StatePolicies

IReadOnlyList<GazeStatePolicy>

8 shipped entries, one per DialogueState

Per-state policy. Unlisted states fall back to the Idle entry.

PolicyBlendSpeed

float

5

Range 020. Exponential smoothing speed applied when the active policy changes.

Each GazeStatePolicy entry carries State, Engagement (01), AllowPlayerTarget (bool), HeadContribution (01), AllowBodyTurn (bool), AversionMode (None, Cognitive, Natural), AversionStrength (01), and FixationLiveliness (02). Shipped defaults:

State
Engagement
Allow player target
Head contribution
Allow body turn
Aversion mode
Aversion strength
Fixation liveliness

Idle

0

false

0.35

false

None

0

1

Attending

0.9

true

0.85

true

Natural

0.15

1

Listening

0.95

true

0.85

true

Natural

0.08

1.1

Thinking

0.7

true

0.6

false

Cognitive

0.7

1.3

Speaking

1

true

0.85

true

None

0

1

Reacting

1

true

0.9

true

None

0

1.2

Interrupted

0.95

true

0.9

true

None

0

1.1

Settling

0.6

true

0.6

false

Natural

0.25

0.9

Head and torso

How much of the body a look recruits beyond the eyes.

Field
Type
Default
Range
Description

HeadStabilityDegrees

float

2.5

010

Angular dead-band: target motion inside this band is absorbed by the eyes while the head holds its aim, preventing the head from micro-chasing every small camera move.

HeadStabilization

float

1

01

How much the head cancels the animation's own head movement while engaged. At 1 the head stays level and the eyes stay centered; lower values let the animated head bob show through.

MaxHeadAngularSpeed

float

240 (degrees/second)

30720

Safety ceiling on head angular speed. A correctly tuned character never reaches this.

MaxTorsoAngularSpeed

float

180 (degrees/second)

30480

Safety ceiling on chest angular speed.

MaxHeadYawDegrees

float

55

060

Maximum yaw contributed by the neck+head chain.

MaxHeadPitchDegrees

float

32

045

Maximum pitch contributed by the neck+head chain.

NeckShare

float

0.35

01

Share of the head chain rotation carried by the neck bone; the rest goes to the head bone.

ChainFollowThrough

float

1

01

How much a turn travels up the body instead of the whole head chain rotating as one piece. 0 turns the chain rigidly.

EnableTorsoRecruitment

bool

true

Recruit chest/upper-chest for gaze amplitudes beyond the head's comfortable range.

MaxTorsoYawDegrees

float

22

040

Maximum yaw contributed by chest+upper-chest together.

MaxTorsoPitchDegrees

float

6

020

Maximum pitch contributed by chest+upper-chest together.

Gaze shift ladder

How a look is shared out across the body, and in what order the parts join in. Entry angles are how big a look has to be before that part of the body joins; onsets are how long after the eyes it starts to move.

Field
Type
Default
Range
Description

HeadEntryDegrees

float

12

045

How far off-axis a look has to be before the head joins in.

TorsoEntryDegrees

float

35

090

How far off-axis a look has to be before the chest joins in.

FeetEntryDegrees

float

25

10170

How much of a look the head and chest can still not reach before the feet turn, measured on the residual, not the raw angle.

HeadOnsetSeconds

float

0.12

00.5

How long after the eyes the head starts to move.

TorsoOnsetSeconds

float

0.15

00.8

How long after the eyes the chest starts to move.

FeetOnsetSeconds

float

0.25

01.5

How long after the eyes the feet may start to turn.

HeadTurnBaseSeconds

float

0.45

0.050.9

How long a small head turn takes. With HeadTurnSecondsPerDegree, the whole head speed law.

HeadTurnSecondsPerDegree

float

0.0125

00.03

Seconds added to a head turn for every degree it covers.

TorsoTurnBaseSeconds

float

0.55

0.051.4

How long a small chest turn takes.

TorsoTurnSecondsPerDegree

float

0.018

00.05

Seconds added to a chest turn for every degree it covers.

MovementSkew

float

0.18

00.5

How front-loaded a movement is. 0 is symmetric; higher values get going faster and ease in longer. Above roughly 0.3 starts to read as a flinch.

ShiftTriggerDegrees

float

2

0.510

How far the aim has to jump before it counts as a new movement rather than an adjustment.

IdleDriftTempoScale

float

1.35

0.53

How much slower idle looking-around is than purposeful looking. Above 1 the character drifts lazily when nothing has its attention.

EyeComfortDegrees

float

14

040

How far the eyes can sit from center before the head starts turning further to bring them back.

HeadComfortYawDegrees

float

35

060

How far the head can stay turned before the character wants to turn its feet, even when it can already see what it is looking at.

Eyes

The oculomotor model: range, pursuit, saccades, micro-life, face scanning.

Field
Type
Default
Range
Description

EyeActuationMode

GazeEyeActuationMode

Auto

Eye output backend. Auto prefers bones and falls back to EyeLook* blendshapes.

EyeMaxYawDegrees

float

35

1055

Oculomotor range: maximum eye yaw from rest.

EyeMaxPitchUpDegrees

float

22

540

Oculomotor range: maximum upward eye pitch.

EyeMaxPitchDownDegrees

float

28

545

Oculomotor range: maximum downward eye pitch.

EyeSoftLimitFraction

float

0.8

0.51

Fraction of the oculomotor range where soft-limit compression begins.

OrbitRecenteringStrength

float

0.6

01

How strongly the eyes re-center in the orbit as the head catches up.

EyeTrackingSharpness

float

40

590

Eye tracking sharpness during smooth pursuit; higher is tighter tracking.

SaccadeMinDurationSeconds

float

0.03

0.010.08

Minimum saccade duration — the main-sequence intercept.

SaccadeDurationPerDegree

float

0.0022

0.00050.01

Added saccade duration per degree of amplitude — the main-sequence slope.

SaccadeDeadzoneDegrees

float

0.75

0.15

Gaze error below which no corrective saccade is issued.

SaccadeReactionSeconds

float

0.12

00.4

Saccadic reaction latency: the pause before the eyes launch toward a new or displaced target.

CatchUpErrorDegrees

float

5

120

Pursuit error above which a catch-up saccade fires.

PursuitLeadSeconds

float

0.04

00.25

Predictive pursuit lead: eyes aim slightly ahead of a moving target along its measured velocity. 0 disables prediction.

EnableVergence

bool

true

Converge the eyes on near targets (per-eye yaw differs, for VR lean-ins).

VergenceMinDistance

float

0.14 (meters)

0.051

Closest supported convergence distance; nearer targets clamp here.

MaxConvergenceDegrees

float

16

230

Maximum inward convergence angle per eye — the cross-eye clamp.

SyntheticInterpupillaryDistance

float

0.063 (meters)

0.050.08

Interpupillary distance used only when the rig has no eye bones.

FixationDriftDegrees

float

0.35

02

Fixation drift amplitude: slow wander while fixating.

FixationDriftFrequency

float

0.5 (Hz)

0.053

Fixation drift frequency.

MicroSaccadeIntervalMean

float

1.5

0.26

Mean seconds between fixation micro-saccades.

MicroSaccadeIntervalJitter

float

0.9

04

Uniform jitter applied to the micro-saccade interval.

MicroSaccadeAmplitudeDegrees

float

0.5

02

Micro-saccade amplitude.

EnableFaceScan

bool

true

Scan between implied face landmarks (eyes/mouth) when gazing at the player or a face.

FaceScanIntervalMean

float

2.1

0.56

Mean seconds between face-scan fixation shifts.

FaceScanIntervalJitter

float

1.2

04

Uniform jitter applied to the face-scan interval.

FaceScanRadiusDegrees

float

2.2

0.56

Angular radius of the implied face-landmark triangle.

EnableListenerMouthBias

bool

true

While the player is speaking, bias face-scan fixations toward the mouth landmark.

ListenerMouthBiasStrength

float

2

14

Multiplier on the mouth landmark's selection weight at full listener mouth-bias.

Statistical blinking and eyelid behavior.

Field
Type
Default
Range
Description

EnableBlink

bool

true

Statistical blinking through the facial compositor.

BlinkIntervalMean

float

4.2

112

Mean seconds between spontaneous blinks.

BlinkIntervalJitter

float

2.2

08

Uniform jitter applied to the blink interval.

BlinkCloseSeconds

float

0.07

0.020.2

Lid close time.

BlinkOpenSeconds

float

0.16

0.040.4

Lid open time.

BlinkRefractorySeconds

float

0.6

0.12

Refractory window during which no new blink can start.

GazeShiftBlinkThresholdDegrees

float

18

090

Gaze shift amplitude above which a blink may accompany the shift. 0 disables.

GazeShiftBlinkProbability

float

0.55

01

Probability that a large gaze shift triggers a blink.

EnableEyelidFollow

bool

true

Eyelids follow vertical eye rotation (looking down lowers the lids).

EyelidFollowStrength

float

0.6

01

Strength of the eyelid pitch-follow.

EnableBlinkClustering

bool

true

Elevate blink likelihood for a short window after a cognitive boundary — end of an utterance, a final transcript, or the player pausing.

BlinkClusterRateMultiplier

float

3

16

Blink-rate multiplier applied for roughly 0.7 seconds after a clustering cue.

Body turn

When a look becomes a full-body reorientation.

Field
Type
Default
Range
Description

EnableBodyTurn

bool

true

Allow full-body reorientation toward the gaze target. The state policy still gates it.

BodyTurnCompletionToleranceDegrees

float

8

130

Yaw error below which the turn is considered complete.

BodyTurnHeadRelief

float

0.4

01

While a body turn is in flight, head/torso gaze offsets scale to this fraction, so the neck visibly relaxes and rides the turn.

ProceduralTurnSpeed

float

140 (degrees/second)

45540

Peak speed of the procedural fallback turn used when no animated handler is available.

Idle life

What the character does with its eyes when nothing has its attention.

Field
Type
Default
Range
Description

EnableAmbientExploration

bool

true

Ambient eye/head exploration while no target is engaged.

AmbientYawRangeDegrees

float

26

060

Ambient exploration yaw range.

AmbientPitchUpDegrees

float

8

030

Ambient exploration upward pitch range.

AmbientPitchDownDegrees

float

12

030

Ambient exploration downward pitch range.

AmbientIntervalMin / AmbientIntervalMax

float

1.7 / 4.6

0.410 / 120

Interval range between ambient fixation changes.

AmbientHeadFollow

float

0.35

01

Fraction of the ambient look carried by the head; the rest is eyes only.

AmbientRecenterBias

float

0.35

01

Bias toward re-centering instead of picking a new off-center point.

EnableCuriosityGlances

bool

true

Occasional short eye-led glances at the player while otherwise idle.

CuriosityGlanceIntervalMin / Max

float

7 / 16

230 / 460

Interval range between curiosity glances.

CuriosityGlanceDuration

float

1.2

0.34

Duration of a curiosity glance.

CuriosityRespondsToAttention

bool

false

While idle, glance back at the player sooner when a PlayerAttentionSensor reports the player is looking at this character. Needs curiosity glances enabled and the sensor present.

Travel

Where the character looks while it is walking somewhere.

Field
Type
Default
Range
Description

EnableTravelGaze

bool

true

While walking, watch the path ahead and check on the destination now and then.

EnableDestinationGlances

bool

false

While walking, glance at the destination or whoever it is following every few seconds. Off by default because the timing is a countdown rather than something the character noticed.

TravelPathPriority

int

15

>= 1

How strongly the path competes with other things to look at — above the player anchor's 10 on purpose, so a following character does not stare at the player the whole way.

PathLookAheadMinMeters / MaxMeters

float

3 / 8

0.520 / 140

How far ahead the character looks at walking pace / at full pace.

TravelEngageSeconds

float

0.35

0.052

How long the switch to travel gaze takes.

TravelGlanceIntervalMin / Max

float

2.5 / 5

0.520 / 130

Interval range between glances at the place being walked to.

CompanionGlanceIntervalMin / Max

float

1.6 / 3.2

0.320 / 0.530

Interval range between glances at a person being followed.

TravelGlanceHoldSeconds

float

0.55

0.153

How long each travel glance lasts.

TravelGlanceConversationScale

float

0.5

0.051

How much sooner glances come while the character is talking with someone. 0.5 means twice as often.

ArrivalSettleEyeDropDegrees

float

4

012

How far the eyes drop for a moment as the character comes to rest at the end of a walk. Eyes only; 0 disables.

ArrivalSettleSeconds

float

0.7

02

How long the settle takes, from the eyes dropping to lifting back.

ArrivalApproachMeters

float

3

0.515

How close to the destination the character starts settling.

ArrivalReleaseMeters