API介绍
API的内置库
- OpenMaya 基本的操作工具类
- OpenMayaUI 界面工具类
- OpenMayaAnim 动画工具类
- OpenMayaFX 特效工具类
- OpenMayaRender 渲染工具类
API的命名规则
- M: classes-基本的数据类型
- MFn: function-函数工具类型
- MIt: iterator-迭代器类型
- Mpx: 代理类型,扩展maya功能
基本节点类型
Mobject:mayaAPI基础类型指针,类似于python中的object类,mayaAPI中所有类型都继承与此次
DependencyNode:maya中最基本的节点类型
dagNode:maya中带有层级的节点类型
使用案例
- 通过名称获取Mobject、Mdagpath节点
mSel = om.MSelectionList()
mSel.add(name)
mObj = sel.getDependNode(0) # 参数代表索引
mDag = sel.getDagPath(0)
# mDag, mObj = sel.getComponent 该节点没有DagPath时会报错
- 将选择的物体存入item中,先定义item,然后将选择物体放入
# api2.0可以直接调用,参数 是否记录选择顺序,默认false, 建议改为1,记录一下
mSel = om.MGlobal.getActiveSelectionList(1)
# api1.0更接近c++的写法,需要先声明MSelectionList()
mSel = om.MSelectionList()
om.MGlobal.getActiveSelectionList(mSel)
- 对于MFnMesh等shape节点,如果需要获取世界坐标的话,必须通过MDagPath转换,而不能通过MObject转换,否则会报错
Must have a DAG path to do world space transforms
帮助文档
OpenMaya 基本的操作工具类
om.MGlobal
2020版本进行的完善,之前的版本功能较少需要使用API1.0
方法名 | 说明 |
---|---|
mayaVersion | 返回maya版本信息 |
apiVersion | 返回mayaAPI基本信息 |
getSelectionListByName | 按名字把物体存储到MSelectionList |
getActiveSelectionList | 把所选物体存储到MSelectionList |
setActiveSelectionList | 更改当前选择的物体 |
selectByName | 按名字选择物体 |
unselectByName | 按名字减选物体 |
mayaState | 返回maya程序状态 |
executeCommand | 执行mel命令 |
executePythonCommand | 执行python命令 |
viewFrame | 切换场景时间 |
om.MFileIO
om.MFnDependencyNode
功能:节点最基本的函数类,所有节点都能使用此类方法
特性:可以操作一切节点,包括commands无法操作的锁定节点
创建方法:传入一个Mobject节点
function:
- typeName 返回类型名
- name 返回名字
- setName 重命名
- attributeCount 返回属性数量
- attribute 返回属性值
- findPlug
om.MFnMesh
- 获取最近点:
om.MFnMesh(dag).getClosestPoint(mPoint,om2.MSpace.kWorld)[0]
- 获取点坐标:
- 判断是不是边界点: