範例:
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