To start using FaceFX, you only need a single FBX file. It defines your character and the animation defines the targets your character will use to talk. For the easiest setup, use our default character setup. Dragging this file onto FaceFX will automatically set up your character in FaceFX Studio.
Setting up the FBX file
- Frame 0 contains the bind pose, with the face in a neutral position,
- Targets are created on subsequent frames as defined by the Batch Export Text File. Morph targets, bones, and joint attributes used to make each target are keyed on the specified frames.
- Any number of morphs can be combined and keyed at different weights on a single frame to create a target. If you only have one morph target that completely defines the target, just key the single morph at 100% on the specified frame.
- Follow additional guidelines in FBX Ogre Exporter to optimize how the character looks in FaceFX
Drag & Drop Operations
When you drag an FBX file onto FaceFX Studio, the following occurs:
- Ogre files are created for viewing in the preview tab using the FBX Ogre Exporter
- An FXIF file containing FBX joint attribute animation data is exported with any attribute curve information
- The FBX directory is searched for files that match the base_file@animation_name.fbx format. Any matching animations (morph or bone) are added to the Ogre files for use as body animations. The FBX@Animations group is created to assist adding body animation clips to other animations. Make sure these animations have the same FBX export settings as the base FBX file.
- Bone poses are exported for each target in the batch export text file, and any morph targets active at the frame are linked appropriately to the bone pose such that driving the bone pose to 1 exactly recreates the frame from the FBX file. For morph only targets, a bone pose with 0 bones will be created.
- The base FBX file, and all base_file@animation_name.fbx files are monitored. If they change, the user is prompted to sync the FaceFX actor with the source FBX files.
- A basic face graph, workspace and color map are created. The DefaultTemplate.fxt file in the Samples directory is used to define the color map and workspace.
FaceFX will track the FBX files(s) and batch export text file used to generate the character. The path to the batch export text file and the base FBX file are stored in the Plugins->FBX Importer Options described below. If you do not want automatic updates, remove the files listed in the options dialog.
When the files change, the following dialog appears and asks: "Would you like to synchronize your actor?"
Automatically updating can perform any or all of the following actions:
- The render asset is recreated and updated (Note: this does not require permission from the above dialog. When the render asset is changed in the background, the <Default> camera returns to the default position, so use a named camera to preserve your camera position.)
- Any base_file@animation_name.fbx files that have been modified, added or removed are updated in the render asset. After permission from above, the FBX@Animations group is updated to reflect these changes.
- The bone poses and links to morph targets created with the exportframe command are updated according to the Batch Export Text File.
The facefx_poses animation
The base_file@facefx_poses animation is special. If it exists, it is used to define the poses from the Batch Export Text File. If it is not present, then the animation in the base FBX file is used instead. The facefx_poses animation does not need to contain the mesh information from the base FBX file, and it is useful in the following cases:
- You want to distribute a small file that defines the FaceFX targets
- You are tweaking bone poses frequently, and exporting/importing the facefx_poses animation is faster because the mesh information is unchanged.
- You want to use FaceFX to export the file that defines the targets
FBX Importer Plugin
All of the above functionality is controlled from the FBX Importer Plugin, a python plugin. The plugin is responsible for registering callbacks to handle when files are dropped on the Preview tab, and when FaceFX Studio is idle (for automatic updating). All of the functionality is in python and is easily customized.
FBX Importer Options
Use FBX bind pose - In some rare cases, FBX content does not look correct in FaceFX Studio and it can be fixed by checking this box and re-exporting the content. The bind pose stored in the FBX file is used instead of what is on frame 0.
Create FxAttribute nodes - Check this box if you want to create FxAttribute nodes when FBX Attributes are found.
8 bone skinning - If your content uses >4 bone weights per vertex, make sure this box is checked so the content looks correct in FaceFX Studio. Software skinning will occur, which may impact performance on complex characters. If this box is unchecked, skinning is hardware accelerated but all content will be normalized to have only 4 bone weights per vertex.