从Maya2012开始我们迎来了新的Python API,对API不熟悉的朋友也许会问为什么要出个2.0的新API.其实1.0是通过SWIG来对大部分(基本是全部)C++ API来自动转换的,好处是我们能使用绝大部分的C++ API,而且制作速度快,但也有很多问题,首先API是为C++设计的,C++和Python的最大区别之一就是指针,API中使用指针的地方非常多,为了解决这个问题,Python API里多了一个专门处理指针的类(令Pythoner蛋疼的东西),而且很多类方法都是没有Python版本的,很多的Python特性也不支持,其实就感觉跟使用C++版本没太多的区别.
2.0就是他们重新给Maya设计的Python API,支持Python的特性,优化运行速度,更加Pythonic.
这里我要介绍的是MSelectionList,要能正常运行下面的Python代码,你需要Maya2012 HotFix 1以上版本,om代表1.0的版本模块,newom是2.0.
MSelectionList是存储在MAYA中被选中的物体集,其实不是当前选中的物体也行.
获取当前选中的五体物体
import maya.OpenMaya as om # API 1.0
import maya.api.OpenMaya as newom # API 2.0
# API 1.0
selList = om.MSelectionList()
om.MGlobal.getActiveSelectionList(selList)
# API 2.0
mySel = newom.MGlobal.getActiveSelectionList()
MSelectionList selList;
MGlobal::getActiveSelectionList(selList);
你可以看到1.0的用法跟C++的基本一样,如果你只想通过API来打印所选择的物体名称
nodes = []
selList.getSelectionStrings(nodes)
nodes
# Result: [u'pCube1'] #
mySel.getSelectionStrings()
# Result: (u'pCube1',) #
获取节点
node = om.MObject()
selList.getDependNode(0, node)
myNode = mySel.getDependNode(0)
可以看到API 2.0更加Pythonic,其它的方法也都差不多一样的用法,具体请看文档.
分享到:
相关推荐
撤消/重做对Maya Python API 2.0的支持 利用Python脚本中的API,而不会失去撤消或重做的功能。 特征 撤消和重做任意API调用 将apiundo与通过cmds或PyMEL调用中的本地撤消混合PyMEL 使用apiundo自动聚集对cmds的...
aka“ Maya Python API 3.0” Maya 2018-2022的C ++ API的一组替代绑定。 为什么? 如果Maya的Python绑定是开源的怎么办? 如果每当Maya崩溃时,您得到的不仅仅是透明的堆栈跟踪,该怎么办? 如果您能够了解崩溃的...
Maya_Python_教程-很难得最新mayapython教程.pdf
maya python api 建立节点
第1部分为Python和Maya的基础知识,第2部分是使用Python设计Maya工具,第3部分介绍了Maya Python API基础知识。其中,面向对象编程和过程式编程、环境设置和PyQt GUI等一般性主题也有所涉及,但着眼点是在Maya中的...
例子绑定应旨在尽可能接近地匹配Maya Python API 2.0(开放源除外),并且决不允许由于调用任何函数或方法而导致Maya崩溃。 import cmdctyp = cmdc . TypeId ( 16 )mat4 = cmdc . Matrix ()mat4 *= cmdc . Matrix ()...
Practical-Maya-Programming-with-Python.pdf
maya python语言简易教程,适合初学者新手,通过简单例程讲述maya python的使用方法。适合新手快速上手
maya api python eclipse maya python API接口
Maya硬面网格建模插件Hardmesh Tools v1.0.31 for Maya 2015 - 2016 - Win;
Maya-场景制作-别墅.pdf
mayaPython Maya Programming with Python Cookbook MayaPythonForGamesAndFilm Prentice.Hall.Rapid.GUI.Programming.with.Python.and.Qt.Oct.2007 Robert Galanakis - Practical Maya Programming with Python - ...
这是一个简易的MAYA PYTHON学习教程
Maya.3D.-.Mel.Scripting maya 脚本语言的入门教程,很适合初学者。
Qualoth面料模拟动画Maya插件V4.2-8版,Maya最流行的布料解算插件
常用的Maya毛发插件Yeti,对应于Maya2013 2014 2015版本
maya-glTF 适用于Autodesk Maya的glTF导出器插件 该插件与Maya的大多数现代版本兼容。 经过Maya 2015+的测试。 glTF规范的大部分已经实现,但这仍在进行中。 为了获得最佳的材质效果,请使用StingrayPBS着色器。 ...
Maya中的Python完成了 PyMEL使Maya的python脚本按应有的方式工作。 Maya的命令模块是将mel命令直接转换为python命令的方法。 结果是非常笨拙和非Python的语法,没有利用python的优势-特别是一种灵活的,面向对象的...