随时间设置随机旋转值(While 循环)- Maya Python
Setting Random Rotation Value Over Time (While Loop) - 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
标志,数字不会相加。
我试图设置每次通过一个新的随机数旋转一个对象。我遇到了一个问题,因为数字不断增加,而不是停留在设置为获得随机数的两个值之间。
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
标志,数字不会相加。