0
私は現在、MEL用のランダムオブジェクトジェネレータスクリプトを持っています。私はそれをPythonに変換しようとしています。これは宿題ですが、私は特定のセクションで立ち往生しています。私は各軸にランダムスケールを追加しようとしています。私はリスト "(リスト" str "ではない)を連結することしかできません"#。これまで私が持っているものは次のとおりです。MELスクリプトをPythonに変換しようとしています
#to use: my_rock_gen(1, poly_rock1)
#import python libraries
import maya.cmds as MC
import random
#define procedure with number of rocks and name
def my_rock_gen(number_of_rocks=0, rock_name="poly_rock1"):
#loop to generate rocks
for n in range(number_of_rocks):
#start with creating polygon object, basic cube
rock=MC.polyCube (name=rock_name)
#smooth it once
MC.polySmooth (rock, dv=2)
#give random scales
random_sx= random.uniform (.3, 3)
random_sy= random.uniform (.3, 3)
random_sz= random.uniform (.3, 3)
#set random values to scales
MC.setAttr ((rock + ".scaleX"), random_sx)"
私は最後のビットで立ち往生しています。 MELには、最後の2つの部分があります:
//set random scale range
float $random_sx = `rand .3 3`;
float $random_sy = `rand .3 3`;
float $random_sz = `rand .3 3`;
//set random values to scales
setAttr ($rock[0] + ".sx") $random_sx;
setAttr ($rock[0] + ".sx") $random_sy;
setAttr ($rock[0] + ".sx") $random_sz;
$ rock [0]はスクリプトの先頭部分で作成されます。私は構文がどのようにsetAttrの部分に行くべきかを理解できません。何か助けてくれてありがとう。
を設定する
を試してみてください、リストであります先に宣言した。どのように私はそれを追加しますか?私はまた、3つの軸のすべてでランダムな回転を行うためにrock変数を再度使用します。 – JonCathcart
これは、岩の各岩石に同じrandom_sxを設定します。異なる値やもっと多くの設定が必要な場合は、 'for myRock in rock:'ループを使用して、 'myRock'(それをくすぐる、回転させる、ほこりをかけるなど)に何をする必要があれば何でもしてください。私はまだ一般的なPythonの知識を操作して、マヤを使用しませんでした。 –