设置随时间变化的随机旋转值(循环时)- Maya Python



我正在尝试每次按新的随机数设置旋转对象。我遇到了一个问题,因为数字不断增加,而不是停留在设置的两个值之间以获得随机数。

def Shake(self,value):
    #Get Rotate Value
    rotVal=cmds.floatField(self.rotFrame, value=True, q=True)
    #Get Start Frame 
    startf=cmds.floatField(self.startField, value=True, q=True)
    #Get End Frame 
    endf=cmds.floatField(self.endField, value=True, q=True)

    # Check if Field is empty 
    if rotVal < 0 or rotVal > 0 :
        #Get a Random Number Between 0 and Rot Val
        randomRotVal = random.uniform(0,rotVal)
        while startf<endf:
            cmds.currentTime(startf)
            cmds.rotate(randomRotVal,randomRotVal,randomRotVal,r=True,os=True)

            cmds.setKeyframe()
            startf = startf + 1

您正在使用 r=True 标志旋转对象,因此旋转是相对的(因此,它们每帧在 0 到 rotval 之间增加一些数字)。 改用a=True标志,数字不会加起来。

最新更新