mayaAPI


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中带有层级的节点类型

使用案例

  1. 通过名称获取Mobject、Mdagpath节点
mSel = om.MSelectionList()
mSel.add(name)
mObj = sel.getDependNode(0) # 参数代表索引
mDag = sel.getDagPath(0)
# mDag, mObj  = sel.getComponent  该节点没有DagPath时会报错
  1. 将选择的物体存入item中,先定义item,然后将选择物体放入
# api2.0可以直接调用,参数 是否记录选择顺序,默认false, 建议改为1,记录一下
mSel = om.MGlobal.getActiveSelectionList(1)

# api1.0更接近c++的写法,需要先声明MSelectionList()
mSel = om.MSelectionList()
om.MGlobal.getActiveSelectionList(mSel)
  1. 对于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]
  • 获取点坐标:
  • 判断是不是边界点:

om.MItDependencyNode

om.MSelectionList

OpenMayaUI 界面工具类

OpenMayaAnim 动画工具类

OpenMayaFX 特效工具类

OpenMayaRender 渲染工具类


评论
  目录