繁体   English   中英

如何从Python-Maya脚本中的组获取​​属性?

[英]How do i get an attribute from a group in Python - Maya scripting?

'#错误:第1行:NameError:文件第38行:未定义名称'Person1'#'

虽然如果我在大纲视图中查看,则Person1存在。 我在这项工作中做错了什么? 它应该非常简单。

#create one person

import maya.cmds as cmds
import random

personGroup = cmds.group( empty=True, name='Person1' )

Body = cmds.polyCube(n = 'Body', w =0.8, h=1.1, d=0.3)
cmds.move(0,0.5,0)
cmds.parent( Body, personGroup )

Arm1 = cmds.polyCube(n= 'Arm1', w=0.2 ,h=0.2, d=0.9)
cmds.move(0.5, 0.75, 0.35)
cmds.xform(os=True, rp=[0,0,-0.3])
cmds.parent( Arm1, personGroup )

Arm2 = cmds.duplicate(n = 'Arm2')
cmds.move(-0.5, 0.75, 0.35)
cmds.xform(os=True, rp=[0,0,-0.3])
#cmds.parent( Arm2, personGroup )

Head = cmds.polySphere(n= 'Head', r = 0.28)
cmds.move(0, 1.3, 0)
cmds.parent( Head, personGroup )



#create multiple instances in a row
for i in range (1,40):
    cmds.duplicate(personGroup)
    cmds.select('Person%d' %(i+1))
    cmds.move(1.5*i,0,0, relative=True) 
    if (i >= 10) and (i <= 20): 
        cmds.select('Person%d' %(i+1))
        cmds.move(1.5*i,1.5,-1.5, relative=True) 

    pHeight = Person1.translateY

Person1可能存在于项目的其他位置,但在该文件中不存在。 如果是在不同文件中定义的类,则需要导入它。

您需要使用getAttr函数来获取组的属性。

pHeight = cmds.getAttr('Person%d.translateY' %(i+1))

要么

pHeight = cmds.getAttr('Person1.translateY')

或者,如果您使用的是PyMel,则:

import pymel.core as pc
person = pc.PyNode('Person%d' %(i+1))
pHeight = person.translateY.get()

# Or

person = pc.PyNode('Person1')
pHeight = person.translateY.get()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM