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

# Scene showing interrelationships of data structures

Here is a hypothetical scene showing the interrelationships between layers, animation curve nodes, animation layers, FBX objects and their properties:

The scene has three FBX objects (FBXObject0, FBXObject1, and FBXObject2), each of which have one animatable FBX property (Obj0Property, Obj1Property, and Obj2Property). These three properties have default values a, b, and c respectively; these are default values because they can be changed by curve nodes and animation curves.

The scene has one animation stack that contains three animation layers:

- AnimationLayer0 (the base layer) has only one animation curve node, CurveNode0. This curve node is not connected to any animation curves, so it is not used to apply animation to an object. The curve node is, however, connected to Obj0Property; this means that in AnimationLayer0, Obj0Property’s value of a is overridden by the curve node’s value of aa0.

  In general, in the absence of an animation curve or when ignoring the animation curve, the value of the curve node overrides the value of the property to be animated.

- AnimationLayer1 has two curve nodes:
  - CurveNode1 is connected to Obj0Property and to AnimationCurve0. This means that in AnimationLayer1, the actual value of Obj0Property is neither a nor aa1, but determined by the values over time of AnimationCurve0.
  - CurveNode2 is connected to Obj1Property and AnimationCurve1. This means that in AnimationLayer1, the actual value of Obj1Property is neither b nor bb1, but determined by the values over time of AnimationCurve1.
- AnimationLayer 2 has one curve node, CurveNode3, which connects AnimationCurve0 and Obj1Property. This means that in AnimationLayer2, the actual value of Obj1Property is neither b nor bb2, but determined by the values over time of AnimationCurve0.

Notice that AnimationCurve0 is connected to CurveNode1 and CurveNode3. This means that when the scene is evaluated, AnimationCurve0 will affect two different properties of two different objects in two different animation layers. How this data is evaluated depends not only on the animation curves, but also on the blend mode and the blend weight of each layer.

The FBX animation system gives you a lot of flexibility, but it is your responsibility to ensure that the connections are valid.