from pyfbsdk import FBSystem, FBModelCube, FBTime, FBTimeWarpManager, FBVector3d, FBPlayerControl
import copy
sys = FBSystem()
def CreateAnimation(pNode):
if pNode.FCurve:
lFCurve = pNode.FCurve
lFCurve.KeyAdd(FBTime.Zero, 0)
lFCurve.KeyAdd(FBTime(0,0,6,0), 90)
if pNode.Nodes:
for lNode in pNode.Nodes:
CreateAnimation( lNode )
lModel = FBModelCube("Cube TimeWarp")
lModel.Show = True
lModel.Visible = True
lModel.Scaling = FBVector3d(10, 10, 10)
lModel.Translation = FBVector3d(10,10,10)
lModel.Rotation.SetAnimated(True)
CreateAnimation(lModel.Rotation.GetAnimationNode())
lModel2 = copy.copy(lModel)
lModel2.LongName = "Cube Compared"
lModel2.Translation = FBVector3d(100,10,10)
lTimeWarpManager = FBTimeWarpManager()
lTimeWarp = lTimeWarpManager.TimeWarpCreateNew( "lTimeWarpName" )
lTimeWarpManager.TimeWarpInitTake( sys.CurrentTake )
lTimeWarpManager.TimeWarpAddToTake( sys.CurrentTake, lTimeWarp )
if lTimeWarp.FCurve:
lFCurve = lTimeWarp.FCurve
lKeys = lFCurve.Keys
lKeys[1].Value = lKeys[1].Value + 5
lTimeWarpManager.ApplyTimeWarp( sys.CurrentTake, lModel.Rotation, lTimeWarp )
lAnimationNode = lModel.Rotation.GetAnimationNode()
lTimeWarpManager.TimeWarpMergeCurveNode( sys.CurrentTake, lModel.Rotation, lAnimationNode, lTimeWarp )
lPlayer = FBPlayerControl()
lPlayer.GotoStart()
lPlayer.Play()
del(FBSystem, FBModelCube, FBTime, FBTimeWarpManager, FBVector3d, FBPlayerControl )