One Clock¶
How the whole face is advanced together, so a performance looks the same at any frame rate, and so you can cut what it costs without changing how it looks.
This is the least visible thing in FaceCue and one of the most consequential. It is the reason a line you tuned on your machine looks the same on a player's.
The Problem It Solves¶
Left to themselves, each part of a face times itself against the frame rate.
That sounds harmless and is not. The mouth is the fastest-moving thing on a face, and fast mouth motion is exactly what suffers: on a high-refresh screen the same line comes out softer, because each part is being asked to advance by a smaller slice more often and the smoothing in each of them eats the difference. The performance you tuned at sixty frames is not the performance somebody sees at a hundred and forty-four.
What FaceCue Does Instead¶
The brain owns one clock and runs one ordered pass per frame, replacing every driver's own timing. The whole face advances against the same time discipline, so what a character does depends on how much time has passed and not on how often the machine happened to ask.
The pass is deliberately split across the frame so each stage keeps its position relative to your animation and your game code. The parts that decide what the character is doing run early, before the animator; the parts that move the face run late, after it. That ordering is why FaceCue composes with animation you have authored instead of fighting it, and it has a page of its own: Working With Your Animation.
This Is Why the Look Is Consistent
With one clock, frame rate stops being an input to the performance. A slow machine and a fast one produce the same face, and a recording made on either matches.
It is also what makes the editor preview worth trusting: the Cue Clip Composer plays a line through the same discipline the build will.
Two Rates¶
The clock has two dials, under Facial Timestep on the brain, and they cost different things.
Calculation Rate is how many times per second the simulation advances: how often the face decides what it is doing. Output Rate is how many times per second the finished face is written to the character. Output never runs faster than calculation, and on a screen slower than either the face writes at the screen's own pace instead.
Both are quality dials, not frame rates. Whichever you pick, the look stays consistent across machines, because the rate is a property of the character and not of the hardware. What changes is how fine the motion is, and what it costs.
Calculation Rate¶
Higher is more precise during fast speech, at a small cost. Lower is coarser on rapid mouth movement. If a character's mouth looks soft on quick dialogue, this is the thing to raise.
The cost is the simulation itself, and it is modest. It does not depend much on the character.
Output Rate¶
This is the dial that costs, and the cost is tied to the character.
Writing the face means moving every blendshape the character is driving. So the cost rises with how many shapes move per second, and the output rate is the multiplier: it moves all of them that many more times a second. A character with a large expressive rig pays more per write than a simple one, and doubling the rate doubles it. It is one of the few costs in FaceCue that varies from character to character, which is why it is worth knowing about.
What the rate buys is visible, and it is worth being plain about how much.
What We Saw
In our tests, an output rate as low as 30 looked smooth and consistent. The gains from 30 up to 120 were perceptible, but not grand.
Approaching 15, the performance stays consistent but starts to read as stop motion. It is still the same performance, every shape landing where it should, just held between writes. If that look suits your game, 15 is a genuinely interesting choice.
Below 15 we would only suggest it for specific optimisation cases, and FaceCue already ships some: the distance policy, off by default, comes with a suggested table that drops distant characters that far, and you can reshape it per character around your own priorities.
Lowering the output rate makes the character coarser everywhere equally, which is the point. It is a cost you set, not one the machine imposes when it struggles.
Output also has a Display setting that writes on a fixed share of the screen's own frames, so each write lands exactly on a frame. It is there for headsets, where a steady beat reads better than a fixed rate the screen cannot divide, and it is covered under Performance.
Freeze Blend¶
The same section holds Freeze Blend (ms), the one setting here that is not a rate.
A freeze stops everything FaceCue contributes. No simulation runs, nothing is written, and the character's facial cost drops to essentially zero. What a freeze does not do is snap. Over this blend the face fades onto the body's own pose while it keeps running, then stops. On the way back it fades in from wherever the body left the head, so a body the animator kept moving is picked up, not snapped to. What a freeze means for your animation is on Working With Your Animation, and what triggers one is below.
Variation¶
Everything in FaceCue that varies, blink timing, idle drift, the small differences between two identical phonemes, is drawn at random, so a performance never repeats itself exactly and a crowd does not move as one.
Where those draws come from is set under Facial Timestep, in its Variation section, as Seed Mode:
- Shared draws from Unity's own random stream, together with everything else in the scene. Two copies of a character interleave their draws in it, so they do not move in step, but the same run will not come out the same way twice.
- Unique, which a new character starts on, gives each character its own stream, worked out from the character itself with nothing to author. A crowd built from one prefab does not blink in lockstep. Stable for a session, not across sessions.
- Custom uses the Seed you type, exactly, so the same character moves the same way run after run. Worth setting for a cutscene you intend to record. Two characters given the same seed move identically.
Making It Cheaper¶
The rates above are what a character costs while it is on screen and close. Two policies on the brain cut that cost by watching where the character is.
Visibility freeze stops a face nobody is looking at. A character no camera can see fades onto its body's pose and stops simulating, and comes back the moment it is seen again. Distance rate spends less on a face the farther it is from the camera, through a table of rates by distance and by what the character is doing, and can stop it entirely far away. Speech is never frozen by distance.
Both are off by default. Switching distance rate on gives you a suggested table to start from, and it is per character, so a hero can keep its rates while a crowd is cut hard.
Both, and the full cost picture, are covered in Performance. The short version is that the output rate is the dial with the most effect, and that a character nobody can see can stop being simulated entirely.