At Rest¶
What the eyes and the head do when nothing in particular is happening, which is most of the time, and most of what makes a face read as alive.
Blinks & Lids¶
Blinks keep their own schedule, so two characters never blink in unison. The rate is not constant. Talking raises it. Thinking lowers it, the way it does in someone working something out, and being worked up raises it again. Listening deliberately does neither, because paying attention does not change how often people blink.
Lids follow the eyes. Look sharply up or down and the lid trails a moment behind the eye, with the upper lid driven down by its own muscle and falling back passively, which is why the two directions do not look the same. Look far to the side and the lids narrow with it, a coupling measured in research. Their absence is one of the things that makes a face look wrong without anyone being able to say why.
Pupils¶
The pupils respond to four things, and the inspector's Pupil section carries one group for each. A character both worked up and thinking hard has wider eyes than either would give alone.
Arousal Dilation¶
How worked up the character is widens the pupils, rising and settling gradually the way a real pupil does. How worked up it is comes from the character's Mental State, which reads what the character is feeling and the cognitive tags in its lines.
Cognitive Dilation¶
Thinking hard widens them too. Thinking is the other half of Mental State, and it comes only from a <Thinking> tag in the transcript. The same moment of thought slows the blinking too.
Light Reflex¶
Light narrows or widens them depending on how the scene compares with what the character is used to, so walking into a dark room opens the pupils and stepping out into daylight closes them. The reading is the Light input from your game.
Pupil Unrest¶
A little unrest keeps the pupils from sitting perfectly still at whatever size the other three have left them, since a real pupil never does.
The Eyes at Rest¶
A resting eye is never still, and three separate behaviours keep it alive. Each is its own section under the Eyes driver's Features, with its own switch, and all three run under either engine. They also run while an animation drives the eyes if you ask them to. See Animated Eyes.
Ocular Drift¶
The slow wander a held gaze has. A real eye never holds perfectly still. It meanders slowly and aimlessly around whatever it is looking at, and the darts below pull it back. Without it the eye sits perfectly still between darts, and that stillness reads as dead however small the darts around it are.
Microsaccades¶
The tiny corrections an eye makes constantly while holding a target, far smaller than the ones that scan a room. They are how the eye holds a target instead of locking onto it. Without them a held gaze is perfectly frozen, which is one of the things that reads as a doll rather than a person. Close up they matter more, so this earns its cost in VR.
Scanning Saccades¶
The larger movements that break away to something else worth looking at, then come back, moving only the eyes while the head and body stay put. They keep going even with nothing to look at. How often depends on what the character is doing: an idle character makes small movements very often, and a talker breaks away from a face noticeably more often than a listener does, which is one of the clearest differences between the two states.
Idle Head Motion¶
The head at rest is never still either. Its motion is one section under Features, Idle Head Sway, with a master switch and the pieces below inside it, and two more sections beside it: one for the small nods a listener gives, and one for how the head levels itself. One smaller thing rides inside Idle Head Sway too. Per-State Settings is how much of the sway runs while talking, idle, listening and tracking: people steady their head when their eyes are fixed on a target and hold mostly still while paying attention, so the listening and tracking amounts sit low. See Listening Gestures.
Constant Drift¶
The fine, restless micro-motion of the head, a constant small drift across nod, turn and tilt. It runs underneath everything, with a slow pull back toward neutral so the head does not wander off. It is kept small while a character is talking, so it does not compete with the head moving to the voice, and smaller still while listening, because people hold still when they are paying attention. The per-state amounts are set beside it.
Postural Shifts¶
The occasional bigger re-settle, where the character drifts its head to a new resting angle now and then, the way a person shifts how they are holding their head over time. The shift moves the head and neck as a unit while the eyes hold their target, which is how a person changes position without losing what they were looking at.
Listening Gestures¶
The small nods a listener gives while someone else talks. A character that holds perfectly still while it is being spoken to reads as absent, even when its eyes are alive, and these nods are the plainest sign that somebody is being listened to.
This is what a nod looks like. Deciding when one happens is on the listener side of the character, because responding to a speaker is listening behaviour rather than eye behaviour, and that is also where you ask for a nod from code. See Listening Gestures for both. These rows show there too, so they can be tuned from either side.
The shape is in use either way. A nod your game asks for is built from the same Nod Shape as one the character gives itself, so it still matters on a character that never nods on its own.
What a Nod Looks Like¶
Nod Depth (°) is how far the head dips. Keep it small. A deep nod is a statement, and a listener is not making one, so this wants to read as attention rather than agreement. Raise it for a character who nods emphatically, or one whose head sits small in frame and needs the movement to carry, and lower it where the nod has to sit under dialogue without pulling the eye off whoever is speaking. Nod Duration (ms) is how long one dip and return takes, shorter reading as brisk and eager and longer as considered.
A nod is rarely a single dip. Under Nod-to-Nod Variation some arrive as a short run of two or three, narrowing as they go, and a run leaves the head sitting a little lower than it started before drifting back up. Some nods come shallower than others. Turned off, every nod is identical and comes alone, which reads as a loop after about a minute of watching.
What They Sit On¶
Nods need something underneath them. With the head's idle drift taken away a character goes rigid between nods, which reads worse than a little too much motion, so Idle Head Sway (×) under Underlying Sway sets how much of that drift still runs. It is the same figure as While Listening (×) under Idle Head Sway, and Sway Adjustment says whether this one scales that one, keeping each character's own resting calm, or stands in for it so every nodding character settles at the same amount. Both only apply while the character nods on its own, so they grey out while Nodding is None.
Driving the Head Yourself¶
For a gesture that is not a nod at all, or one you want under your own control frame by frame, the Eyes driver takes a rotation directly. Each frame the gesture lasts, hand it the rotation the head should take on top of everything else and how strongly it counts, from nothing up to full. Each push is used for that frame alone, so this is a call per frame while the gesture plays rather than one call that runs on its own.
public void PushHeadGesture(Quaternion offset, float weight)
| Parameter | What it does |
|---|---|
offset |
The rotation the head takes this frame, on top of everything else |
weight |
How strongly it counts, from 0, nothing, up to 1, full |
void Update()
{
if (!turningAway) return;
eyes.PushHeadGesture(Quaternion.AngleAxis(angle, Vector3.right), 1f);
}
To ask for a nod rather than animate one, there is a better way, and it gives you everything on this page for free. See Asking for a Nod.
The gesture rides on top of the sway and the head's own motion, and needs neither Idle Head Sway nor nodding switched on. While your code is sending gestures the character's own nods stand down, so the two never double up.
Head Leveling¶
The head rights itself against the body. A real head stays near upright as the body leans, and only a little of the lean reaches it, where a head fixed to the spine would tip with every lean. The same holds when a breath lets the body slump, and the head keeps its aim.
It has a switch for each moment. Under While Looking, Simple can keep the head level while the character looks at something, and Biomechanical levels the head itself. Under While At Rest, the switch sits above the rows that shape how the head levels, which the Simple engine's looking leveling reads too. Column Gain (%) is how much of the body's lean the head undoes. A real head undoes most of a lean. Lower it for a relaxed character whose head settles with the body, and raise it for a watchful one who keeps looking out at the world. Hold True Vertical (%) is how much the head keeps plumb when the body leans in on purpose. At none it settles into that lean with the body, and higher keeps it steadily upright, a more composed, alert character. Gaze-Up Bias (°) tilts where level sits, for a slightly lifted carriage. Lean With The Body makes the leveling settle onto a lean the body took on purpose rather than fighting back to upright, and only the body's own leans count, never one written by an animation.