Search public documentation:
- Introduction to FaceFX
- Installing and Launching the Plug-ins
- Deleting FaceFX Assets
- Creating an FXA File from the Plug-ins
- UnrealEd Setup
- Working with FaceFX
- Getting More Information
FaceFX is a facial animation solution developed by OC3 Entertainment and integrated with Unreal Engine 3.0. All Unreal Engine 3.0 licensees have a license to FaceFX. This tutorial describes how to get FaceFX data from Max and Maya into UE3. It also covers the basics of generating new animations in FaceFX and working with the application. More extensive documentation of the FaceFX standalone product can be found in the attachment at the bottom along with an overview of the differences between the standalone version of FaceFX and the UE3 integration.
The first thing you need to do is install the Max and Maya plug-ins. Even if you have used the standalone version of FaceFX before, you will need to install the UE3-specific FaceFX plugins included in the Binaries\FaceFXPlugins folder of the main UE3 distribution (Note: as of version 18.104.22.168 of FaceFX, the UE3 plugins are identical to standalone native-coordinate plugins except that UE3 plugins autoconvert names with spaces to names with underscores). The plugins should be copied into the appropriate 3D Studio Max, Maya, XSI, or MotionBuilder plugins folder which will look something like: C:\Program Files\Autodesk\3ds Max 2010\plugins or C:\Program Files\Autodesk\Maya2009\bin\plug-ins. If you are using Maya, be sure to copy the Binaries\FaceFX\FxTools\FxMaya\MEL Script\FaceFX.mel file into your default scripts director for easy access. You can also copy the bitmap in the res folder into the plug-in folder. You will need to download these files from the ActorX Wiki page (or use the ones in the Binaries folder) and copy them into your Max or Maya executable directories. Be aware that the FaceFX plugins require the Microsoft Visual Studio 2008 SP1 redistributable to be installed. To launch the Max plugin, go to the Utilities panel on the right, click on the "More" button and select FaceFX from the list. To launch the Maya plug-in, make sure the plug-in is loaded in the Window->Settings/Preferences->Plug-in Manager dialog, then open the MEL script in the script editor and execute the script.
Although this tutorial teaches you how to create FaceFX assets, it uses the OC3_Slade FaceFX asset that comes with UE3 in \UTGame\Content\TestPackages\MatineeTest_Resources.upk. OC3_Slade is already hooked up to use FaceFX and can be used as a sample to get you started. In this tutorial however, we are going to delete the FaceFX Asset so we can start from scratch. To do this, right-click on the Slade skeletal mesh and select Edit using AnimSet Viewer. From the AnimSet Editor, go to the Mesh Tab and find the FaceFX Asset. Hit the "Clear All Text" Button. If there are any FaceFX animation sets that referece the FaceFX asset, you must also dereference them by right-clicking on them, selecting properties, and deleting all text from the DefaultFaceFXAsset field. Now you should be able to delete the Slade FaceFX Asset. Make sure FaceFX Studio is closed before doing this or UnrealEd will crash. From the Generic Browser in the OC3_Slade package, right-click on the OC3_Slade_AMesh_FaceFX FaceFX Asset and select Delete. If you get an error saying that the FaceFX Asset is still in use and referenced by the TransBuffer, you may need to save everything and restart the editor before you can delete the FaceFX Asset. Save the package when you have successfully deleted the FaceFX Asset.
Before diving into FaceFX, you will need to create an FXA file with the FaceFX plug-ins. You can read the standalone FaceFX documentation for screenshots and more detailed information about this, but following the below steps will get you started quickly. To follow this tutorial exactly, you will need to use Maya. All of the functionality is identical in Max, but this tutorial uses the skeletal mesh present in the OC3_Slade package, which was created in Maya. If you are using Max, you will need to use the Slade-Max.max source file attached below to export as a FBX file and then import it into Unreal Editor.
- Open the Slade sample Max or Maya file found in the below attachment and launch the FaceFX plugin.
- Go to the frame that contains your FaceFX "Reference Pose." In most cases, this will be your skeletons bind pose. In Slade, go to frame 0.
- Select all of the bones you want FaceFX to control. For Slade, select all of the bones. Export your reference pose by clicking on the "Export" button in the Reference Pose section of the plugin.
- Batch export all of Slade's poses by clicking on the "Batch Export" button.
- Select the Slade-Batch-Export.txt file included in the attachment below.
- Save your FXA file.
- Assuming you want FaceFX to automatically generate curves for your animation, leave the default selected in the first page of the wizard. To hand animate from scratch, you can select "Do not generate curves" and optionally import an audio file. For silent animations, leave the "Use Sound Cue" checkbox unchecked.
- The welcomeCue sound asset should already be selected because it was selected before you started generating the animation. Click Next.
- The welcome sound file is the only one present in the welcomCue and it should be selected. Click Next.
- Next you can specify an English text file to help FaceFX analyze the audio correctly. Text files can use "text tags" to generate curves in sync with specific words to drive other nodes your Face Graph. Use the following text to create a curve for "Gaze Left and Right" in addition to the speech target, blink, eyebrow, and head movement curves:
- Welcome to Face Ef Ex Studio. Change the animation group from ["Gaze Left and Right" v2= -1 v3=-1 easein=.5 easeout=.5] the actor panel [/"Gaze Left and Right"] on your left for additional sample animations.
- The next dialog allows you to select the language you want to analyze with along with the co-articulation and gesture configuration files you want to use. These configuration files can be found in the Binaries\FaceFX\Configs directory. Use the default setup and click Next.
- Finally, name your animation and click Finish.
- Right click the FaceFX Asset and choose: "Create new FaceFX AnimSet" (This links that AnimSet to that FaceFXAsset
- Open the New FaceFX AnimSet
- Actor->Animation Manager
- Now you should see the group you made in the drop downs
- Put the new group in the Secondary Pane
- Put the group you want to move animations from in the Primary pane
- Select the animations and then click on Move button to move them
- Prepare to wait if you are moving lots of anims (e.g. 1-2 thousand will take some time :-) )
For additional information, check the CHM file posted below. In most cases, the FaceFX Studio application in Unreal is identical to the standalone FaceFX application and the documentation will let you quickly learn the nuances of the application. Some of the main differences between the version of FaceFX in UE3 and the standalone versions are listed below:
- The UE3 version of FaceFX uses a UE3 viewport and therefore does not use the FaceFX Sample rendering engine or the FXR file format
- The UE3 version does not output FXS files to store audio, phoneme lists, etc. All of this data is stored in the FaceFX Asset which is integrated with the UE3 package system.
- The UE3 version of FaceFX uses custom Unreal node types in addition to the standard FxCombinerNode, FxBonePoseNode, FxDeltaNode, and FxCurrentTimeNode. The custom Unreal node types are FUnrealFaceFXMorphNode and FUnrealFaceFXMaterialParameterNode. Check the more advanced FaceFX Tutorials for how to use these nodes.