Skip to content
/a/ FaceCue Performance Studio

Release Notes

What each version of FaceCue changed, newest first. The version numbers are the ones the Asset Store shows, and the package carries the same record in brief as CHANGELOG.txt at the root of the FaceCue folder.

Current Release Pending Release Older Release Superseded

Current Release is the version the Asset Store gives you today. Pending Release is finished and submitted, and reaches you once the Asset Store approves it. Older Release was released and has since been followed by a newer one. Superseded was submitted and then replaced by a newer submission before it came out. Nothing in it is dropped: it ships as part of the version that replaced it, so its entry stays here and the next entry lists what changed on top of it.

Added something new Changed something that already existed Fixed something that was wrong

Changes are grouped by the part of FaceCue they touch. A group named after a chapter links to it, so anything there can be read about in full one click away.

If an entry does not say what you needed it to, ask on the Discord or by email at support@facecue.net.

1.1.0 Pending Release

The version breaks new ground. A character looks away while it thinks. Laughs, hums and the other sounds a voice makes that are not words are handled properly, or skipped, rather than left to be read as words. Live Amplitude has been tuned and tweaked, so even out of the box it stands beside the baked mode, bringing it up to the standard of the rest of FaceCue. Spanish baking gained new dialects to choose from. And FaceCue costs less than it did in total, and uses less of the main thread to do it.

A character that looks away while it thinks. The most visible thing a thinking person does is look away, and a character does it now. A moment or a phrase marked as thinking in its lines makes it glance away from whoever it is talking to and come back, without letting go of them, with the head joining in a little on a bigger look. Mostly the look goes up, sometimes down, and now and then to one side, the same side each time for a given character, like a habit. Your own code can ask for the same look at a moment no line marks, and a cutscene can place one exactly, on a Timeline track of its own.

Laughs and hums, played as themselves. A recognizer hears a laugh as near silence and a hum as the letters it is spelled with, so both used to pull the lip sync away from the audio. Now a laugh written into a transcript plays on the mouth as laughter, taking its rhythm from the recording so that a slow rolling laugh and a quick giggle each move the way they sound, and carrying an emotion so the rest of the face takes part. A hum plays as a held sound with the lips shut. The baker finds them where a transcript spells them out as well as where it tags them, in the spellings each language uses for them.

And the rest, left out. Not everything in a script is meant to be said. A sigh, a cough or a breath can be marked as a sound the mouth rests through, so the words beside it keep their places. And the stage directions a script writes in brackets, a [laughs] or a (to Judy), can be taken out before the line is read, or turned into the sound they describe, rather than spoken aloud as words the actor never said.

Live Amplitude stands beside the baked mode. The mode that follows a voice's loudness without a bake has had the tuning it needed to stop looking like the cheaper option. It leads the voice now rather than trailing it, the way a real mouth starts a shape just before the sound arrives, and the head, brow and breathing movement lead with it. The spread of mouth shapes across a line looks like the spread a baked line produces. The settings it ships with hold for most voices, and there are a few more controls for a voice that wants closer work.

Spanish, by dialect. Spanish is spoken differently across the regions that speak it, and some of those differences reach the mouth. A speaker from Spain puts the tongue between the teeth for the c in "cielo", and in Buenos Aires the ll of "calle" pushes the lips forward in a way it does not in Mexico City. A Spanish line now bakes to a dialect you choose beside the language, and a transcript tag can name one so a line changes dialect partway through without leaving its language.

Faster, and mostly off the main thread. This came in two halves. The first is that FaceCue now skips work it can prove would change nothing, which cuts the cost itself rather than moving it. The second is that every character is calculated on worker threads, in parallel with the main thread, and written to the rig just before the engine skins the meshes.

Together, on a desktop machine, a crowd of eight high-fidelity characters costs about 50% less than it did, and an active character about 20% less. Of the cost that remains, 40 to 55% runs on worker threads instead of the main thread. If your own code is already busy late in the frame, more of the calculation finishes inside that work, and we measured 73%.

Standalone VR gains the most. On a Quest 3, 55 to 75% of what FaceCue costs the main thread moves off it. A character in a scene holding 90 fps moves 64%, and with SpaceWarp on, 69%.

These are all CPU figures. If the GPU is what holds your frame rate down, none of this will raise it. What it gives you is CPU time to spend elsewhere, on animation, physics, AI or the rest of your own code.

Figures from Windows and Quest hardware, in built players. Your rig, your platform and your scene move them, some by a lot, so measure your own project before budgeting against them.

The Cue Baker

  • AddedLaugh tags, so a laugh written into a transcript plays on the mouth as laughter. Laugh Tags covers them.
  • AddedHum tags, so a hum plays as one held sound with the lips shut. Hum Tags covers them.
  • AddedA sound tag, for a sigh, a cough or a breath the mouth rests through. Sound Tags covers it.
  • AddedStage directions written in brackets can be taken out of the line, or played as the sound they describe, instead of read aloud. Stage Directions covers them.
  • AddedA cognitive tag can mark a single moment instead of a phrase, written on its own as <Think/>.
  • AddedSpanish dialects, chosen beside the language or named in a transcript tag: Spain, Latin America, River Plate and Caribbean. Language Support covers them.
  • AddedBaking, transcribing and synthesising from code, starting from the windows' own saved settings. Baking from Code covers it.
  • ChangedA Spanish line bakes to Latin America unless you pick another dialect.
  • ChangedLaughs and hums a transcript spells out as words are played rather than said, which Laugh Detection and Hum Detection can turn off.
  • ChangedThe audio-only routes read a clip's transcript for the emotions, thinking and laughs written into it, in a folder bake as in a single one.
  • ChangedThe Cue Baker remembers its Recognizer and Multilingual Mode when it is closed and opened again.
  • FixedFixed issues where many Spanish words were baked with the wrong sounds, including several hundred that lost an s the speaker says.
  • FixedFixed issues where a word written with an apostrophe, a typographic quote or separate accent marks was baked from its spelling instead of its pronunciation.
  • FixedFixed issues where a statement was baked as a question, or a question was not read as one, across every language the baker supports.
  • FixedFixed issues where numbers and decades written in various ways, such as "1980s" and "1'000", were baked wrongly.
  • FixedFixed an issue where a stutter written with a hyphen, such as "W-what", was baked as the letter's name.
  • FixedFixed an issue where the Cue Baker forgot the chosen dialect whenever its window regained focus.
  • FixedFixed an issue where speech synthesis read a laugh tag out loud.
  • FixedFixed issues in Recognize Speech where Specialized could write no transcript in any language but English, and where overwriting a clip's row in an existing index kept the old one.
  • FixedFixed an issue where the pauses in a line were baked as a very low voice, which pulled the line's pitch down and added brow lifts that did not belong.

Speech

  • AddedLive Amplitude leads the voice, so a mouth shape starts just before its sound, and the head, brow and breathing movement lead with it.
  • AddedA Voice Level on the Speaker Context, so the live modes read loudness against the character's own voice. Suggest Voice Level fills it in from a sample clip.
  • AddedLaughs on the mouth keep an opening of their own, so a quiet laugh still reads on the face. Laughs covers it.
  • AddedA speech setting can be brought into the line playing now, rather than waiting for the next one.
  • ChangedOn the web, Live Amplitude reads a line the way it does on every other platform, and costs several times less a frame doing it.
  • ChangedA live mouth keeps its shape while its line's audio is paused, the way a baked line does.
  • ChangedPicking the Neutral delivery style removes the character's style, returning what that style painted to its shipped values.
  • FixedFixed an issue where the mouth could flicker for an instant between two sounds that use the same shape.
  • FixedFixed issues where the mouth followed the voice slightly behind in the live modes, and where a slow frame at the start of a line left it ahead for the whole line.
  • FixedFixed an issue where a rounded sound and a plain sound sharing a mouth shape could take on each other's rounding.
  • FixedFixed an issue where changing a speech setting while a line played did nothing until a different line started.
  • FixedFixed an issue where starting a Live Viseme line could stall the frame on some Windows machines.
  • FixedFixed an issue where Live Viseme with the Meta recognizer fell back to Live Amplitude in the editor outside play mode, until play mode had been entered once.

Core

  • AddedEvery character is calculated on worker threads, with Solve and Apply At choosing where the work runs and where in the frame it lands. Solve Schedule covers them.
  • AddedA call that finishes a character on the spot, for a script that needs this frame's result the moment it asks. Script Coexistence covers working alongside FaceCue.
  • AddedA call to tell FaceCue a bone was given a new parent while the character was running.
  • AddedA character can look at another FaceCue character's eyes, mouth or body, and keep following that part as the other one moves.
  • AddedYour code can say which character a listener is listening to or waiting on, and read it back.
  • AddedGenerated Frames, for how a character keeps time while Application SpaceWarp generates frames on a Quest.
  • AddedFrame Drops, so a character keeps moving evenly when the game falls behind and its frames come unevenly.
  • AddedSmoothing Range, so a character too far from the camera for smoothing to show skips its work, with a range for a VR headset, a desktop or laptop, and a phone or tablet.
  • AddedA warning when a Smoothing Range, or a Rate Table cell turning smoothing off, is set close enough to the camera for a character's steps to show.
  • AddedYour code can ask whether a character's result is written by the time the frame's LateUpdate calls are done, for a script that follows something FaceCue moved.
  • ChangedA look target is read once a frame after everything in the scene has moved, so two characters looking at each other both land on the other's pose of that frame.
  • ChangedThe Resolver's events are raised once FaceCue has finished the character for the frame, so a handler reads the finished result.
  • ChangedA bone only your own script pushes eases back to FaceCue a moment after the pushes stop.
  • ChangedTalking Detection moves from the FaceCue Brain to the Speaker Context.
  • ChangedFaceCue's own internals are no longer part of its public API. Everything a game is meant to call is unchanged.
  • ChangedThe Rate Table counts a character's distance through the camera's lens, so a camera zoomed in on a far character keeps it at a nearer band's rate. Status shows both distances, and your code can read the counted one.
  • ChangedWith several Custom Cameras, the one that shows a character's face biggest gives its distance.
  • ChangedVisibility Freeze leaves a character's face running while its head is within a metre of the camera, whichever way the camera faces.
  • FixedFixed an issue where a blendshape shared with your own code through a Sampled channel was read back as another writer's value.
  • FixedFixed an issue where a slow animation under a held look could freeze in place or drift.
  • FixedFixed an issue where a held hand sat off its mark with Display Smoothing on.
  • FixedFixed an issue where a look taken back while the head was easing home snapped to the new look instead of easing into it.
  • FixedFixed an issue where a listening character's nods drifted further out of step from one run to the next.
  • FixedFixed an issue where a character switched off and on again grew its memory a little on every cycle.
  • FixedFixed an issue where a look target at an extreme position made the gaze restart every few frames.
  • FixedFixed an issue where FaceCue did not compile on Unity 2021.3, the earliest version it supports. On 2021.3 the Measured Light Source example cannot take a reading on request.
  • FixedFixed an issue where importing FaceCue on Unity 2021.3 or 2022.3 turned GPU acceleration off for the first editor session.
  • FixedFixed an issue where a character standing on the edge of a Rate Table band switched back and forth between the two bands.
  • FixedFixed an issue where, on a VR headset, Visibility Freeze could stop the face of a character in plain view.

Eyes & Gaze

  • AddedLook-Aways on the Eyes driver, so a character glances away while it thinks, on a marked moment or phrase or when your own code asks. Looking Away covers it.
  • AddedBlink Chance on a look-away's shape, the odds of a blink as the eyes leave and as they come back.
  • AddedA nod your code asks for reports whether it played, and if not, why. The character also says when it last nodded.
  • ChangedA thinking moment marked on its own lasts as long as the look away it brings.
  • FixedFixed an issue where a character with Idle Head Sway switched off never nodded and never played a head gesture.
  • FixedFixed an issue where a character whose idle animation posed its eyes did not aim them at its look target.
  • FixedFixed an issue where, with the Biomechanical gaze at a low Calculation Rate, the head wobbled as it followed a moving look target.
  • FixedFixed an issue where, with the Biomechanical gaze, a look big enough to turn the head swung past its target and drifted back.
  • FixedFixed an issue where, with the Biomechanical gaze, looks fired close together could each aim to one side of their target.

Timeline

  • AddedThe Cognitive Events track and its Thinking clip, which makes a character think for the length of the clip and look away, with the look taken from the character or set on the clip. Cognitive Events covers it.
  • AddedLook Away on the Thinking clip, off for the thinking without the look-away.
  • FixedFixed an issue where an Emotion or Phoneme clip at the end of a Timeline stayed on its last moment instead of ending the way it does anywhere else.
  • FixedFixed an issue where pausing a Timeline inside an Emotion clip dropped its emotion and started it again on resume.

Face Rig Designer

  • AddedA Loudness Range on amplitude rig maps, the range the bands span around the voice's usual loudness.
  • ChangedOneClick's amplitude maps give each mouth shape its own stretch of loudness, so the spread across a line looks like a baked line's, and Auto picks them on every family.
  • ChangedThe OneClick Wizard keeps the maps and drivers a character already has unless you choose otherwise, with a picker on every row and Set All for a whole column.
  • FixedFixed an issue where switching an amplitude map's Distribution to Custom moved the bands you had set.
  • FixedFixed issues where the OneClick Wizard's Undo Setup left maps behind, and its Verify step cut off the details of each part of the face.

Across the Editor

  • AddedThe Solve Schedule group on the brain, for where a character's work runs.
  • ChangedFaceCue's inspectors draw faster and make far less garbage, so play mode hitches less often with one open.
  • ChangedConsole warnings and errors share one layout and say what happened, why, and what to do, and several that appeared without cause no longer do.
  • FixedFixed an issue where the Speech Driver's settings sections could spill over the rows below them.
  • FixedFixed an issue where the OneClick wizard asked which family to use when one of them was clearly the better match.

Runtime Demo

  • AddedA Voice Level dropdown under Live Audio Analysis, for every character on stage.
  • ChangedAkari reads each line's own loudness, so her Live Amplitude mouth looks alike across the demo's languages.
  • FixedFixed issues where the Interactive Demo did not compile on Unity 2021.3 with the Universal Render Pipeline, and logged an error as a WebGL build loaded.
  • FixedFixed issues where the demo's camera aimed at a character's head from before FaceCue moved it, and eased further on some frames than others.
1.0.2 Superseded

A round of correctness across FaceCue rather than new ground. Almost every entry here is an existing feature finished properly. Two emotions that overlap now hand over cleanly, and a character no longer ends up more worked up than any single feeling would make them. A line cut off partway through reads as speech rather than a glitch, whether it runs into the next line or was skipped. Synthesized speech gains coaching, so a character can sound native in a language its own voice does not speak. One practical change: FaceCue's windows now open from Tools ▸ FaceCue rather than a menu of their own.

The pupil's answer to light is the largest part of it, and the part that changed most. Reacting to light worked before, but how convincing it looked depended on how much of the reaction you wrote yourself. FaceCue handles it now: a pupil sits wide in a dark room, at the size you authored in an ordinary one, and small in bright light, so a character looks like they are in the room they are standing in. A light coming on suddenly makes them flinch, and a light that keeps shining makes them keep squinting. Those are two different responses, and they now look like it.

Reading the light in the first place is still yours to supply, and the examples that do it have gone from something to learn from to something you can ship as it is. They see what the render sees, so a light behind a wall no longer reaches the eyes, and they can be told what your darkest and brightest scenes are meant to mean. They are still examples, in your project where you can change them, and they read URP's lights only.

The Cue Baker

  • AddedLanguage Coach, so a voice speaking another language pronounces it like a native speaker. Language Coach covers it.
  • AddedFaceCue coaches every language speech generation supports, and your own voices can coach too.
  • AddedA voice records its native language, set when the voice is created.
  • AddedA voice with no native language is never coached.
  • AddedThe status line and the audio's provenance record show which coaching a line received.
  • ChangedA stronger emotion tag inside a milder one of the same emotion plays as a peak instead of merging. Transcript Tags covers it.
  • AddedTwo tags of one emotion can partly overlap, paired with their closing tags by an id.
  • AddedKeep & Iterate on Existing Files for a single clip, saving the new clip beside the existing one.
  • ChangedThe built-in voice is named Male Sample, with a warning that it is for trying FaceCue out.
  • ChangedCross-Language Aggressiveness offers three settings instead of six.
  • ChangedUpdating a speech pack in Setup takes effect without restarting the editor.
  • FixedFixed an issue where the same voice and seed could give slightly different results from one line to the next.
  • FixedFixed a misleading Cross-Language Aggressiveness warning.
  • FixedFixed a bug that kept diphthongs from baking properly.
  • AddedA baker warning when a closing tag's id matches no open tag, or two open tags share one.

Face Rig Designer

  • FixedFixed an issue where the Face Rig Designer's previews could differ from what the character plays.

Core

  • AddedReturn Released Bones To Rest, which eases a bone FaceCue lets go of back to where it started.
  • FixedFixed an issue where FaceCue allocated memory every frame.
  • FixedFixed an issue where Display Smoothing did not reach the head and neck of an animated character.
  • FixedFixed an issue where the face could move unevenly on displays such as 72 and 90 Hz headsets.
  • FixedFixed an issue where the face could jump for a frame when its rate changed.
  • FixedFixed an issue where IK Compensation could swing a held arm's elbow away from where the animation put it. The solver call behind it changed shape, which breaks 1.0.0 and 1.0.1 code that called it directly.
  • ChangedIK Compensation's Auto Setup fills an empty Torso Reference from a humanoid rig's chest.
  • FixedFixed an issue where, with the Resolver's Lower Scope on Per Region, speech's resting mouth could hold emotions back between lines.

Speech

  • AddedA choice for what a line cut short while still speaking does: wind down, or let go cleanly. When a Line Is Cut Short covers it.
  • AddedYour own code can make that choice for one moment.
  • AddedUnder Live Viseme, closures land more convincingly, and new settings shape how they arrive and let go.
  • FixedFixed an issue where the mouth could jump when a line started over another one or stopped before its first sound.
  • FixedFixed an issue where, under Baked Phoneme, the mouth could move unevenly on displays such as 72 and 90 Hz headsets.
  • FixedFixed an issue where, under Baked Phoneme, some phonemes would not coarticulate properly next to closures.
  • FixedFixed an issue where, under Live Viseme, the mouth did not close fully where a word needs it, and could move roughly around the closure.
  • FixedFixed an issue where, under Live Viseme, the first moment of a clip was not recognised, so a line starting straight on a word could lose its opening.
  • ChangedUnder Baked Phoneme, a new character now closes its lips however quietly the word is said.
  • ChangedPlaying cue data from code is done through the brain's PlayPhonemes calls, and the two lower-level calls are no longer public. Breaks 1.0.0 and 1.0.1 code that called them.

Emotion

  • ChangedTwo different emotions carrying the same feeling no longer add up in how worked up the character is.
  • AddedA Mental State group on the Emotion driver, setting how emotions combine in what the eyes read. Mental State covers it.
  • ChangedThe Residual Mood behaves like any other emotion the character carries.
  • FixedFixed several issues with how the Residual Mood takes over from a line.
  • ChangedAn emotion played from your own code, and a Timeline emotion clip starting, clear a standing Residual Mood, the way a new line does.
  • AddedEither can play over a standing mood and leave it there, or leave a mood of its own. From Your Own Code covers it.
  • ChangedA handle's FeedResidual is renamed LeaveResidualMood. Breaks 1.0.0 and 1.0.1 code that called it.
  • ChangedA demeanor palette that replaces the Residual Mood also holds it back from the character's mental state.
  • ChangedAn emotion held longer than it was shaped for keeps each expression's own timing.
  • ChangedScale By Felt Strength moved from the brain to the Emotion driver's Mental State group. Its property moved with it, which breaks 1.0.0 and 1.0.1 code that set it.
  • ChangedExpression Blend's Weighted Average keeps each expression at its emotion's strength.
  • AddedReading and switching an Emotion driver's Layered or Solid source from code.
  • FixedFixed several issues where overlapping emotions did not blend the way the chosen blend describes.

Eyes & Gaze

  • ChangedThe pupil rests at the size the light around the character calls for, and the lids squint at bright light.
  • AddedThe light a character reads is addressable and visible, with a Light group in the Eyes driver's Internal State.
  • AddedProtective Blink, a blink as something comes at the face fast. On by default. Protective Blink covers it.
  • ChangedHead Retraction starts at zero, and Retraction Shape chooses a chin tuck or a tilt back. The setting was renamed, which breaks 1.0.0 and 1.0.1 code that set it.
  • ChangedHead & Neck Leveling's Column Gain takes back the share of a lean it names, so heads stay more upright.
  • ChangedHold True Vertical acts only on a lean the body takes on purpose. Head Leveling covers it.
  • FixedFixed several issues with Head & Neck Leveling holding the head level.
  • FixedFixed an issue where, under the Biomechanical engine, something moving straight toward or away from the face could set off unwanted eye movements.
  • FixedFixed an issue where switching a character's light source could read as the light changing.
  • FixedFixed an issue where switching a character into the Biomechanical engine mid-scene could make the head and body jump.
  • ChangedThe Level Reference setting is gone. It and its recapture call are removed, which breaks 1.0.0 and 1.0.1 code that used them.

Timeline

  • AddedLeave Residual Mood on the emotion clip, so a clip can leave a mood the way a spoken line does.
  • ChangedThe emotion clip draws each expression with the rise and fall it actually plays.
  • FixedFixed an issue where stopping a Timeline in the middle of an emotion clip ignored the character's Timeline Clip interruption setting.

Integrations

  • AddedThe light source examples can be told what your darkest and brightest scenes are meant to mean.
  • FixedFixed several issues where the light source examples counted light differently from the render.
  • AddedThe light source examples can leave lights out, by layer or one by one.
  • AddedYou can see what the light source examples measure while setting them up.
  • ChangedThe Simple Light Source example is one slider from total darkness to a light in the eyes.
  • FixedFixed an issue where the light source examples measured from the wrong direction on some rigs, MetaHuman among them.
  • FixedFixed flickering readings and needless memory allocations in the light source examples.
  • ChangedHanding a set of lights to the Analytic Light Source example stops its own search of the scene.

Across the Editor

  • ChangedFaceCue's windows and commands open from Tools ▸ FaceCue instead of a menu of their own.
  • ChangedThe Listener Context shows the Eyes driver's Nod Shape and Underlying Sway rows itself, in place of the button that jumped to them. The call behind the button is removed, which breaks 1.0.1 code that used it.
  • ChangedThe Brain inspector remembers which sections you left open for the rest of the editor session.
  • ChangedSmaller corrections across the editor.

Runtime Demo

  • AddedFlash and Shine on the Light Response scenario, a quick pulse of light and a light aimed into the eyes.
  • AddedAn optional Distance dial on the Light Response scenario.
  • ChangedOn the tall layout, picking a scenario switches to it directly, the list opens on the one the demo starts with, and the Light Response dials open with it.
  • ChangedThe demo controller takes one Animator per character, switched together.
  • ChangedAkari in the Interactive Demo reads light through the Analytic Light Source example.
1.0.1 Superseded

A day-one patch, with fixes across FaceCue. Two parts of it are larger than the rest. The first is Live Viseme. The recognizer behind it had shipped close to as it came, and this update brings it up to the standard the rest of FaceCue ships at, in stability and in performance. It is also the first step in spreading FaceCue's work across CPU cores: Live Viseme's recognition is the first piece to leave the main thread, and the work continues. The second is how emotions combine. Emotion blending had shipped in its first form, and this update makes it what it was always meant to be: two emotions hand over without sagging, the same emotion asked for twice never doubles, and how they meet is yours to choose. Alongside both, FaceCue's inspectors are easier to find your way around: each setting sits at the tier its use calls for, carries its unit, and explains itself in a help popup.

The Cue Baker

  • ChangedReorganised the Cue Baker's settings, with the ones you reach for first up front, and cue files come out smaller.
  • ChangedThe Threaded batch mode is no longer offered, since it failed on most projects. A project set to it bakes with Sequential.
  • ChangedA clip named from its text now carries a short tag from the whole line, so two lines that start the same way no longer share a name.
  • ChangedSample Rate, Channels and Per-Class Floors are no longer offered in the Cue Baker's settings.
  • FixedVarious fixes to the Cue Baker, mostly in batch bakes and transcript generation.
  • FixedWith Existing Files set to Skip, Synthesize Speech and Convert Speech saved a second clip beside an existing one under a numbered name. Skip now keeps the existing clip and makes nothing.

The Cue Registry

  • AddedThe Cue Registry window now finds cue files a registry has lost, usually files that arrived without their .meta files, and relinks them by name.
  • AddedOpening a registry with issues now lists what Validate found. Inform Me On, in the window's Settings beside Auto-Validate, chooses which issues do.
  • FixedAn entry whose cue files went missing counted as empty, and could be offered for deletion.
  • FixedMoving many entries to another group or registry took seconds. It is now near-instant.
  • FixedAn empty open group far down the window filled the console with errors.

Face Rig Designer

  • AddedThe Emotion Preview bar now has an Intensity slider, to see how an emotion reads at any strength.
  • AddedRenderer group chips now show whether a group can drive anything on the character, and hovering one lists its renderers and how much of each it moves.
  • AddedBand Layout now draws every Live Amplitude recipe's strength across the loudness range.
  • AddedHovering an expression on the Emotion timeline now lists what the emotion sets for it, and Shift lists every timing value with where it comes from.
  • ChangedCleaned up renderer group settings, in the Face Rig Designer and on each driver, so what each one does reads more clearly. Renderer Groups covers how they work now.
  • ChangedLive Amplitude's main recipe settings now show at the Basic tier, and a recipe's Floor and Ceiling read as one Loudness Band.
  • ChangedHovering the speech pad's base dot now lists every feature that can read the base pose.
  • ChangedA greyed-out OneClick item now says whether the channel has no OneClick source or the brain has no character.
  • ChangedWith Eye Gaze on Bone, the look recipes' Eye Gaze part is locked off and warns when it holds shapes.
  • ChangedImproved setup guidance and help for Speech, expressions and Live Amplitude.
  • FixedLoad OneClick, New Map and Populate from OneClick came up empty or wrong on a solid emotion map.
  • FixedA bind pinned to the catch-all group missed renderers added later, and reached nothing when the group listed none.
  • FixedA renderer group's colour could not be changed on Unity 6.
  • FixedVarious display faults in renderer group editing, where chips, dots and menus could show the wrong state, and boxes and labels could clip or overflow.

Core

  • AddedThe listener side now announces each emotion a listening or awaiting reply demeanor picks, so your own code can react in time with the face, such as a lean or a shift of weight. Reacting to a Demeanor covers the events.
  • AddedA listening character now gives the small nods a listener gives while someone else talks. Nodding, on the listener side, switches them on, and the Eyes driver's Listening Gestures shapes them. EyesDriver.Nod plays one from your own code. Listening Gestures covers both.
  • ChangedMoved When Animated and Keep Small Movements from the Eyes driver to the FaceCue Brain's Animator Coexistence section.
  • ChangedThe Resolver's Lower Scope now shows at the Advanced tier, so an emotion crowding speech can be eased back without turning on Expert.
  • ChangedThe Resolver's IK Compensation is now marked Experimental, with fuller help on setting it up.
  • ChangedThe Listener Context now takes its speaker from the FaceCue Brain, so the Brain's Speaker Context is the one the whole character uses.
  • FixedA character coming back from Visibility Freeze could throw a large look off balance as it settled.
  • FixedThe Gaze, Mental and Renderer Groups readouts could flicker open and closed and log a console warning.
  • FixedChanging a character's rates from a script during play could stop its blinks, or leave its eyes shut, for a long stretch afterwards.
  • FixedAuto Setup Character warned about IK Compensation's hands on every non-humanoid character without hands assigned. It now fills only the hands that are set up.
  • FixedIK Compensation printed to the Console whenever its effectors switched on or off during play. It now does so only with the Resolver's new Verbose on.

Speech

  • AddedLive Viseme's recognition can now run off the main thread. It is on by default on Windows and Android, Quest included, and available on the other platforms Live Viseme runs on.
  • AddedLive Viseme's voice model can now be warmed up as the scene starts, as a scene of your choice starts, or on the first line that needs it. Scene start is the default. FaceCueRecognizer.WarmUpModel and WarmUpModelInBackground load it from your own code, such as during a loading screen. Loading the Voice Model covers when to use which.
  • AddedLive Viseme now leads each sound when playing from a clip, as Baked Phoneme does. On by default.
  • AddedUnused Live Modes now pauses a live mode the character has stopped using, such as one a fallback line started.
  • AddedThe Speech inspector now warns when a macOS build set to Apple silicon or Universal cannot run Live Viseme on Apple silicon Macs, and says to bake those lines for full lip sync there.
  • ChangedWhen a mode fails to play a line for an unexpected reason, the Fallback Chain now moves on to the next one instead of leaving the mouth still, before the line starts or, for Live Viseme, while it plays. If it steps in while a line plays, the Console logs an error with an FCR code, and we would like to hear about it.
  • ChangedImproved speech console messages, which now name the clip, the character and the mode, explain the cause in plain language, and report each problem once instead of repeating it.
  • ChangedLive modes now follow the audio when a playing clip jumps, from a seek, a scrub or a long hitch.
  • ChangedYou can now author your own components on the speech library, as on the other channels.
  • ChangedIn a pause between words, the mouth now lets go of its last shape sooner, within about half a second instead of several.
  • ChangedThe delivery Style picker now marks Casual, Articulate, Intimate and Projected as Experimental. A character's saved style is unaffected.
  • ChangedA PlayPhonemes line whose time source stops being set now ends as it hands the mouth back, its handle reading IsActive false, instead of staying active until released. A handle also reads false once its character is destroyed. Lip Sync Without Audio covers the calls.
  • ChangedFireReady's parameter is now named visemeIndex. A call that passes it by name as seamVisemeIndex needs updating.
  • FixedLive Viseme and Live Amplitude could lag behind the voice after a pause between lines, and Live Viseme on the main thread could show slightly stale mouth shapes.
  • FixedBaked speech in WebGL builds played without FaceCue's tuned articulation layer. If FaceCue's built-in phoneme data ever cannot be read, the Console now logs FCR-0019, and we would like to hear about it.
  • FixedLive Viseme characters hidden by Visibility Freeze kept using CPU, and could cause a frame spike when they came back into view, most noticeable on standalone headsets.
  • FixedA live mode could leave a faint mouth shape on the face after the character switched to a line in another mode.
  • FixedA clip imported Compressed In Memory with PCM compression was treated as unreadable by the live modes.
  • FixedOn an Apple silicon Mac running natively, Live Viseme failed with an error instead of stepping aside. Its lines now move down the Fallback Chain, and the Console names the platform. Live Viseme supports 64-bit Windows, Intel Macs, Android and iOS, and should run on Apple silicon under Rosetta.
  • FixedA character whose recognizer could not load kept a still mouth. It now moves down the Fallback Chain straight away, and the Console names the fix, including the Microsoft Visual C++ Redistributable on Windows.
  • FixedLive Viseme could briefly repeat a moment of a line's mouth shapes after a hitch or a rate change.
  • FixedThe warning for a Meta viseme source that is not set up now says what the character does instead, and offers a Refresh Integrations button.

Emotion

  • AddedThe Emotion driver's Internal Status now shows Emotion Layers: what residual mood, idle and the demeanors are doing, and how much of each reaches the face.
  • AddedHow emotions combine where they meet on the face is now yours to choose. Emotion Blend decides it for two different emotions, and by default a handover from one to the next now carries across instead of dipping through the middle. Repeat Blend Within and Repeat Blend Between decide it for the same emotion asked for twice, inside one line, clip or set, or from two separate places. Overlapping Emotions shows each.
  • AddedPlay, PlayEmotions and a Timeline emotion clip can each choose their own Emotion Blend and Repeat Blend in place of the character's.
  • AddedEvery handle now raises Finished once what it started has left the face, and a PlayEmotions set with no time source now ends on its own once its last cue has faded, as PlayPhonemes does. A set on a time source still plays until released.
  • ChangedListening and awaiting reply demeanors now pause while the character speaks and come back with a fresh emotion afterwards. Idle now plays at its palette's full strength, and demeanor and idle fades move smoothly.
  • ChangedRenamed the Emotion driver's Window Scaling to Hold Scaling, and Arrival and Release Shape to Rise Curve and Fall Curve, to match the Face Rig Designer.
  • ChangedEmotionDriver.Play now returns an IEmotionPlayHandle, whose SetIntensity changes a playing emotion's intensity without restarting it, and PlayEmotions returns an IEmotionCuesHandle, whose SetWeight fades a whole set. Both replace IEmotionDriveHandle, which is gone, so code that stored either result as IEmotionDriveHandle, or called SetWeight on a single emotion, needs updating. The Handle covers both.
  • ChangedThe same emotion asked for twice never doubles, and a stronger moment inside a milder one now falls back to the milder afterwards.
  • ChangedResidual Mood's Silence Timeout now starts on, so a new character's last mood lets go after a stretch of silence instead of holding until the next line.
  • ChangedScale By Felt Strength now scales each emotion by its own strength, so a faint emotion playing under a strong one moves the mental state less.
  • FixedListening and awaiting reply demeanors showed nothing for some emotions, such as Focused, Confused and Happy, and one could stay stuck on the face when a line started.
  • FixedTwo different emotions playing together from one line each keep their own look on a part of the face they share, instead of the later one taking it over.
  • FixedThe mental state could jump in one frame when an emotion was released while still rising, and, with Scale By Felt Strength on, when one emotion took over from another of a different strength.

Eyes & Gaze

  • AddedA strength that scales a recipe authored in the Face Rig Designer now has a button beside it that opens the designer on that recipe.
  • ChangedPupil Unrest now starts stronger on a newly added Eyes driver.
  • ChangedOneClick now sets up each rig family's lower back, so a torso turn is shared between the chest and the lower back, and the belly breathes on MetaHuman and Daz characters. On rigs with one lower-back bone, it sets up the chest and leaves the belly off.
  • ChangedThe head's motion is simpler to tune, and every character keeps the motion it had.
  • ChangedPushHeadGesture is no longer scaled by a gain on the Eyes driver, and the Listening Gestures Gain row is gone: the rotation and weight you pass are what the head gets. Existing calls compile unchanged. Driving the Head Yourself covers it.
  • ChangedIdle Head Sway's Seed is gone. The FaceCue Brain's Seed Mode alone decides whether a character's sway repeats.
  • FixedThe Simple engine's eyes looked past their target on a character with an Animator, and its head and neck stopped short of the target on a character without one. A turning head could also carry the eyes past a still target, which it no longer does.
  • FixedGaze-Up Bias tipped the head down for a positive value. Positive now lifts the head's carriage, as described.

Breath

  • ChangedThe Breath driver's chest and belly blendshapes are now picked by name from a searchable list, instead of a typed shape index.
  • ChangedEnable Slump now starts off on a newly added Breath driver, as the shipped characters already had it.
  • FixedThe Breath driver's Abdomen Source set to Animator never moved the belly. It now uses every bone between the hips and the chest.

Timeline

  • AddedThe Director Watcher's DSP Clock note now has a Fix button that sets the listed directors to DSP Clock.
  • AddedAn emotion clip now draws the shape its emotion makes across it, and a Cue File clip draws the recording it plays, each emotion in its own colour. The emotion's shape and the expressions under it switch on and off from a clip's or a track's menu, or the FaceCue Clips panel in the Scene view. What a Clip Draws covers it.
  • ChangedPhoneme, emotion and gaze clips are now labelled on their tracks with what they play.
  • ChangedAn emotion clip's ease-in and ease-out are now the emotion's own rise and fall, so it arrives and leaves the way it does on a spoken line. A new clip starts from its emotion's own timing, with Restore Defaults beside it and Refresh From Emotions on the track menu. Neutral is no longer offered on an emotion clip, where it drives nothing.
  • ChangedOverlapping emotion clips are both fully on, and combine by the character's blend settings or by the clip's own Emotion Blend and Repeat Blend, so a handover between two emotions no longer dips through the middle.
  • FixedJumping the playhead out of an emotion clip during playback left that emotion playing over the next one. The Emotion driver's new Interruption setting chooses what happens instead: the emotion clears at once (the default), ramps down, or plays out.
  • FixedA Control track that creates a prefab never drove the Timeline inside it, or matched the characters in it to their audio.
  • FixedAn emotion clip trimmed from its left edge, or played at a faster speed, ended its emotion early, and splitting one left the second half playing nothing.
  • FixedEditing an emotion clip in play mode, such as dragging its Intensity, held the face at the strongest value it passed through.

Integrations

  • AddedA Refresh Integrations button under the FaceCue Hub's integration list.
  • ChangedReset Defines now also sets an integration forced on back to Auto, so the compile it repairs stays repaired.
  • FixedA first build after switching platform could leave out Timeline, Meta OVRLipSync or URP. Switching platform now updates FaceCue's integrations for the new one.
  • FixedA package added through the Package Manager is now picked up without restarting the editor, and removing Timeline, Addressables, URP or Editor Coroutines no longer breaks FaceCue's compile.
  • FixedThe FaceCue Hub could show an integration as Active when the current platform did not compile it in.

Across the Editor

  • AddedHelp popups on every section of FaceCue's inspectors and tool windows.
  • AddedFuller code documentation across FaceCue's public API, shown in your code editor.
  • AddedSettings that worked but had no row now show one, among them the Eyes driver's Gaze Lids switches and the Emotion driver's Default Hold.
  • ChangedEvery FaceCue inspector now carries the Advanced, Expert, Collapse All and Expand All row, and Collapse All and Expand All fold only that inspector.
  • ChangedClearer tooltips and help across FaceCue.
  • ChangedSettings across the drivers are re-tiered, so the everyday controls sit at Basic and the finer ones further in.
  • ChangedMany settings are renamed to say what they do, and values now show their units.
  • ChangedThe FaceCue Hub keeps its drawings large on smaller monitors, with new artwork for the Cue Baker and Cue Registry and a lift on hover.
  • FixedOn a desktop whose monitors use different display scaling, FaceCue inspectors could show leftover fragments of earlier frames.
  • FixedNew Map's Assign To Brain stayed disabled on Baked Phoneme and both Emotion modes.
  • FixedVarious small display faults across FaceCue's inspectors and windows, such as mismatched arrows, a flickering tooltip chip and wrong window titles.

Runtime Demo

  • AddedAn emotion layers panel now shows what the character's residual mood, idle, listening and awaiting reply layers are doing, and how much of each reaches the face.
  • AddedThe Emotion tab's Rise, Hold and Fall now set the next emotion's timing, and its Intensity slider changes an emotion while it plays.
  • AddedGaze settings now switch blinking, ocular drift and pupil unrest.
  • AddedA Theme section on the demo controller, and a link bar with the site logo and the documentation and store buttons.
  • AddedAndroid builds now correct the interface's washed-out colours.
  • AddedA credit file for the demo's voice recordings, which come from LibriVox.
  • AddedA Nodding picker beside the Emotion tab's demeanour palettes sets the characters' listening nods.
  • AddedQuality Levels on the demo controller give each quality level switches to drop the background blur, the glow and the scenery, and set the camera's anti-aliasing for desktop, browser and phone or headset.
  • ChangedReworked the tall layout for phones, with larger text and touch targets, controls within a thumb's reach, and room left for a display's notch and camera.
  • ChangedSelect Features replaces Closure Enforcement with an Articulation picker: Raw, Untuned or Tuned for baked speech, and Raw or Tuned for Live Viseme.
  • ChangedWhile a clip plays, the mode driving it shows green and any mode it fell back past shows red.
  • ChangedReworked the language and clip pickers: the tall layout steps languages on a carousel, each language can carry an icon, and clips read by their full name.
  • FixedSeveral pills, switches and dials showed the demo's own copy of a setting instead of the character's, so a change made elsewhere never showed.

Package

  • ChangedThe package's textures no longer use crunch compression, so importing FaceCue no longer recompresses them.
  • FixedThe third-party notices now name every library and font FaceCue bundles, each with its copyright and full license text.
  • FixedImporting FaceCue, and building a player, raised compiler warnings.
1.0.0 Superseded

The first version. What it includes:

Tools

The Performance