Max FaceFX Exporter



 

To launch the FaceFX plug-in from 3D Studio Max, go to the Utilities Panel on the right, click on the "More" button, and select FaceFX from the list.  There is also a FaceFX.ms script file that creates the same GUI as described below, but allows greater control via script.

FaceFX Panel


This panel lets you create, load and save actor (*.facefx) files.

The Normalize Scale checkbox influences how the reference pose and bone poses are exported. Read below for information regarding how to use the Normalize Scale option.

The Reference Pose Panel


The Reference Pose Panel is used to import and export the reference pose. You should include all bones that you want FaceFX to control. For best results, don't include end-effectors or nubs in the reference pose. Only include objects that are actually weighted to the mesh or have children weighted to the mesh. The bones in the reference pose should must have unique names in the scene.

After export, the bones contained in the reference pose are listed, and you are now able to create bone poses from the Bone Pose Panel. If you change your reference pose at any point, you should also re-export all of your bone poses because different bones may be pruned out of the poses now that the reference pose is different.

The Bone Pose Panel


The Bone Pose Panel is used to import and export bone poses. The list of poses in the actor is displayed. Simply go to the frame you want to export or import and click on the appropriate button. The Batch Import and Batch Export buttons will ask for a text file. See the beginning of this chapter for a description of the expected format.

Bone poses are stored based upon how they differ from the reference pose. For this reason, if you change your reference pose, you have to re-export all of your bone poses.

Animations


This window lists the animations in the actor. You can switch between the various animation groups in the actor from the combo box. To import an animation onto your bones or morph-based character, just select the animation, go to the frame where you want the animation to start, and click on the Import button.  The Clean button will clean keys from all reference bones and morph targets in the actor.

Using Scale in Max

3D Studio Max uses scale differently than the FaceFX Sample Rendering Engine. For example, FaceFX does not support non-uniform scale which is commonly used in Max to modify the position of bones in the skeleton. Even uniform scale can make Max content appear distorted in FaceFX. To resolve this issue, the Max plug-in includes the Normalize Scale option. Checking this option affects how the reference pose and bone poses are exported from the plug-in. When checked, the reference pose and bone poses are exported with the scale baked into the position and rotation of the bones. The scale is then set at [1, 1, 1].

If your Max rig uses scale to position bones correctly in the reference pose, you may need to export your reference pose and bone poses with this option checked. This will allow you to preview your content in FaceFX while generating animations and tweaking them. To view those animations in Max, you will have to load the FaceFX file into the plug-in, and overwrite the reference pose and bone poses with the Normalize Scale button unchecked. This will not affect your animation data or face graph set-up, but it will allow the FaceFX Max plug-in to insert keys that are compatible with Max's use of scale.

Changing key controllers in Max

When importing an animation, a bone pose, or the reference pose, FaceFX attempts to convert all bone position, rotation, and scale controllers to Bezier. In some cases this automatic process fails (when Euler controllers are used for example). You can change controllers manually by selecting the bones you want FaceFX to control and typing the following three max-script commands:
for obj in selection do obj.position.controller = Bezier_Position()
for obj in selection do obj.rotation.controller = Bezier_Rotation()
for obj in selection do obj.scale.controller = Bezier_Scale()

Logging information

The Max FaceFX plug-in outputs debug information to the FaceFX_Log.txt file. In Max versions before Max 9, this is located in the Max installation folder. In Max 9 and beyond, this is located in the APP_MAXDATA_DIR directory, which looks something like the following:

C:\Documents and Settings\SomeUser\Local Settings\Application Data\Autodesk\3dsmax\9 - 32bit\enu

Check the log file to view details on the number of bones pruned out of each pose. The FXR exporter outputs debug information to the FxMaxExporter_Log.txt file.

Sample Content

Creating Slade-Max

Known Issues

  • Using Linear position controllers is not recommended because they can produce invalid position data.  This can cause the character or part of the character to disappear as the bones in the reference pose shoot out into space.  FaceFX Studio 2009 recommends linear position controllers in the log, but Bezier or TCB are the preferred position controllers.


Version Number: 
2009