This section presents the use of the MotionBuilder SDK to control animations, constraints, character poses, etc. Methods on how to manipulate audio and video are also presented here.
Use FBAnimationNode to script animation. Each FBModel contains an animation node.
In C++, animation nodes are created with FBDevice::AnimationNodeInCreate and FBDevice::AnimationNodeOutCreate. To record animation data in a custom device, you must explicitly set the connector publishing mode of your output animation nodes to public. By default, the publishing mode is local, which means that the animation data is not exposed to MotionBuilder and other plug-ins (or devices). To set the publishing mode of a connector as public, pass the value of CNT_PUBLIC as the pType argument to the functions FBDevice::AnimationNodeInCreate or FBDevice::AnimationNodeOutCreate when creating the node.
RecordingInitAnimation executes code after the record button is clicked, before recording. RecordingDoneAnimation executes code once recording ends.
The evaluation engine calls FBBox::AnimationNodeNotify for all of the nodes that need evaluation.
FBPropertyListAnimationNode::FindByLabel. Input or output macro boxes can be set with FBAnimationNode::Label.
Keys can be managed with functions such as FBAnimationNode::KeyAdd, . See MultiLayerKeying.py to see how to create keys on an element. Access the transport controls with FBPlayerControl and FBTake.
If the animation node has an fcurve, you can access it with FBFCurve. See FCurveEditor.py. Use FBFilterManager to manage filters which can be applied to an FCurve or the an animation node.