FBX SDK Programmer's Guide > Animation > Animation data structures >

# Animation classes and their interrelationships

Here is a UML class diagram showing the relationships between the classes that store animation-related data:

Classes that store animation-related data

- FbxScene: An FBX scene can contain one or more animation stacks. If you do not want animation in your scene or exported to your scene file, then you do not need any animation stacks nor any other animation data.

- FbxAnimStack: The animation stack is the highest level container for animation data. An animation stack is equivalent to one take of animation.

  An animation stack contains one or more animation layers. If you are doing blended animation, you need more than one animation layer; otherwise, you need only one animation layer.

- FbxAnimLayer: An animation layer contains one or more animation curve nodes.

- FbxAnimCurve: An animation curve (often called a function curve or FCurve) affects how an animatable attribute of an FBX object varies with time. In FBX, attributes are implemented as FBX properties.

  An animation curve can be connected to many curve nodes. Accordingly, one animation curve can animate many properties of many FBX objects.

- FbxAnimCurveNode: An animation curve node is the connection point between animation curves and FBX properties. To connect an animation curve to an FBX property, connect the curve and the property to one curve node.

  A curve node can be connected to only one property of one FBX object. Properties such as FbxNode::LclTranslation contain more than one value (X, Y, Z). If you create a curve node by calling FbxAnimCurveNode::CreateTypedCurveNode, you must specify a property of the data type you need, e.g., LclTranslation; function CreateTypedCurveNode() will create a curve node with the necessary animation channels, in this case, channels X, Y, and Z. The curve node will not actually be connected to the specified property, however. See the Animation sample program in <yourFBXSDKpath>\examples\Animation\.

- FbxAnimCurveKey (not shown in diagram): A key (or keyframe) that (typically) marks the beginning or end of an animation curve.
- FbxObject: An FBX object can contain 0 or more FBX properties. Class FbxNode contains the properties that deal with the location of an object as a point in space. Objects that are node attributes (e.g., cameras, meshes, lights) contain the properties that are specific to that node attribute type.
- FbxProperty: An FBX property is strongly typed data that belongs to an FBX object. To animate a scene, animate the appropriate FBX properties (LclTranslation is the most common) contained in the FBX objects that are contained in the scene. For more information, see FBX Properties.

Note

FBX SDK needs animation stacks and animation layers to support blended animation, a feature of Autodesk MotionBuilder, Autodesk Maya, and other applications.

If you are not familiar with blended animation (and related concepts such as blend weight and blend modes), the Maya user documentation has a good introduction.