在Python3中,我尝试将一个对象的属性连接到它的代理对象的等效属性(由其“_proxy”后缀标识)。在
代码如下:
import maya.cmds as mc
attributes = ['.t', '.r', '.s']
controllers = mc.ls('ctrl_Lip*')
def corresponding_proxy(controller):
corresponding_proxy = mc.ls(controller+'_proxy')
return corresponding_proxy
for controller in controllers :
for attr in attributes :
mc.connectAttr(controller+attr, corresponding_proxy(controller)+attr)
返回的错误是:
^{pr2}$我不明白,因为我以为controller
、corresponding_proxy
和{
我错过了什么?在
好的,jasonharper是对的,返回controller+'_proxy'
就可以了!
然而,它现在又给我带来了另一个错误:
# Error: RuntimeError: file <maya console> line 14: The destination attribute 'ctrl_Lip_Up_1_proxy_proxy.t' cannot be found. #
…它没有对整个对象列表执行操作,只对第一个对象执行操作,然后出现错误。在
好吧,别担心!'ls'命令还返回了我创建的代理,所以我的循环也尝试迭代代理本身。。。在
非常感谢大家!解决了的! 工作代码如下:
import maya.cmds as mc
attributes = ['.t', '.r', '.s']
controllers = mc.ls('ctrl_Lip*', tr=True)
for controller in controllers:
mc.duplicate(controller, n=controller+'_proxy')
def corresponding_proxy(controller):
return controller+'_proxy'
for controller in controllers:
for attr in attributes:
mc.connectAttr(controller+attr, corresponding_proxy(controller)+attr)
目前没有回答
相关问题 更多 >
编程相关推荐