Facial Editor Tutorial

Overview

This Document explains the process of setting up a head in the Facial Editor for Animation. Be sure that you are using the 32bit version of the editor as the Annosoft functionality has not been compiled for 64 bit platforms.

Basic Head Setup

The Facial Editor View

Open the Editor. Go to View -> Open View Pane and click on "Facial Editor".

Facial Editor

You can arrange the different views which are part of the main editor window by grabbing them on their main bar, and dragging them out of the main window.

Loading the Head Character

From the main tool-bar of the Facial Editor select Character -> Load.

In the file dialog select the file: Game\Objects\Characters\human_male\head.chr.
You need to have the SDK Assets installed to access this character

This loads your head character into the Facial Editor.

Effectors Sliders

In the "Effectors Sliders" view three morphs are showing up. They are called "Brow_lowerer", "Jaw_pusher" and "jaw_dropper_01".

Creating the Expression Library

In the following step you will create an "Expression Library" for the head.

This is where all the basic morph targets could be mixed together to create more complex expressions, like different moods (i.e. sad, happy, angry), or phonemes to use for lipsynch-animation.

Expression Explorer

First create a new folder where the expressions get stored.
Right-click the "root"-folder and chose "New Folder".

Enter the desired name in the text-box that opens and click OK.

Right-click the newly created folder, and select New Expression.

Type in "example expression" and confirm the dialog by clicking the OK button.

This creates an empty "Expression-Container" where all morph targets and their influence to the resulting expression get stored.

Go to the "Effects Sliders" view, and move the weight slider of any morph you want to add to the expression to an appropriate value.
The result is visible in the Preview window.

Once satisfied, right-click on the new expression in the "Expression Explorer" view, select "initialize from sliders" and confirm the following dialog by selecting "Yes".

This adds the morphs which have a value set other than zero to the "example expression" node.

On the right side of the Expression Explorer view, a linear curve is created for each of the morphs which have been added to the expression while initializing it. The displayed weight curves visualize how strong each morph contributes to the resulting shape of the character.

The middle line represents the "zero" value when the expression is animated in the sequence view later on, going up to "+1" for full influence on the right side or "-1" to the left.

Once you are done with creating all the different expressions you need for your character, save the expression library by going to "Expression Library" ? "Save As" in the Facial Editors main tool-bar. Call it "head.fxl", and save it to this folder: Game\Objects\Characters\human_male"

To load the right expression library automatically next time you use this character, a .chrparams file is used to point to the correct library-file for the head.

Create a new empty txt-file, add this line:

<Animation name="$facelib" path="animations\human_male\head.fxl"/>

save it as head.chrparams to this folder: Game\Objects\Characters\human_male

Next time the character is loaded it will automatically use the expression library which is specified in the .chrparams file.

The .chrparams file always needs to be named like the head.chr, and needs to stay in the same folder.

The Sequence View

The "Sequence View" is where you add your expressions or morphs from the "Expression Explorer" to animate them.
Right-click the root-folder (which is there by default) and select "New Folder" from the menu. In the dialog that opens enter "animated expressions" and confirm it.

Highlight the "example_expression" in the "Expression Library" view by left-clicking it. Then right-click on the "animated expression" folder in the sequence-view, and chose the "Add Selected Expression"-command.

This adds the highlighted expression from the "Expression Library" to the "Sequence View".

Now you can start animating the expressions you added by placing keys on its curve, either by double-clicking it, or by using the "R"-shortcut, which places a key at the time-slider's current position.

To save the animation, go to? "Sequence"? "Save As", in the main toolbar of the Facial Editor.

Bone Controls

The Facial Editor also supports bone-driven animations to animate bones from the characters hierarchy inside the Editor.

In the "Expression Explorer", right-click a folder and select "New Bone Control".
Enter "eye_left_horizontal" in the dialog and confirm it.

When the bone control is highlighted, you can see its options on the right side of the "Expression Explorer" view.

Open the drop down-list beside "Attachment/Bone" and select the "eye_left_bone".

In the position and rotation settings below you can define a position offset for an attachment and the axis and its limits about which the expression can rotate the bone.

Enter 30 for the "Rotation Angle" in the right box, which stands for the Z-Axis. This gives the eye-control an overall range of 60 degrees. 30 degrees when the expressions value is at "+1", and -30 degrees when it is at "-1".

Please note that it is very important to use the proper naming scheme. Rotation order is completely dependent on the order in which you create the bone controls; however, since the bones are sorted alphabetically in the Facial Editor, it is important to follow the following naming scheme, where "BoneControlName" is replaced with your name:

"BoneControlName"_1_tX
"BoneControlName"_2_tY
"BoneControlName"_3_tZ
"BoneControlName"_6_tX
"BoneControlName"_5_tY
"BoneControlName"_4_tZ

In order that it is sorted in this way:

"BoneControlName"_1_tX
"BoneControlName"_2_tY
"BoneControlName"_3_tZ
"BoneControlName"_4_tZ
"BoneControlName"_5_tY
"BoneControlName"_6_tX

The naming of the bone controls and the resulting order, by alphabetical order (at least when you have saved and reloaded the .fxl file), will define the rotation order.

Joystick Setup

Another convenient method of animating expressions is by using joysticks. After you added expressions to the sequence view, you can go over to the Joysticks view, and setup joysticks to control their values. Turning on "Edit Layout" in the upper Left corner of the view brings you into edit-mode so you can create new controls by right-clicking in an empty area. While you are in "Edit Layout" mode you can change the shape of the templates by dragging on its sides or corners and arrange them freely in the view. Right-clicking on the template gives you various options to farther change the appearance of the controller like its name, or color i.e;

To activate the joystick, highlight the expression which should be driven by it in the sequence view, right-click on the empty template in the joystick view and select "Set Horizontal/Vertical Joystick Channel" to define which axis should animate the expression.

Now if you move the small white circle a key is automatically set at the current location of the time-slider. Be aware that this also works when you hit the play button, or the spacebar, which could be used to do a quick mouse movement capture session. Slowing down the playback speed can help with that.

After you saved the joystick setup from the main toolbar under joysticks >save as, make sure you also save the sequence because the joystick-setup-file is referred in the sequence file so that the connections to the expressions in the sequence view are maintained.

Conclusion

This concludes the basic requirements to set up a head for facial animation.

To be able to re-use already done expression libraries, or joystick-files and sequences, it is advisable to keep the naming convention for the morphs the same for all your head characters.