maya选择组里的所有几何体(python)
2021-05-01 本文已影响0人
MasterZhang
假如这么一个组层级,要选择里面的几何体。
![](https://img.haomeiwen.com/i16685442/1d36227cf73a6892.png)
需要注意有几点:
- 使用dag标签,可以选择子层级物体
- 在maya里一个组其实就是一个transform类型的节点
- maya大纲视图显示的都是物体名称其实都是的transform节点类型
- 而通过type标签过滤mesh获取到的是物体的shape节点
- 需要使用listRelatives命令来获取shape所在的transform名称,也就是大纲视图中的物体名称。
1.dag标签
通过dag标签获取所有子物体,通过l标签开启节点全路径名称,通过type来过滤mesh物体。
sn = cmds.ls(sl=1,dag=1,l=1,type=['mesh'])
print(sn)
#[u'|group2|group1|pCube1|pCubeShape1', u'|group2|pSphere1|pSphereShape1']
2.选择所有子物体(transform)
objs = cmds.listRelatives(sn , p= True)
print(objs)
#[u'pCube1', u'pSphere1']
综合起来获取组下的物体
sn = cmds.ls(sl=1,dag=1,l=1,type=['mesh'])
objs = cmds.listRelatives(sn , p= True)
objs = list(set(objs)) #当一个物体有多个shape时,去掉重复的transform