Animation
 
 
 

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.

Animation functionality

Write data

FBAnimationNode::WriteData.

Edit animation

FBAnimationNode::FCurve.

Name or find an animation node

FBPropertyListAnimationNode::FindByLabel. Input or output macro boxes can be set with FBAnimationNode::Label.

Transformation

The FBModel::AnimationNode contains three child transform nodes: Lcl Scaling, Lcl Translation, and Lcl Rotation. Each transform node in turn has three axis nodes, X, Y, and Z.

Keyframe animation

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.

Refine animation

If the animation node has an fcurve, you can access it with FBFCurve. See FCurveEditor.pyUse FBFilterManager to manage filters which can be applied to an FCurve or the an animation node.

Write data

Use FBAnimationNode::WriteData to write to an animation node.