我对Maya的python中的列表中的字符串用法有疑问。我正在编写一个脚本,用于获取一个选定的对象,然后使用随机的translate,scale和orient属性对其进行100次实例化。脚本本身可以工作并执行它的意思,但是我无法解释如何使用原始对象名称对象进行实例化,然后添加一个以" _instance结尾的后缀#",其中#为原始网格的副本分配1,2,3等。这是我到目前为止所处的位置:
#Capture selected objects, sort into list
thing = MC.ls(sl=True)
print thing
#Create instances of objects
instanceObj = MC.instance(thing, name='thing' + '_instance#')
返回看起来像" thing_instance1,thing_instance2"的结果。
在此之后,我想到对象的字符串周围的单引号导致它只是命名它" thing",所以我试图按如下方式编写它
MC.instance(thing, name=thing + '_instance1'
我猜因为实例使用了一个列表,它不接受字符串的第二次使用为有效并返回连接错误。我尝试过几次重写,最接近的是
instanceObj = MC.instance(thing)
导致列表(pCube1,2,3,4),但缺少后缀。
我不知道从这里到哪里最终会得到一个结果,其中instanced对象用约定命名" pCube1_instance1,pCube1_instance2"等。
任何帮助都将不胜感激。
答案 0 :(得分:1)
目前尚不清楚是否只想使用一个或多个源对象。无论如何
MC.ls(sl=True)
返回字符串列表。并列连接列表和字符串不起作用。所以使用 thing [0] 或简单地
MC.ls(sl=True)[0]
如果您收到错误消息,请始终在问题中包含该消息,这有助于查看错误消息。