FBX SDK Programmer's Guide > Animation > Animation Data Structures >

# Migrating to the New Data Structures for Animation

The current FBX SDK animation system is completely redesigned. The data structures in FBX SDK 2010 such as take node, take node container, take info, and others have been replaced with new data structures. The following table explains the differences between the current data structures and the data structures in FBX SDK 2010.

Deprecated class and Data Structure | Current Data Structure and Class | Difference
--- | --- | ---
KFbxTakeclass, Take, Current Take | Animation Stack (FbxAnimStack) | The animation stack replaces the concept of take as the highest-level container for animation. A scene can contain one or more animation stacks. Instead of multiple takes in a scene, now you can use multiple animation stacks. You do not need to use animation stacks or other animation classes if there is no animation in the scene. The current FbxAnimStack class manages the same data as the deprecated KFbxTake class. An animation stack can contain one or more animation layers.
KFbxTakeNode | No equivalent data structure in current SDK | —
No equivalent class or data structure | Animation Layer (FbxAnimLayer) | An animation layer contains one or more animation curve nodes that are connected to the animation curves. The animation stack must have at least one animation layer known as the base layer. For blended animation, more than one animation layer is required.
KFCurve | Animation Curves (FbxAnimCurve) | An animation curve, also known as function curve or FCurve defines how a FBX property (FbxProperty) of a FBX object is animated or different from the default value in the animation layer. The animation curves are connected to the animation curve nodes. The FbxAnimCurve class has similar interface as the KFCurve class.
KFCurveNode | Animation Curve Node (FbxAnimCurveNode) | An animation curve node is the connection point between the animation curves and the FBX properties. To connect an animation curve to an FBX property, you can connect the animation curve and the FBX property to one animation curve node. An animation curve node can be connected to only one FBX property of one FBX object. The FbxAnimCurveNode class is simpler than KFCurveNode class because hierarchies are not needed.
FbxNode::GetGlobalFromCurrentTakeNode function and similar functions that FbxNode and other classes inherited from KFbxTakeNodeContainer | Evaluator (FbxAnimEvaluator) | The current evaluation system provides the same behaviour as the previous one, but is better encapsulated. You can write your own evaluator by deriving from the FbxAnimEvaluator class. See Writing and Using your Own Evaluator.

NoteUsing the deprecated classes and API elements is not recommended. The compiler may display warnings when using the deprecated classes and API elements.

## Exceptions

The FbxTakeInfo object is not deprecated in the current FBX SDK release.

- You can still retrieve animation data from an FBX file (scene) into FbxTakeInfo objects without loading the entire FBX file. See Extracting the Animation Data from a FBX File.
- You can initialize a FbxAnimStack object with the data stored in a FbxTakeInfo object. See FbxAnimStack::Reset().

#### See Also

- Animation Classes and their Interrelationships
- Scene Showing Interrelationships among Data Structures