我目前有一个用于MEL的随机对象生成器脚本。我试图将其转换为Python。这是一项家庭作业,我被困在一个特定的部分。我试图为每个轴添加一个随机比例。我继续得到"只能连接列表(不是" str")列出#"。这就是我到目前为止所拥有的:
#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这里是我最后两部分的内容:
//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部分的语法应该如何。感谢您提供的任何帮助。
答案 0 :(得分:0)
rock是一个列表,请尝试
rock = [MC.setAttr((x),random_sx) for x in rock]
在列表的元素上设置attr(这里没有maya)