2

我想区分Maya 中可用的 Python 库

  1. MEL(嵌入式 Maya 语言)
  2. Maya Python 库( maya.cmds, 但也maya.standalonemaya.mel.eval)
  3. PyMEL [*]pymel.core和其他)
  4. 玛雅 Python API 1.0 ( maya.OpenMaya)
  5. 玛雅 Python API 2.0 ( maya.api.OpenMaya)

Maya Python 库(第 2 项)有名称吗?一个涵盖 2、4 和 5 的名称就足够了。

4

1 回答 1

4

并不真地。 import Maya会给你所有的,虽然大多数人从一个级别开始,例如,import maya.cmds as cmds 你的列表中还有一些你错过了:OpenMaya,旧的 api,有兄弟姐妹OpenMayaRender,,OpenMayaUI而且OpenMayaAnimation还有maya.util

您可以像这样列出顶级 Maya 模块的完整名单:

import maya
import inspect
maya_modules = {name:mod for name, mod in inspect.getmembers(maya) if inspect.ismodule(mod) }

Maya 2016 中的完整列表是:

'OpenMaya': <module 'maya.OpenMaya' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\OpenMaya.pyc'>,
'OpenMayaAnim': <module 'maya.OpenMayaAnim' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\OpenMayaAnim.pyc'>,
'OpenMayaFX': <module 'maya.OpenMayaFX' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\OpenMayaFX.pyc'>,
'OpenMayaMPx': <module 'maya.OpenMayaMPx' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\OpenMayaMPx.pyc'>,
'OpenMayaRender': <module 'maya.OpenMayaRender' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\OpenMayaRender.pyc'>,
'OpenMayaUI': <module 'maya.OpenMayaUI' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\OpenMayaUI.pyc'>,
'app': <module 'maya.app' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\app\__init__.py'>,
'cmds': <module 'maya.cmds' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\cmds\__init__.py'>,
'debug': <module 'maya.debug' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\debug\__init__.py'>,
'mel': <module 'maya.mel' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\mel\__init__.py'>,
'standalone': <module 'maya.standalone' (built-in)>,
'utils': <module 'maya.utils' from 'c:\program files\autodesk\maya2016\Python\lib\site-packages\maya\utils.py'>

制作自己的模块来导入其中的一个子集当然是微不足道的。

于 2016-02-18T18:18:16.603 回答