Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python-Maya脚本中从组中获取属性?_Python_Graphics_Scripting_3d_Maya - Fatal编程技术网

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

如何在Python-Maya脚本中从组中获取属性?,python,graphics,scripting,3d,maya,Python,Graphics,Scripting,3d,Maya,“#错误:第1行:名称错误:文件第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)

“#错误:第1行:名称错误:文件第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
#创建一个人
将maya.cmds作为cmds导入
随机输入
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(主体、个人组)
Arm1=cmds.polyCube(n='Arm1',w=0.2,h=0.2,d=0.9)
cmds.move(0.5,0.75,0.35)
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)
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(负责人,个人组)
#在一行中创建多个实例
对于范围(1,40)内的i:
cmds.duplicate(个人组)
cmds.select('Person%d'(i+1))
cmds.move(1.5*i,0,0,relative=True)

if(i>=10)和(iPerson1可能存在于项目的其他位置,但它不存在于该文件中。如果它是在不同文件中定义的类,则需要导入它。

需要使用函数获取组的属性

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

或者,如果您正在使用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()

非常感谢!我确实尝试过这个,但语法有点混乱,这很有效:)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()