cmds.ls() 对标大纲视图,作用为快速选择想要的节点
默认返回场景内所有 DG 节点(依赖图)和 DAG 节点(有向无环图)
第一个用法:获取节点
allList = cmds.ls() # 获取场景中的DG和DAG
第二个用法:获取变换./形态节点
transList = cmds.ls(transforms=True) # 获取场景中的变换节点
shapList = cmds.ls(shapes=True) # 获取场景中的形态节点
DG 与 DAG 节点:
1.默认返回节点范围无参数时,cmds.ls() 会返回:
- 系统管理节点:time1、sequenceManager1
- 渲染 / 着色节点:hardwareRenderingGlobals、lambert1
- 工具 / 设置节点:ikSystem、hyperGraphInfo
- 图层 / 管理器节点:layerManager、renderLayerManager
2. 节点类型定义
- DAG(Directed Acyclic Graph,有向无环图):
- 可见于视图窗口,支持父子层级变换(如模型、组)
- 有向:支持父子嵌套关系
- 无环:避免数据无限循环导致软件崩溃
- DG(Dependency Graph,依赖图):
- 后台不可见
- 所有 DAG 节点都依赖 DG 节点管理数据与层级关系
总结:
1.cmds.ls() 是 Maya 场景节点查询的基础入口,核心价值在于节点枚举与筛选。
2.区分 DG/DAG 节点是理解 Maya 场景结构的关键:DAG 负责可见层级,DG 负责后台数据支撑。
3.实际开发中应优先使用筛选参数(如 transforms/shapes),避免全量遍历影响性能。
4.格式化输出(分组打印 /pprint)能显著提升调试与日志可读性。