如何获取Maya中ls命令支持的所有类型列表?
我懂你的困扰——官方文档确实没把ls支持的所有类型直接列出来,找起来挺费劲的。不过有几个靠谱的方法能一次性拿到所有可用类型,甚至还能验证它们是否有效:
方法1:用PyMel的API模块直接获取
PyMel内置了专门的工具可以列出所有适配ls(type=...)的节点类型,运行这段代码就能得到完整列表:
import pymel.core as pm all_valid_types = pm.api.types.allNodes() print(all_valid_types)
输出里的每一项都可以直接传给ls的type参数,比如pm.ls(type="nurbsSurface")完全有效。
方法2:用nodeType命令快速获取
ls的type参数本质上对应的就是Maya的节点类型,所以用nodeType的list参数也能拿到全部合法类型,代码更简洁:
import pymel.core as pm all_node_types = pm.nodeType(list=True) print(all_node_types)
这个方法得到的结果和第一种基本一致,而且不需要调用底层API模块,用起来更顺手。
方法3:查看Maya内置的节点类型参考
如果想要带详细说明的类型列表,可以打开Maya的内置帮助(按F1),搜索「Node Types Reference」,里面会按功能分类列出所有节点类型,每个类型都有用途说明,而且这些类型都能直接用于ls命令的type参数。
另外补充个小提示:常用的类型除了你提到的camera、mesh、joint,还有nurbsCurve、light、transform、locator、material这些,但上面的方法能帮你拿到完整无遗漏的类型列表。
内容的提问来源于stack exchange,提问作者Santosh Kumar




