FBX SDK Programmer's Guide > Welcome to the FBX SDK > What's new/What's changed >

# FBX SDK 2011

New Animation System

The FBX 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).

The animation stack is now the highest-level container for animation. You can think of an animation stack as a stack of animation layers, e.g., Layer0, Layer1, Layer2, ... etc. An animation stack must contain at least one animation layer (Layer0, also called the base layer).

Advantages of the new animation system

- Supports blended animation.
- Allows you to export a scene to an FBX file that contains nothing but animation curves. You can then import the animation curves into a scene that contains the characters or other models to be animated.

The new animation system is more transparent, more consistent, and easier to learn:

- All the new animation classes are FBX objects (subclasses from KFbxObject), and therefore inherit a rich library of member functions.
- The data managed by each class are contained in FBX properties (see FBX properties), which means that you can query, get, and set data using the member functions of KFbxProperty and KFbxTypedProperty.
- Objects connect to each other with OO and OP connections (see Connections), which means that you can query objects to determine their relationships to other objects.
- Animation curves can now be used in an order-independent way. This was not possible in the old animation system.
- Important concepts such as animation stacks and evaluation are encapsulated in classes (KFbxAnimStack and KFbxAnimEvaluator respectively), rather than scattered among several classes.

New Evaluation System

All evaluation can be done with functions of class KFbxAnimEvaluator. These functions replace GetGlobalFromCurrentTake() and all its variants.

You simply query the scene for its evaluator, and then you can query the evaluator for the global or local positions of any nodes, as well as the value of any property, at the specified time.

The evaluation data is now stored in KFbxAnimEvalState, rather than in KFbxNode objects.

Advantages of the new evaluation system

- Reduces the memory used by KFbxNode.
- Allows you to re-use animation data. For example, you can evaluate different times while keeping the evaluation results in buffers that you can manage.
- You can write your own evaluator by creating a subclass of KFbxAnimEvaluator. That’s what we did for KFbxAnimEvalClassic, FBX SDK’s default evaluator.

Scripting with Python FBX

Python FBX is a Python binding for the C++ library of FBX SDK. It allows you to write Python scripts that can use most of the classes and member functions of FBX SDK.

File Format Version 7.1.

The default file format for FBX SDK is now 7.1. This new file format permits smaller FBX files and therefore faster loading and saving of FBX files.

Instancing

If a scene has 50 robots, and the robots are all alike, instancing means that the FBX file needs to store only one set of mesh data for all the robots.

Levels of Detail for Meshes

A new class, KFbxLodGroup, allows you to have different versions of a mesh, each with its own level of detail (LOD).

File Referencing

A new class, KFbxReference supports the file referencing feature in Autodesk Maya.

DLL Distribution

Since version 2011.3 (June 2010), there are both static and dynamic libraries available for the FBX SDK. Versions before 2011.3 are offered as static libraries only.