指定された範囲からランダムな量を取得して、指定された軸上のオブジェクトのリストをランダムに回転させたい。これは私が思いついたものです:
import pymel.core as pm
import random as rndm
def rndmRotateX(targets, axisType, range=[0,180]):
for obj in targets:
rValue=rndm.randint(range[0],range[1])
xDeg='%sDeg' % (rValue)
#if axisType=='world':
# pm.rotate(rValue,0,0, obj, ws=1)
#if axisType=='object':
# pm.rotate(rValue,0,0, obj, os=1)
pm.rotate(xDeg,0,0,r=True)
targetList= pm.ls(sl=1)
randRange=[0,75]
rotAxis='world'
rndmRotateX(targetList,rotAxis,randRange)
pm.rotate()を使用しているのは、回転をワールドまたはobjスペースのどちらで実行するかを指定できるためです(私が知る限り、setAttrとは異なります)。問題は、これを実行しようとするとこのエラーが発生することです。
# Error: MayaNodeError: file C:\Program Files\Autodesk\Maya2012\Python\lib\site-packages\pymel\internal\pmcmds.py line 140: #
pm.rotate()の引数を入力する方法と同じである必要があります(引数変換関数に関係するラインエラーPyMelが吐き出すため、これを想定しています)が、私は間違ったことをしました。:/