以下部分介绍了一些基本概念,有助于您理解在 Maya 中使用脚本时出现的一些情况。
命令架构
Maya 拥有一个基于命令的架构,用于处理所有的操作。所有 Maya 功能命令均通过 Maya 用户界面(菜单、工具、对话框)使用的脚本语言命令来访问;事实上,就是您在 Maya 中进行交互时所使用的一些东西。此外,您还能以 Maya 支持的脚本语言明确地输入Maya 命令。
每个 Maya 命令都有多个参数,这些参数设定了命令的执行方式。若要让命令能够执行,就需要具备参数及参数的隐式或显式值。
Maya 中的脚本语言使用标志设定参数值。标志将告知脚本语言以什么值设定了 Maya 命令的哪个参数。指定给参数的值将跟随在标志之后。
标志在 MEL 和 Python 中具有短名称和长名称。无论是使用标志的短名称还是长名称,均同样执行命令。长名称通常为描述性且适用于新用户;短名称则为缩写形式的标志名称,适用于高级用户。
Maya 中的脚本语言
Maya 支持两种脚本语言:
Maya 嵌入式语言 (Maya Embedded Language, MEL) 是依据 Unix Shell 脚本建模的专用脚本语言。
Python 是 Maya 中最新添加的特性,可以和 MEL 一样用于访问 Maya 命令。Python 是一种广泛运用的现代编程语言。
Maya 的用户界面是使用执行(调用)Maya 命令的脚本而构建的。由于 Python 是最新添加到 Maya 中的,因而通过用户界面访问的大多数脚本都是用 MEL 编写的。
例如,如果单击工具架上的球体图标或从菜单中选择一项,Maya 将调用 MEL 命令以创建球体,或执行与菜单项关联的命令。
在 Maya 中输入命令
有多种方法可用于在 Maya 中明确输入脚本命令。
若要输入单行 MEL 和 Python 命令,请使用“命令行”(Command Line)。若要显示“命令行”(Command Line)(如果已隐藏),请选择“显示 > UI 元素 > 命令行”(Display > UI Elements > Command Line)。“命令行”(Command Line)位于 Maya 界面底部边缘附近。
若要输入多行 MEL 和 Python 命令,请使用“脚本编辑器”(Script Editor)。“脚本编辑器”(Script Editor)显示已执行命令的历史以及命令的结果和输出。若要打开“脚本编辑器”(Script Editor),请选择“窗口 > 常规编辑器 > 脚本编辑器”(Window > General Editors > Script Editor)。
在“脚本编辑器”(Script Editor)的 MEL 选项卡中输入所有 MEL 命令时,这些 MEL 命令将会亮显。
同样,“表达式编辑器”(Expression Editor)使用 MEL 命令的子集在场景中创建动画。将针对动画中的每个帧对“表达式编辑器”(Expression Editor)中的 MEL 命令求值。“表达式编辑器”(Expression Editor)不支持 Python 命令。若要打开“表达式编辑器”(Expression Editor),请选择“窗口 > 动画编辑器 > 表达式编辑器”(Window > Animation Editors > Expression Editor)。
也可以加载外部 MEL 和 Python 文件,并使用脚本编辑器运行这些文件。有关详细信息,请参见“加载脚本文件”(Loading a script file)。
MEL 外观
调用 MEL 命令具有一种基本结构,即命令后跟标志和参数的组合。在 MEL 中,标志前面是连字符。
所有 MEL 命令都区分大小写;SPHERE 和 sphere 是不同的(并返回错误消息)。
如果未提供任何标志,则命令以默认参数作为执行条件。如果未获得所需参数,命令的执行将失败。
注意
MEL 还有一种备用语法,其执行命令和标志的方法类似于 C 编程语言。有关详细信息,请参见《Maya 用户手册》中的“适用于编程人员的 MEL”(MEL for Programmers)。
获取关于 MEL 的帮助
有三种方法可用于获取关于 MEL 的帮助:
若要访问关于特定 MEL 命令的帮助信息,请通过选择“帮助 > MEL 命令参考”(Help > MEL Command Reference)打开“MEL 命令参考”(MEL Command Reference)。
也可使用 Maya 命令 help,以便从脚本编辑器中访问帮助信息。例如,输入 help sphere 将列表显示一些可与 sphere 命令一起使用的标志。
有关 MEL 命令使用的所有方面的详细信息,也可参见手册的“MEL 和表达式”部分,这是“Maya 帮助”(Maya Help) 的部分内容。打开“Maya 帮助”(Maya Help),然后选择“使用 Maya > 常规 > MEL 和表达式”(Using Maya > General > MEL and Expressions)。
Python 基础知识
Python 和 MEL 都是脚本语言,在 Maya 中具有相同的重要性和功能。Python 可以访问 MEL 能够访问的所有 Maya 命令。
Python 通过 Python 模块 maya.cmds 访问 Maya 命令。Python 中的模块是一组向 Python 中添加了功能的命令,必须在使用模块中的任何命令之前导入。
Python 中的标志通过 Python 的已命名参数执行。您将指定要修改的参数,并使用指定运算符 (=) 将新值指定给参数。
若要运行该命令或任何示例命令,必须先导入 Python 模块。开始输入 Python 命令之前,先输入 import maya.cmds。
所有 Python 命令都区分大小写;maya.cmds.SPHERE 和 maya.cmds.sphere 是不同的(并返回错误消息)。
获取关于 Python 的帮助
有多种方法可用于获取关于 Python 的帮助:
若要访问关于特定 Maya (Python) 命令的帮助信息,请通过选择“帮助 > Python 命令参考”(Help > Python Command Reference)打开“Python 命令参考”(Python Command Reference)。
也可使用 Maya 命令 help (),以便从脚本编辑器中访问关于 Maya Python 命令的帮助信息。例如,键入 maya.cmds.help ("sphere") 将列表显示一些可能可与 sphere 命令一起使用的标志。
通过键入 help ("command") 可从“脚本编辑器”(Script Editor)中访问关于本机 Python 命令的帮助信息,其中 command 是想要访问其帮助信息的 Python 命令。
有关 Python 命令使用的详细信息,也可参见手册的“Python”部分,这是“Maya 帮助”(Maya Help) 的部分内容。打开“Maya 帮助”(Maya Help),然后选择“使用 Maya > 常规 > Python”(Using Maya > General > Python)。
在“脚本编辑器”(Script Editor)的 Python 选项卡中输入所有 Python 命令时,这些 Python 命令将会亮显。
Web 上现有一些关于 Python 的参考资料和文档,以及许多可用于向 Python 中添加额外功能的可下载模块。
快速入门教程:www.python.org/about/gettingstarted
Python 文档:docs.python.org
Python 模块:cheeseshop.python.org