Mel命令
/ / 点击 / 阅读耗时 7 分钟介绍
Maya 中有三种类型的命令:运行时命令、MEL 程序和 Maya MEL 命令
运行时命令是由其他命令或脚本(Maya 命令和 MEL 程序)组成的命令。它类似于单行包裹器,可用于执行具有短标签的 MEL 命令行上的长脚本(或脚本集)。可执行的许多(但不是所有)菜单项和图标都使用运行时命令来启动
示例
创建并选择多边形,然后选择(Edit Mesh > Add Divisions)。许多命令显示在脚本编辑器的顶部窗格中。在此历史中滚动,您将看到已输出这些行(朝向顶部):
1
2
3 SubdividePolygon;
performPolySubdivide "" 0;
polySubdivideFacet -dv 1 -m 0 -ch 1 pSphere1;
在底部输入
1 | whatIs SubdividePolygon; |
通过 whatIs 命令,可以查询字符串的类型(在这种情况下为 SubdividePolygon)
利用Mel进行属性修改
选择对象。在其形状节点(例如 pPlaneShape1)中,展开属性编辑器的“对象显示”(Object Display)部分,然后禁用“可见性”(Visibility)属性。
1 | setAttr "pPlaneShape1.visibility" 0; |
列出场景中所有选定对象的变换节点
1 | string $nodes[] = `ls -selection`; |
setAttr 命令可将每个形状节点的可见性设置为 0
1 | { |
属性查询
1 | listAttr polySphere1 |
输出
1 | // Result: message caching isHistoricallyInteresting nodeState binMembership frozen output axis axisX axisY axisZ paramWarn uvSetName radius subdivisionsAxis subdivisionsHeight texture createUVs // |
polysphere1 是多边形的历史节点,listAttr 返回用于创建球体的属性;例如:细分、半径等。
以下命令将返回更多的属性,如 rotateX、scaleX 等:
1 | listAttr pSphere1 |
“显示 > 形状”(Display > Shapes)和“显示 > 属性(通道)”(Display > Attributes (Channels))。选择属性时,将在“脚本编辑器”(Script Editor)中回显选择命令,以允许您找出属性名称
1 | select -r pSphereShape1.castsShadows ; |
修改选定节点
1 | // 列出所有节点 |
保存脚本并调用
工具架方式
如何把写入的脚本保存到工具架
在脚本编辑器中,选择要添加的脚本行,然后使用鼠标中键将选择拖动到工具架。
将显示一个对话框,要求您选择脚本的语言。
选择语言后,表示您的自定义脚本的图标现在已添加到“工具架”(Shelf)。
右键单击该图标,然后选择“编辑”(Edit)以打开“工具架编辑器”(Shelf Editor)窗口。
可以使用此编辑器自定义添加到“工具架”(Shelf)的新项目。例如,在“工具架”(Shelves)选项卡中自定义图标,或者在“命令”(Command)选项卡中修改命令。
另存为 MEL 文件并调用其程序
以命令名称作为文件名、.mel 作为文件扩展名(例如,对于命令 myCommand,此名称为 myCommand.mel)将脚本保存到 MAYA_SCRIPT_PATH 中的文件夹。
如果选择此方法且 .mel 文件包含多个全局程序,则必须先调用 mycommand,然后再调用文件中的其他全局程序。因此,在这种情况下,此方法可能不是您的首选方法。
使用任意文件名保存脚本,然后使用 source 命令将其源化。
脚本源化后,可以按任意顺序调用其任何全局程序。
注: 如果不确定是否需要源化脚本,则可在调用之前测试函数在 MEL 中是否可用:
1 | If (!`exists myFunction`) |
查询节点类型
1 | nodeType nClothShape1; |