Tasks/StartKeysAtCurrentTime.py
9 from pyfbsdk
import FBSystem, FBModelList, FBGetSelectedModels, FBTime
13 def FindLimits( pNode, pLLimit=None, pRLimit=None ):
19 for lKey
in pNode.FCurve.Keys:
22 if lKey.Time.Get() < pLLimit.Get():
23 pLLimit.Set( lKey.Time.Get())
26 pLLimit.Set( lKey.Time.Get())
28 if lKey.Time.Get() > pRLimit.Get():
29 pRLimit.Set( lKey.Time.Get())
32 pRLimit.Set( lKey.Time.Get())
36 for lNode
in pNode.Nodes:
37 ( pLLimit, pRLimit ) = FindLimits( lNode, pLLimit, pRLimit )
39 return ( pLLimit, pRLimit )
46 def OffsetKeys( pNode, pDelta ):
52 lKeys = [ lKey
for lKey
in pNode.FCurve.Keys ]
63 lTime.Set( lKey.Time.Get() + pDelta.Get() )
68 for lNode
in pNode.Nodes:
69 OffsetKeys( lNode, pDelta )
78 for lModel
in lModels:
80 ( lLTime, lRTime ) = FindLimits( lModel.AnimationNode )
85 lCurrentTime = lSystem.LocalTime
87 lDelta.Set( lCurrentTime.Get() - lLTime.Get())
90 OffsetKeys( lModel.AnimationNode, lDelta )
93 del( lCurrentTime, lDelta )
96 del( lModel, lLTime, lRTime )
101 del( lSystem, lModels )
104 del( FindLimits, OffsetKeys )
107 del( FBSystem, FBModelList, FBGetSelectedModels, FBTime )