FaceFX Documentation and support
Nodes can serve three purposes in the face graph:
FxCombinerNodes are the most common type of node. They can have any number of inputs and any number of outputs. Their node function g(y1, y2, y3, …) as described in the chapter Introducing the Face Graph can either be sum inputs g(y1, y2, y3) = y1 + y2 + y3 or multiply inputs g(y1, y2, y3) = y1 * y2 * y3. Combiner nodes do not do anything with the data; they simply pass on and modify values as they flow through the face graph.
Bone pose nodes work just like combiner nodes, because they can have multiple inputs and multiple outputs. The nodes also store bone position, rotation, and scale information for a group of bones. Bone pose nodes are created by the FaceFX Max, Maya, XSI, and MotionBuilder plug-ins or by importing bone poses with the bonepose comand from another .facefx file that has a character with a similar skeleton.
Note: Bone pose nodes that contain rotations should always have min and max values of 0 and 1, respectively. When you load an actor with a bone pose that has rotations different from the rest pose and the minimum is greater than 0 or the maximum is greater than 1, you will get a warning:
Found face graph bone pose node "POSE_NAME" containing bones with rotations but with min(MIN_VALUE) or max(MAX_VALUE) out of range (min > 0.0 or max > 1.0)
In order to fix the problem, make sure all bone poses that contain rotations have minimum and maximum values of 0 and 1, respectively. You may have to increase the number of bone poses in your actor in order to model both positive and negative rotations.
FxMorphTargetNodes are used to drive morph targets. They have an additional parameter called Morph Target Name that is responsible for matching the node up to the appropriate blend shape in Maya or morph target in Max. FaceFX Studio will automatically add FxMorphTargetNodes to your .facefx file if the corresponding Ogre Mesh file contains morph targets. This normally happens the first time you open an an actor in FaceFX Studio. The automatic process will only work if the new nodes do not have the same name as existing nodes.
FxBoneWeightNodes modify bone weight values for driving skeletal animations together with FaceFX. Default Bone weights set in the Actor menu can be overridden by FxBoneWeightNode values on a per-animation basis. An FxBoneWeightNode can control the bone weight for a single bone specified in the “Bone Name” property of the node. FxBoneWeightNodes can drive other FxBoneWeightNodes so that a single curve can turn on or off an entire section of a skeleton. FxBoneWeightNodes can not be driven by any other type of node.
FxMaterialParameterNodes have extra string node properties Material, Pass, and Parameter that can be used to connect them with materials in your game. See Slade’s Red, Green, and Blue nodes for an example of FxMaterialParameterNodes driving attributes in Ogre.
FxAttribute nodes connect with FBX Attributes to exchange curve data between FBX files and FaceFX animations.