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函数命令。
温馨提示:内容为网友见解,仅供参考
元道相机的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语法加亮文件,配置好后,才好用。