Migrating to the new data structures for animation
 
 
 

The FBX SDK animation system has been completely redesigned.

Take nodes, take node containers, current takes, and FCurves have all been replaced by animation stacks (KFbxAnimStack), animation layers (KFbxAnimLayer) animation curve nodes (KFbxAnimCurveNode), and animation curves (KFbxAnimCurve).

New class Deprecated classes and concepts Comments
KFbxAnimStack KFbxTakeInfo, take, current take

The animation stack replaces the take as the highest-level container for animation.

For animated scenes, you need at least one animation stack. KFbxAnimStack manages the same data as KFbxTake. If you needed multiple takes before, now you need multiple animation stacks.

An animation stack has a stack of animation layers, e.g., Layer0, Layer1, Layer2, ... etc.

No equivalent KFbxTakeNode  
KFbxAnimLayer No equivalent

An animation layer is a container for animation curve nodes.

Unless you are using blended animation, all you need is one animation layer.

This first layer (Layer0 in our example) is often called the base layer)

KFbxAnimCurveNode KFCurveNode

An animation curve node connects one animation curve to one FBX property or channel.

The new class is simpler than KFCurveNode because there is no need for hierarchies.

KFbxAnimCurve KFCurve The new class has essentially the same interface as KFCurve.
KFbxAnimEvaluator KFbxNode::GetGlobalFromCurrentTakeNode and similar functions that KFbxNode and many other classes inherited from KFbxTakeNodeContainer The new evaluation system provides the same behaviour as the old one, but is much better encapsulated. You can write your own version by deriving from KFbxAnimEvaluator. See Evaluating the animation in a scene.

The old animation classes can still be used but have been deprecated (see Avoid deprecated classes and functions), with the following exceptions: