Tasks/MirrorPoseOverTime.py
16 def SwitchTake ( pTakeName ):
18 for iTake
in lSystem.Scene.Takes:
19 if iTake.Name == iDestName:
20 lSystem.CurrentTake = iTake
26 lCharacter = lApplication.CurrentCharacter
30 lOriginalTake = lSystem.CurrentTake.Name
36 lEndTime = lSystem.CurrentTake.LocalTimeSpan.GetStop()
37 lEndFrame = lSystem.CurrentTake.LocalTimeSpan.GetStop().GetFrame()
38 lStartFrameTime = lSystem.CurrentTake.LocalTimeSpan.GetStart()
39 lStartFrame = lSystem.CurrentTake.LocalTimeSpan.GetStart().GetFrame()
42 lAnimPoseTake = lOriginalTake +
' mirror ' + str( lSystem.SystemTime.GetTimeString() )
43 lNewTake =
FBTake(lAnimPoseTake)
44 lNewTake = lNewTake.CopyTake(lAnimPoseTake)
48 poseOptions.mCharacterPoseKeyingMode = FBCharacterPoseKeyingMode.kFBCharacterPoseKeyingModeFullBody
49 poseOptions.SetFlag(FBCharacterPoseFlag.kFBCharacterPoseMirror,
True)
52 lCharacter.KeyingMode=FBCharacterKeyingMode.kFBCharacterKeyingFullBody
55 lScene = lSystem.Scene
56 lStop = int(lEndFrame)
57 lRange = int(lEndFrame)+1
58 lTime = lStartFrameTime
59 lStart = int(lStartFrame)
60 lProgress = lRange - lStart
65 lFbp.Caption =
"Mirroring "
66 lFbp.Text =
"over time ..."
69 for i
in range(lRange):
73 while not lPlayer.Goto(lTime)
or timeout:
75 lSystem.Scene.Evaluate()
77 print "Unable to Go to time "+lTime.GetTimeString()
82 poseName =
'CharacterPose_'+str(i)
85 lSystem.Scene.Evaluate()
86 targetPose.CopyPose(lCharacter)
89 SwitchTake(lAnimPoseTake)
90 lSystem.Scene.Evaluate()
91 targetPose.PastePose(lCharacter, poseOptions )
92 lSystem.Scene.Evaluate()
94 lSystem.Scene.Evaluate()
96 SwitchTake(lOriginalTake)
102 lTime.Set(lTime.Get() +
FBTime(0,0,0,1).Get())
105 lVal = lCount / lProgress * 100
106 lFbp.Percent = int(lVal)
109 SwitchTake(lAnimPoseTake)
111 lSystem.CurrentTake.LocalTimeSpan = lSetTimeSpan