Synopsis
setSlider(slider=str, value=float, frame=float) |
This command is equivalent to use an animBot slider. It acts on selected keys in the Graph Editor, otherwise on range selected on the Timeline or current frame.
Flags
Name | Argument types | Description |
slider | enum | Sets the slider to be used. Available sliders: kBlendToBuffer kBlendToDefault kBlendToEase kBlendToFrame kBlendToFrameWorldSpace kBlendToInfinity kBlendToInfinityWorldSpace kBlendToMirror kBlendToNeighbors kBlendToNeighborsWorldSpace kBlendToUndo kConnectToNeighbors kEaseInOut kMirrorToFrame kNoiseWave kPullPush kScaleFromAverage kScaleFromDefault kScaleFromFrame kScaleFromNeighborLeft kScaleFromNeighborRight kSimplifyBakeKeys kSmoothRough kTimeOffsetter kTweener kTweenerWorldSpace |
value | float | Sets the value to be applied, -100 is equivalent to use the slider all the way to the left, 100 is equivalent to all the way to the right. Greater values are equivalent to overshoots. |
frame | float | Optional. Sets the frame for sliders with frame pick, such as kBlendToFrame. |
Examples
This is equivalent to use Tweener 1/3:
from animBot import OpenAnimBot as OA OA.setSlider(OA.kTweener, -33)
This will bake keyframes and make a noise within the range selected in the Graph Editor:
from animBot import OpenAnimBot as OA OA.setSlider(OA.kSimplifyBakeKeys, 100) OA.setSlider(OA.kNoiseWave, -100)
This will blend to frame 27:
from animBot import OpenAnimBot as OA OA.setSlider(OA.kBlendToFrame, 100, frame=27)
Making something a little more complex, the command below will blend to ease in and out at the same time:
from maya import cmds from animBot import OpenAnimBot as OA # play with those two values EASING_AMOUNT = 5 MIDDLE_POINT = 30 # 0 to 100 animCurvesMap = {} animCurves = cmds.keyframe(query=True, name=True, selected=True) or [] for animCurve in animCurves: keyTimes = cmds.keyframe(animCurve, selected=True, query=True, timeChange=True) or [] animCurvesMap[animCurve] = keyTimes cmds.undoInfo(openChunk=True) try: for animCurve, keyTimes in animCurvesMap.items(): middlePoint = int(len(keyTimes) / (100. / MIDDLE_POINT)) # select first half firstHalf = keyTimes[:middlePoint] cmds.selectKey(animCurve, time=(firstHalf[0], firstHalf[-1])) OA.setSlider(OA.kBlendToEase, -EASING_AMOUNT) # select second half secondHalf = keyTimes[middlePoint:] cmds.selectKey(animCurve, time=(secondHalf[0], secondHalf[-1])) OA.setSlider(OA.kBlendToEase, EASING_AMOUNT) # reselect keys for animCurve, keyTimes in animCurvesMap.items(): cmds.selectKey(animCurve, time=(keyTimes[0], keyTimes[-1]), add=True) finally: cmds.undoInfo(closeChunk=True)