`
schi
  • 浏览: 205895 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Maya Python API 2.0 - MSelectionList

阅读更多
  从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,其它的方法也都差不多一样的用法,具体请看文档.
分享到:
评论

相关推荐

    apiundo:UndoRedo对Maya Python API 2.0的支持

    撤消/重做对Maya Python API 2.0的支持 利用Python脚本中的API,而不会失去撤消或重做的功能。 特征 撤消和重做任意API调用 将apiundo与通过cmds或PyMEL调用中的本地撤消混合PyMEL 使用apiundo自动聚集对cmds的...

    Maya Python API 3.0-C/C++开发

    aka“ Maya Python API 3.0” Maya 2018-2022的C ++ API的一组替代绑定。 为什么? 如果Maya的Python绑定是开源的怎么办? 如果每当Maya崩溃时,您得到的不仅仅是透明的堆栈跟踪,该怎么办? 如果您能够了解崩溃的...

    Maya_Python_教程-很难得最新mayapython教程.pdf

    "Maya Python 教程" 本教程旨在提供简易的 Maya Python 学习教程,帮助初学者快速掌握 Maya Python 的知识。下面是本教程的知识点概述: 1. Maya Python 简介: * Maya Python 是 Python 语言包裹起来的 MEL 命令...

    Practical Maya Programming with Python -- 2014

    Galanakis -- Practical Maya Programming with Python -- 2014 -- code.7z

    Maya Python For Games and Film(Adam Mechtley)

    - **Maya Python API 深入讲解**:随着内容的深入,作者开始详细介绍 Maya Python API 的各个方面,包括其架构、核心类库以及如何利用这些 API 来增强 Maya 的功能。 - **实践案例分析**:除了理论知识外,本书还...

    maya python api 建立节点.pdf

    maya python api 建立节点

    Maya Python游戏与影视编程指南

    第1部分为Python和Maya的基础知识,第2部分是使用Python设计Maya工具,第3部分介绍了Maya Python API基础知识。其中,面向对象编程和过程式编程、环境设置和PyQt GUI等一般性主题也有所涉及,但着眼点是在Maya中的...

    MeshBrush2.0-在任意表面刷模型的专用插件.zip.zip

    4. **兼容性**:此插件通常与主流3D建模软件如Blender、Maya、3ds Max等兼容,使得用户可以在他们熟悉的环境中无缝使用这一工具。 二、应用场景 1. **角色建模**:在游戏和电影角色建模中,MeshBrush 2.0可以帮助...

    cmdc:Maya Python API 3.0

    例子绑定应旨在尽可能接近地匹配Maya Python API 2.0(开放源除外),并且决不允许由于调用任何函数或方法而导致Maya崩溃。 import cmdctyp = cmdc . TypeId ( 16 )mat4 = cmdc . Matrix ()mat4 *= cmdc . Matrix ()...

    MayaPython简易教程.doc

    【Maya Python简易教程】 Maya Python教程是一个适合初学者的指南,旨在让学习者快速掌握在Maya中使用Python语言的基本技能。教程注重实践,通过简单易懂的例程来展示Python在Maya中的实际应用,尤其适合没有编程...

    Maya python简易教程

    Maya Python 简易教程 Maya Python 是一种基于 Python 语言的 Maya 脚本语言,用于自动化 Maya 的操作和开发插件。下面是 Maya Python 简易教程的知识点: 1. Maya Python 简介 Maya Python 是用 Python 语言包裹...

    Maya to glTF 2.0 exporter

    Maya to glTF 2.0 exporter Maya 到 glTF 导出器 v1.5.0 - Windows x64 - Maya 2017-2022 github资源,下载太慢,备份下。 原始项目介绍如下: https://gitcode.com/gh_mirrors/ma/Maya2glTF/overview 原始下载地址...

    MAYA44V3-V3.0原版驱动

    标题"MAYA44V3-V3.0原版驱动"指的是MAYA44声卡的V3.0版本的官方驱动程序。MAYA44是一款专业的音频接口设备,用于将数字音频信号与计算机系统连接,提供高质量的音频输入和输出功能。 描述中的信息揭示了MAYA44V3的...

    maya-glTF:适用于Autodesk Maya的glTF 2.0导出器

    maya-glTF 适用于Autodesk Maya的glTF导出器插件 该插件与Maya的大多数现代版本兼容。 经过Maya 2015+的测试。 glTF规范的大部分已经实现,但这仍在进行中。 为了获得最佳的材质效果,请使用StingrayPBS着色器。 ...

    VS2010——MayaPluginWizard2.0不能用的解决方法

    在开发Autodesk Maya的插件时,Visual Studio (VS) 2010是一个常见的集成开发环境(IDE),而MayaPluginWizard 2.0是一个非常实用的工具,用于简化和自动化创建Maya插件的过程。然而,有时用户可能会遇到MayaPlugin...

    Practical-Maya-Programming-with-Python.pdf.pdf

    在提供的文件信息中,我们可以看到书名为《Practical Maya Programming with Python》,这是一本关于利用Python进行Maya编程的实践指南。Maya是一款专业的三维计算机图形软件,广泛用于动画、模型设计、游戏开发等...

    maya2023最新pymel兼容python2/python3版本下载

    Pymel是Maya中的Python绑定库,它提供了一种更高效、更面向对象的方式来操作Maya,使得开发者能更容易地进行脚本编写和插件开发。在Maya2023中,Pymel对Python2和Python3的兼容性是至关重要的,因为这直接影响到用户...

    Yeti-v1.3.14_Maya2013-2014-2015-win64

    6. **工作流程**:Yeti与Maya的集成非常紧密,允许用户在Maya的现有工作流中无缝切换,同时提供脚本和API接口,便于进行自定义扩展和自动化工作流程。 总结来说,Yeti v1.3.14作为一款专业的毛发插件,为Maya用户...

    maya注册机---真正的注册机

    随着经验的积累,可以深入学习更高级的技术,如脚本编写(MEL或Python)以自动化工作流程,或是使用Maya与其他软件(如Houdini、3ds Max或Unity)的集成进行项目协作。 总之,虽然非法注册机可能看似提供了一个快捷...

Global site tag (gtag.js) - Google Analytics