Skip to main content
Version: 4.0.0

Face Avatar Drive

The Face Avatar Drive functionality allows you to track the position and movements of features on the face in 3D. You can choose to track all features of the face or track only particular features.

face avatar drive demo
note

The following steps use Autodesk® Maya®.

Prepare a Face Avatar Model

Create the base character mesh with a neutral expression, closed mouth (or in the default position you want for the mouth), and open eyes.

In this tutorial, the default position for this character is a slightly opened mouth.

face avatar model

Duplicate the mesh as many times as needed to sculpt all the required blend shapes.

Do not alter the mesh topology.

Translation attribute values on the meshes are acceptable, as shown in the image below, but do not freeze transforms after translating the meshes. The zero position of all meshes should be at (0, 0, 0).

duplicate the avatar face mesh

In-between blend shapes, such as for sculpting the eye blinks, are acceptable. There is no limit to how many in-between blend shapes can be added.

When all expression input blend shapes have been sculpted, add them all as a blend shape node on the neutral base mesh.

First, select all the expression blend shapes, then select the base mesh. The order of selection will affect what order the inputs appear in the blend shape node, and the last mesh selected will be the base object to which the blend shape node is applied to.

With your selection made, go to Modeling mode > Deform > Create > Blend Shape.

select blend shapes

This should result in a single blend shape node on the base mesh with multiple target inputs.

input nodes of selected blend shapes

The easiest way to add any in-between blend shapes is by going to Windows > Animation Editors > Shape Editor.

open the shape editor

Select the in-between mesh. Then right-click the target input you want to apply it to and click Add Selection as in-Between Target.

select add selection as in between target

Under the new in-between node that appears, adjust the value to determine at what weight the in-between shape would apply. In this tutorial, setting the weight value to 0.5 mean that when the input of mouthClose is at 0.5, the in-between shape will apply.

adjust the weights of the blend modes

See how multiple inputs interact with each other.

After the blend shape node is complete, select the base mesh and click File > Export Selection. Follow the general FBX export guidelines, making sure that Animation, Deformed Models > Blend Shapes, and Connections > Include Children/Input Connections are selected.

fbx export options

A correctly exported FBX should look like the image below when re-imported into Autodesk® Maya®.

fbx export result

Import Assets

Download the following face avatar assets:

↓ face_avatar_drive_assets.zip

Import the assets for the alien avatar model by clicking Add Asset > Import > From Computer in the Assets panel.

Set Up Materials

Apply the base color, normal, and MRAO textures provided in the assets to the alienAvatar_MAT material in the Inspector panel.

materials in the assets panel  alien material in the inspector panel

Add a Head Tracker

First add a Head Tracker by clicking the Add button [+] > AR Tracking > Head Tracker in the Hierarchy panel.

add a head tracker object in the hierarchy panel

Now drag the alienAvatar model from the Assets panel to the Hierarchy panel, and nest it under the Head Tracker object. This will ensure that the avatar not only follows the movements of your facial features, but the movements of your entire head as well.

drag and drop the alien model from the assets panel to the hierarchy panel

Turn the Head Occluder off by deselecting the checkbox next to the Head object in the Hierarchy panel. This ensures that your head cannot be seen through holes in the alien avatar, such as its mouth. If you don’t intend to use it at all, you can choose to delete it entirely.

deselect the head object in the hierarchy panel

Visual Scripting

With a face avatar model, you can track the entire face by tracking all blend shapes or only particular blend shapes of the face.

Option 1: Drive the Entire Face

  1. Right-click the Visual Scripting panel to click Add node and select the Face Avatar Drive node.
face avatar drive node in visual scripting
  1. Click the alienAvatar object nested under SkeletonAndRenderRoot in the Hierarchy panel.
select the alienavatar object in the hierarchy panel
  1. In the Inspector panel, find the Deformation component.
deformation node in visual scripting

Click the Add button [+] in the Deformation component label and click Get Deformation to get the Deformation node.

click get deformation in the deformation node
  1. Pass the Update execution into the Face Avatar Drive node and pass the Deformation node as the input.
pass the update execution into the face avatar drive node

The alien avatar should now be tracking your face movements!

face avatar drive demo

Option 2: Drive Particular Blend Shapes of the Face

  1. Right-click the Visual Scripting panel to click Add node and select the Face Avatar Result node.
face avatar result node
  1. Click the alienAvatar object nested under SkeletonAndRenderRoot in the Hierarchy panel.
face avatar result node
  1. In the Inspector panel, find the list of blend shapes under the Deformation component. For this tutorial, use the eyeBlinkLeft blend shape. Click the Add button [+] button to the left of the label for eyeBlinkLeft and select Set eyeBlinkLeft in the dropdown to get the SeteyeBlinkLeft node.
eyeblinkleft node
set eyeblinkleft in the inspector panel
  1. Pass the Update execution into the Face Avatar Result node, the Face Avatar Result execution into the Set eyeBlinkLeft node, and the Face Avatar Result blend shape to the Set eyeBlinkLeft node as the input.
pass update execution to the face avatar result node
note

The mouthClose blend shape channel is not meant to work alone. This channel will only work together with jawOpen. It detects when the jaw opens while keeping the lips closed, so the mouthClose value will never increase over the jawOpen value. The model for mouthClose, on its own, may look like the lower jaw clips through the head. This is because it needs to cancel out the influence of jawOpen on the lips to close them.

body avatar drive model with template

The alien avatar should now be tracking only the selected blend shapes!

body avatar drive model with eye blink

Here is an example of eyeBlinkLeft, eyeBlinkRight, and jawOpen each being tracked by Face Avatar Result.

body avatar drive model