使用顺序后缀,cmds.instance看不到的对象名称字符串对maya对象进行实例化

时间:2018-04-24 09:46:20

标签: python maya

我对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"等。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

目前尚不清楚是否只想使用一个或多个源对象。无论如何

MC.ls(sl=True)

返回字符串列表。并列连接列表和字符串不起作用。所以使用 thing [0] 或简单地

MC.ls(sl=True)[0]

如果您收到错误消息,请始终在问题中包含该消息,这有助于查看错误消息。