实例化具有顺序后缀的 Maya 对象,cmds.instance 未看到对象名称字符串

Instancing maya objects with a sequential suffix, object name string not seen by cmds.instance

我对 Maya python 列表中的字符串用法有疑问。我正在编写一个脚本,用于获取选定的对象,然后使用随机平移、缩放和定向属性将其实例化 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#')

这个 returns 看起来像 "thing_instance1, thing_instance2" 的结果。

在此之后,我认为对象字符串周围的单引号导致它只是将其命名为 "thing",所以我尝试按如下方式编写它

MC.instance(thing, name=thing + '_instance1'

我猜是因为实例使用了一个列表,它不接受字符串的第二次使用是有效的并且 returns 是一个连接错误。我试过几次重写这个,最接近的是

instanceObj = MC.instance(thing)

结果为 (pCube1,2,3,4) 列表,但缺少后缀。

我不确定从这里到哪里才能得到实例化对象按照约定 "pCube1_instance1, pCube1_instance2" 等命名的结果。

如有任何帮助,我们将不胜感激。

不清楚是只使用一个源对象还是多个源对象。无论如何

MC.ls(sl=True)

returns 字符串列表。连接一个列表和一个字符串是行不通的。所以使用 thing[0] 或简单地

MC.ls(sl=True)[0]

如果您收到错误消息,请始终在您的问题中包含该消息,这对查看出现的错误有很大帮助。