MAYA 脚本语言 MEL 系列教程(9)

2019-09-01 10:28

範例:

int $sway = rand(3); switch ($sway) { case 0:

print(\ break; case 1:

print(\ break; case 2:

print(\ break; }

解釋: 我們先宣告一個亂數的變數. 然後用在用變數去來滿足某一個條件之後去執行某一項\事情\比如說$sway 是為1 的話, 它就會去執行 case 1:的事件. 以此類推...... 所以\事情\的設定方式為: case (條件): 描述;

break; <---- 跳出這個判斷.(因為假如不用這個的話, 將會繼續執行下一個.所以要記得加break!!)

那switch 它也有跟if 一樣的else. 而它的語法為default 而default 它跟case 的設定方法是一模一樣的. 範例:

int $sway = rand(5); switch ($sway) { case 0:

print(\break; case 1:

print(\break; case 2:

print(\break; default :

print(\break; }

其意思為當$sway 出現1 的話, 就會執行case 1: 的\事情\而假如1, 2, 3 都無法滿足的話, 就會去執行defaule 了!

41

expression 教學 (六)

今天我將介紹實例的方式來讓大家體驗一下expression 的樂趣!!

首先, 我們在場景中create 兩個sphere. (polygon or nurbs)兩顆sphere 稍微有一點距離. 分別把它們在outline 的視窗中改名為a 跟b.然後我們點選a 的sphere 之後, 到channels 的Translate X 的地方按滑鼠的右鍵進入expression 編輯視窗. 輸入:

a.translateX = b.translateX * -1; a.translateY = b.translateY * -1; a.translateZ = b.translateZ * -1;

然後按下Edit 的按鍵之後會發現Translate X, Translate Y, Translate Z 變成設 key 的狀態.(橘色)當移動b 物件時,a 的物件會朝b 物件的相反位置移動.

如何使用MEL Scripts

此课程是为了使新入门者得以熟悉安装及执行典型的MEL Scripts,在Maya中有数个方式可执行Scripts,此课程将讨论两项 .

注意:经由Assistant Online提供之MEL Script,皆已测试完成,即可以下指示步骤完成. 来自其他原处的MEL Scripts就不在以下所限了. 什么是MEL Script ?

MelScript 即内含Maya Embedded Language指令'处理程序化,或两者皆有.一般来说,就是使用MEL Script去执行一连串的指令.

您可以使用文字编辑器纂写MEL Script,之后将其储存于硬碟中,MELScript的附档名为mel,MEL并非Scenes的一部分,你可在不同的Project中重复使用MEL Script,每当你要重覆该动作时,你必须执行Script.

读取Script内容

在安装及使用Script前,研读其前头(title)的资讯,叙述著有关该Script的目地及使用方式,你可用文字编辑器浏览.

所有Assitant内的Script都包括这些资讯 .

一般Script皆有不同的执行需求,阅读前头资讯,将使你知道Script之间的相关性,相关的Script必须是在同一个Script目录下.

1.将Script置于Script的目录:

基本上MEL Scripts路径是位于 maya/scripts 下,如果你将Script置于此处,你将可容易的执行所属Script head 所指示的执行程序,并在Command line下执行,Maya 将搜寻该Script Path ,找寻同名之MELScript之指令,并宣告所有Global Mel procedures,之后同名之Global Procedure即如指令执行之.

2.使用Script Editor: 你可用

Script Editor

去建立,改变或使用

MEL Script,Script Editor

可从

Window->GeneralEditors->ScriptEditor或Maya 视窗的右下角打开它,Script Editor打开后,你可从File->OpenScript开启Script,此时在InputSection将显示Script的内容,你可按Enter执行或File->Execute.

注意:Copy及Paste到ScriptEditor内亦是同样的操作.

Source a Script

经由ScriptEditor的File->Source Script 将一Script打开.Sourceing MEL Script即执行Script中

所有的MEL指令及宣告所有Global Procedure,就像是OpenScript并执行它,只是不会在ScriptEditor中看到.记住,Open及Source只是将Script置于memory中直到你执行它方有作用.

结论:

42

现在你可以开始试试手上的Script,渐渐的在你将熟悉MEL的语法及功能后,此时你就可以建立你自己的Script.

脚本名称 xform 接设置的数值,

如transformation矩阵或bounding box。它也能被用来把中心点设置成合适的值。\

设置Maya程序的图标是否为等待图标。

让用户在他(她)的教本执行时显示warning信息。

查询一个字符串在Maya中是一个“命令”,“Mel程序”,“教本”,还是一个变创建一个不可见的窗口。

创建、修改或查询窗口的属性,注意对main Maya窗口和Command窗口不起

waitCursor warning whatIs window 作用。

创建一个曲线变形器。

创建一个能被用来创建曲线变形器的工具。

描述

返回XBMLANGPATH环境变量中的路径。

xbmLangPathList

用来设置或查询transformation节点中的任何元素。它也能被用来查询一些不能被直

量,如果时变量则给出变量的类型。

windowPref wire

wireContext workspace workspace。

wrinkle

创建,打开或编辑一个给定的workspace文件,如果没有指定,则假定时当前的

用来创建一个曲面褶皱的网络,它自动创建一个用来控制一个曲线变形器的褶建立一个用来创建褶皱的连接。

皱曲线,而这个褶皱曲线则连接到一个cluster变形器上。

wrinkleContext writeTake wtPaintCtx valuePaintCtx verifyCmd viewCamera viewClipPlane viewFit

viewHeadOn viewLookAt viewPlace 像机是否有透视,

视角以及向上轴。

把选中摄像机设置到预定义的位置。 创作或操作Visor窗口 设置volumeAxis动力场

设置vortex动力场

viewSet visor vortex

用来记录从记录数据的设备到一个mov文件的数量。 用来在选定的nurbs曲面上绘画簇的权重。

用来检测shelf tab的名字是否合法。 ?看不懂,小弟E文较差 x_x 居然没有描述NND

把摄像机移到指定摄像机的边上或顶上。 用来查询或设置指定摄像机的剪切平面。

让选中摄像机显示除了摄像机本身外的指定物体,就是F吧 让指定摄像机按照法线观察物体,并让物体充满屏幕。 让摄像机看向所有选中物体的中心

validateShelfName

按照相应的值查询一个命令中的每个标签。

view2dToolCtx

用来设定摄像机的一点参数:摄像机位置,摄像机瞄准点的位置,摄像机的方向,摄

volumeAxis

uiOnDemandExample uiTemplate

unassignInputDevice undo undoInfo

43

ungroup uniform unit unloadPlugin untangleUV untrim upAxis updateAE userCtx userPaintCtx uvlink uvSnapshot

脚本名称描述

xbmLangPathList xform 接设置的数值,

如transformation矩阵或bounding box。它也能被用来把中心点设置成合适的值。\

设置Maya程序的图标是否为等待图标。

让用户在他(她)的教本执行时显示warning信息。

查询一个字符串在Maya中是一个“命令”,“Mel程序”,“教本”,还是一个变创建一个不可见的窗口。

创建、修改或查询窗口的属性,注意对main Maya窗口和Command窗口不起

waitCursor warning whatIs window 作用。

创建一个曲线变形器。

创建一个能被用来创建曲线变形器的工具。

返回XBMLANGPATH环境变量中的路径。

用来设置或查询transformation节点中的任何元素。它也能被用来查询一些不能被直

量,如果时变量则给出变量的类型。

windowPref wire

wireContext workspace workspace。

wrinkle 皱曲线,

创建,打开或编辑一个给定的workspace文件,如果没有指定,则假定时当前的

用来创建一个曲面褶皱的网络,它自动创建一个用来控制一个曲线变形器的褶

而这个褶皱曲线则连接到一个cluster变形器上。

建立一个用来创建褶皱的连接。

wrinkleContext writeTake wtPaintCtx valuePaintCtx verifyCmd viewCamera viewClipPlane viewFit

viewHeadOn viewLookAt

用来记录从记录数据的设备到一个mov文件的数量。 用来在选定的nurbs曲面上绘画簇的权重。

用来检测shelf tab的名字是否合法。 ?看不懂,小弟E文较差 x_x 居然没有描述NND

把摄像机移到指定摄像机的边上或顶上。 用来查询或设置指定摄像机的剪切平面。

validateShelfName

按照相应的值查询一个命令中的每个标签。

view2dToolCtx

让选中摄像机显示除了摄像机本身外的指定物体,就是F吧 让指定摄像机按照法线观察物体,并让物体充满屏幕。 让摄像机看向所有选中物体的中心

44

viewPlace 像机是否有透视,

用来设定摄像机的一点参数:摄像机位置,摄像机瞄准点的位置,摄像机的方向,摄

视角以及向上轴。

把选中摄像机设置到预定义的位置。 创作或操作Visor窗口 设置volumeAxis动力场

设置vortex动力场

viewSet visor vortex

volumeAxis

uiOnDemandExample 这个脚本示范了“如何按照需要创建UI\来加快复杂视窗的初始化显示时间 uiTemplate 这个命令创建一个新的命令模板对象,模版对象能保存多个UI命令的默认标记参数。

unassignInputDevice 删除所有和指定设备(物体)有关的字符串命令

undo undo

undoInfo

控制undo的参数 ungroup 解组指定对象 uniform 设置uniform动力场 unit

返回一个归一化矢量

unloadPlugin 解除指定plugin的调用

untangleUV 通过解开texture UVs来帮助创建不重叠的区域 untrim untrim指定表面

upAxis 改变世界的向上轴。(Y轴 or Z轴)

updateAE 显示在属性编辑器中指定节点的信息

userCtx 根据一系列指定的工具来创建自己的工具,就象宏一样。userPaintCtx 通过画笔来执行mel uvlink

用来设置、中断、查询物体的UV组和纹理之间的连接关系

uvSnapshot

创建选择物体的uv快照

about 返回MAYA版本号; abs 求绝对值;

addAttr 给节点添加动态属性.........

45


MAYA 脚本语言 MEL 系列教程(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版初二英语下册1--5单元基础检测

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: