maya中的mel脚本是什么意思?

说详细点
不要论文
看的介绍
有600个命令和几十个函数
不懂啊

mel语言是maya自己的一套编程语言,mel是maya的基础,是比较偏底层的东西。如果你稍有编程基础的话,可以很容易掌握它。我们可以看到除了maya的插件(maya内部很多组件也都是以插件形式存在的)以外,所有的操作都可以在script editor窗口中有相应的mel语言与之对应。例如:创建一个常规的polygon球体,打开windows-->General Editors-->Script Editor,可以看到:polySphere -r 1 -sx 20 -sy 20 -ax 0 1 0 -tx 2 -ch 1;;这句话的意思是创建一个polygon球体(polySphere),其半径为1(-r 1),x、y轴向的分段皆为20(-sx 20 -sy 20),轴向为Y轴向上(-ax 0 1 0),显示方式为有锯齿贴图(-tx 2),并带有历史纪录(-ch 1)。参见help中的polySphere词条。

最好的方法还是买书自己学,可以参考《Maya动画师MEL脚本编程全攻略》(以前看过,很快就能上手)。

附上我以前学习的一些笔记,希望能给你一些帮助:

1.得到所有被选中对象的列表并存入数组:“string $sel[] = `ls -sl`;”
2.在表达式中可以直接用“=”给对象的属性赋值或取值;而mel中则必须通过getAttr和setAttr来实现,这种方式效率比较低
3.“==”是判断是否相等;“!=”不等于
4.定义变量:“float $rotation_value;”
5.为对象添加属性:Window-->Attribute Editor;Attributes-->Add Attribute
6.在数学表达式中的向量:可以对向量中的单个分值赋值,如:$abc.x=3;但是不可以这样赋值:$abc=<<$abc.x,1,1>>
7.向量运算(Maya中的点都是向量存储,因此要定位的话向量比较重要):向量相减:代表向量从一个点移到另一个点所需行进的方向和距离,减数指向被减数
8.向量操作:unit(格式化)/unit($vectoer1);mag(长度)/mag($vectoer1);angle(夹角,弧度制,如果想获得角度将它乘以180/pi,方向为逆时针)/angle($vector1l,$vector2);cross(叉积,与两个向量正交,即垂直的第三个向量,其长度为:dot运算)/cross($vector1l,$vector2);dot(=mag($vector1)*mag($vector2)*cos(angle($vector1,$vector2)))/($vector1l,$vector2);rot(将一个向量绕着由另一个向量所定义的轴旋转一定的角度)/rot($vector1,$vector_axis,$degrees)
9.检测两个向量平行或垂直:dot(unit($vector1),unit($vector2)),如果=0,那么垂直;如果=1,那么平行
10.在mel语言中,不能把属性值赋给变量,必须用如下格式获得:$val=`getAttr expression1.time`;
11.连接属性:connectAttr 属性1 属性2
12.创建表达式:express -string "属性1=值";;适用于mel中对属性的赋值
13.变量:数组变量/$t={1,2,3};声明变量/int $t;
14.全局变量:Maya要求在每一个使用全局变量的域中重新声明该变量,如:
global int $a=1;
proc print_a(){
global int $a;
print($a);
}
print_a();
15.将一个整数转换为一个浮点数:float(3);;将浮点数转换为整数:int(3.7),结果为向下取整=3
16.算术比较运算:print(5>6);结果为:0或1
17.运算符:+,-,*,/,%,+=,-=,*=,/=,++,--,&&,||,!
18.取相邻最大整数:ceil($f);取相邻最小整数:floor($f)
19.在mel中的向量:不能直接将一个值赋给向量的一个分量,如:$abc.x=3;必须这样赋值:$abc=<<$abc.x,1,1>>
20.分隔字符串:tokenize "string1" $myarray;得到的结果将是以空白符来拆分字符串,并存入数组中;又:tokenize "string1" "char" $myarray;将得到以char来拆分字符串,并存入数组中
21.数组中所有没有被赋值的元素默认为0
22.数组的尺寸:size($myarray)
23.如果需要在脚本中使用一个非常的数组,在结束时使用mel中的clear命令清楚该数组:clear $myarray
24.模式选择:-c标记或不适用标记将选择创建模式;-q选择查询模式;-e选择编辑模式
如:sphere -q -radius nurbsSphere1 返回半径
sphere -e -radius 15 nurbsSphere1 修改半径
25.当希望存储命令的返回值时,可以在赋值运算的右边将命令置入反引号(``)中。如:string $coneNodeNames[]=`cone -name testing2`
26.使用eval命令:string $spherecommand="sphere"; string $nodenames[]=eval($spherecommand);表示创建一个球体,将sphere命令的返回值存入$nodenames数组中
27.在脚本中有三种运行mel命令的方法:(一)如果不关心返回值,作为独立一行的语句独立运行;(二)如果想将返回值存入一个变量,将其放入反引号中;(三)如果想在字符串中构造命令并执行它,使用eval函数命令。
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-06-01
可以参看MAYA 的说明书

主要是使用参数来控制动画

脚本名称 描述
xbmLangPathList 返回XBMLANGPATH环境变量中的路径。
xform 用来设置或查询transformation节点中的任何元素。它也能被用来查询一些不能被直接设置的数值,
如transformation矩阵或bounding box。它也能被用来把中心点设置成合适的值。"
waitCursor 设置Maya程序的图标是否为等待图标。
warning 让用户在他(她)的教本执行时显示warning信息。
whatIs 查询一个字符串在Maya中是一个“命令”,“Mel程序”,“教本”,还是一个变量,如果时变量则给出变量的类型。
window 创建一个不可见的窗口。
windowPref 创建、修改或查询窗口的属性,注意对main Maya窗口和Command窗口不起作用。
wire 创建一个曲线变形器。
wireContext 创建一个能被用来创建曲线变形器的工具。
workspace 创建,打开或编辑一个给定的workspace文件,如果没有指定,则假定时当前的workspace。
wrinkle 用来创建一个曲面褶皱的网络,它自动创建一个用来控制一个曲线变形器的褶皱曲线,
而这个褶皱曲线则连接到一个cluster变形器上。
wrinkleContext 建立一个用来创建褶皱的连接。
writeTake 用来记录从记录数据的设备到一个mov文件的数量。
wtPaintCtx 用来在选定的nurbs曲面上绘画簇的权重。
validateShelfName 用来检测shelf tab的名字是否合法。
valuePaintCtx ?看不懂,小弟E文较差 x_x
verifyCmd 按照相应的值查询一个命令中的每个标签。
view2dToolCtx 居然没有描述NND
viewCamera 把摄像机移到指定摄像机的边上或顶上。
viewClipPlane 用来查询或设置指定摄像机的剪切平面。
viewFit 让选中摄像机显示除了摄像机本身外的指定物体,就是F吧
viewHeadOn 让指定摄像机按照法线观察物体,并让物体充满屏幕。
viewLookAt 让摄像机看向所有选中物体的中心
viewPlace 用来设定摄像机的一点参数:摄像机位置,摄像机瞄准点的位置,摄像机的方向,摄像机是否有透视,
视角以及向上轴。
viewSet 把选中摄像机设置到预定义的位置。
visor 创作或操作Visor窗口
volumeAxis 设置volumeAxis动力场
vortex 设置vortex动力场
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快照

元道相机的mel什么意思
mel是MayaEmbeddedLanguage(Maya内置语言)的缩写,是一种强大的du命令和脚本语言,让你直接控制Maya的特征、进程和工作流程。mel有一个很重要的功能是编写界面,Maya的整个界面是用mel编写的,Maya中的所有界面元素都可以编写到你自己的mel程序界面中,你可以用mel跟据自己的习惯定制自己的操作界面。Maya中...

maya中的mel脚本是什么意思?
mel语言是maya自己的一套编程语言,mel是maya的基础,是比较偏底层的东西。如果你稍有编程基础的话,可以很容易掌握它。我们可以看到除了maya的插件(maya内部很多组件也都是以插件形式存在的)以外,所有的操作都可以在script editor窗口中有相应的mel语言与之对应。例如:创建一个常规的polygon球体,打开wi...

maya中的mel是什么啊?
mel语言是maya自己的一套编程语言,mel是maya的基础,是比较偏底层的东西。如果你稍有编程基础的话,可以很容易掌握它。我们可以看到除了maya的插件(maya内部很多组件也都是以插件形式存在的)以外,所有的操作都可以在script editor窗口中有相应的mel语言与之对应。例如:创建一个常规的polygon球体,打开wi...

maya特效需要什么编程语言
MEL,即Maya Embedded Language,是一种基于C语法的脚本语言,广泛应用于Maya软件开发。Python,作为一种全能编程语言,其在Maya中的应用也极为广泛,通过PyMel或MayaPython等模块,能够高效完成特效制作。在maya特效开发中,掌握专业软件辅助工具的使用至关重要,如maya自带的deformer和shader插件,以及nuke等影...

maya用图像来表示脚本的是
MEL。MEL是一种专门为Maya设计的脚本语言,用于在Maya中自动化执行各种任务和操作,通过MEL脚本,可以使用图像来表示场景中的模型、材质、灯光等元素,并且可以通过编写脚本来控制这些元素的属性和行为。

mel语言补充说明
mel是Maya内部机制与用户交互的桥梁,它并不能直接操作节点和属性,通常需要借助表达式来实现实时的物体控制。表达式与动画密切相关,每个关键帧的计算都离不开它。在表达式中,虽然可以使用mel,但大部分mel在表达式中的应用并不适用,比如编写界面的mel通常不会被用于表达式中。mel脚本适用于所有场景,但...

mel语言什么是表达式?mel与表达式有什么关系?
在Maya的文档中,关于mel语言与表达式的关系,有清晰的阐述。首先,mel命令和MEL脚本有着不同的目标。当你使用mel命令时,比如创建一个球体,它是为了执行单一的动作。MEL脚本则更为灵活,它是一个命令列表,你可以在其中编写一系列操作,比如创建一个类似墙壁的物体,并为其应用砖块纹理。由于脚本存储在...

mel是什么意思?
MEL (Maya埋入式语言)为Maya提供了基础。Maya界面的几乎每一个要点都是在MEL指令和脚本程序上建立的。由于Maya给出了对于MEL自身的完全的访问,你可以扩展和定制Maya。通过MEL,你可以进一步开发Maya使它成为你和你的项目的独特而创新的环境

关于mel脚本语言的编写与使用
ge(Maya内置语言)的缩写,是一种强大的命令和脚本语言,让你直接控制Maya的特征、进程和工作流程。mel能做什么,不能做什么?能做的mel有一个很重要的功能是编写界面,Maya的整个界面是用mel编写的,Maya中的所有界面元素都可以编写到你自己的mel程序界面中,你可以用mel跟据自己的习惯定制自己的操作界面。Maya中的所有...

mel语言的如何编写mel
mel是脚本语言,这就意味着你可以用任何文本编辑器来编写,比如写字板、记事本等。Maya自带的编辑器不好用,所以我们一般使用外部编辑器来编写mel。比较专业的编辑器有:TextPad、UltraEditor、EditPlus等,有了这些编辑器后还要在网上(比如Highend3d)下载一个mel语法加亮文件,配置好后,才好用。

相似回答