This example helps in understanding how the data structures are interrelated in a typical scene.
The example scene in the figure has three FBX objects (FBXObject0, FBXObject1, and FBXObject2), each of which have one FBX
property (Obj0Property, Obj1Property, and Obj2Property) that can be animated. These three FBX properties have default values
of a, b, and c respectively. The data structures are connected to each other through object-to-object (OO) connections and
object-to-property (OP) connections as indicated in the figure.
The example scene has one animation stack that contains three animation layers. The following table explains how the animation
layers and other data structures affect the value of the FBX property.
| Animation Layer |
Description |
Value of FBX Property |
| AnimationLayer0 |
AnimationLayer0 is the base layer, which is connected to one animation curve node (CurveNode0). This animation curve node
is not connected to any animation curves, so it is not used to apply animation to a FBX object. However, this animation curve
node is connected to one FBX property (Obj0Property).
|
In AnimationLayer0, the Obj0Property’s value of a is overridden by the animation curve node’s value of aa0.
Generally, in the absence of an animation curve or when ignoring the animation curve, the value in the animation curve node
overrides the value of the FBX property.
|
| AnimationLayer1 |
AnimationLayer1 is connected to two animation curve nodes: CurveNode1 and CurveNode2.
- CurveNode1 is connected to one FBX property (Obj0Property) and to one animation curve (AnimationCurve0).
- CurveNode2 is connected to one FBX property (Obj1Property) and one animation curve (AnimationCurve1).
|
In AnimationLayer1, the value of Obj0Property is neither a nor aa1, but determined by the values over time in AnimationCurve0.
In AnimationLayer1, the value of Obj1Property is neither b nor bb1, but determined by the values over time in AnimationCurve1.
|
| AnimationLayer2 |
AnimationLayer2 is connected to one curve node (CurveNode3), which connects one animation curve (AnimationCurve0) and one
FBX property (Obj1Property).
|
In AnimationLayer2, the value of Obj1Property is neither b nor bb2, but determined by the values over time in AnimationCurve0.
|
NoteAnimationCurve0 is connected to CurveNode1 and CurveNode3. Therefore, when the scene is evaluated, AnimationCurve0 affects
two different FBX properties (Obj0Property and Obj2Property) of two different FBX objects (FBXObject0 and FBXObject1) in two
different animation layers (AnimationLayer1 and AnimationLayer2). Additionally, how the animation data is evaluated depends
not only on the animation curves, but also on the blend mode and the blend weight of each animation layer. See
Blending Animation for more information on blending.
The FBX SDK animation system provides a lot of flexibility, but it is your responsibility to ensure that the interrelationships
among the data structures are valid.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License