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

作者&投稿:温德 (若有异议请与网页底部的电邮联系)
maya中的mel脚本是什么意思~

在script editor里打开你的mel脚本,全选 然后按住鼠标中键拖到上方的工具架上 如果想删除某个工具架上的按钮 用鼠标中键拖着它到右边的垃圾桶图标

操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解
释你的输入,并且处理各种各样的操作系统的输出结果。 shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输
入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被
重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。 Shell基本上是一个命令解释器,类似于DOS下的command.com
。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。

交互式shell和非交互式shell 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交
互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非
交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

shell的类型在UNIX中主要有两大类shell Bourne shell (包括 sh, ksh, and bash) Bourne shell ( sh) Korn shell ( ksh) Bourne Again
shell ( bash) POSIX shell ( sh) C shell (包括 csh and tcsh) C shell ( csh) TENEX/TOPS C shell ( tcsh).
附:LINUX系统的shell原理

Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向
Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用
程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

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函数命令。

可以参看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快照


maya插件如何安装
以“shelf_插件名.mel”开头的文件放到: C:\\Documents and Settings\\计算机名\\My Documents\\maya\\7.0\\prefs\\shelves 在插件中,以.bmp或.xpm结尾(后缀)的文件放到: C:\\Documents and Settings\\计算机名\\My Documents\\maya\\7.0\\prefs\\icons 在插件中,...

VC编写了一个Maya的自定义节点,在VC里运行后显示成功,但是放到Maya里运 ...
{ private:float real;float imcy;public:void set(float x,float y);void show();Complex add(Complex c);Complex sub(Complex c);Complex mul(Complex c);Complex diy(Complex c);};void Complex::set(float x,float y){ real = x;imcy = y;...

请问学习动画制作主要应该掌握什么软件 3D和maya哪个好?
Maya的工业应用: 各行各业的艺术家们都使用Maya软件,因为它是世界上最强大的整合3D建模、动画、效果和渲染解龇桨浮�aya还增强了2D图像的画质和表现力,这就是为什么电影电视艺术家、游戏开发人员、可视化行业专业人员、网页和印刷设计人员选择Maya来提升他们的作品进入更高的境界。选择你自己的专业类别,看看为什么May...

Def Bond - N Dee (Melgroove)的《Crossover》 歌词
歌曲名:Crossover 歌手:Def Bond - N Dee (Melgroove)专辑:Le ThèMe.「crossover」作词∶AYA KAMIKI 作曲∶TATOO 歌∶上木彩矢 このまま远くへ流れて どこまで行けば会えるのだろう?気付いて答えてほしいよ いつまで嘘に嘘を重ねて 君の影追いかけ巡り巡る季节 守るべき物と守られ...

世界上有名的狙击手名字
Nina Lobkovskaya (F) W.W. II U.S.S.R. 89Lidiya Gudovantseva (F) W.W. II U.S.S.R. 76Helmut Wirnsberger W.W. II Germany 64Alexandra Shlyakhova (F) W.W. II U.S.S.R. 63P. Grjaznov W.W. II U.S.S.R. 57

历史上有记录的最强的狙击手是谁?
Mel Bauch Vietnam U.S. Army ? Ronald R. Willoughby Vietnam U.S.M.C ? Dennis Toncar Vietnam U.S.M.C ? Vaughn Nickell Vietnam U.S.M.C ? Anthony Spanopoulos Vietnam U.S.M.C ? Thomas Casey Vietnam U.S.M.C ? Thomas Elbert Vietnam U.S.M.C ? Robert P. Millgan Vietnam...

历史上最出名的狙击手是谁?
不少有关军事狙击史的著作里都会提到那个在第一次世界大战中杀敌人数最多的狙击手,他来自澳大利亚,名字叫Billy Sing,全名William Edward Sing。他得过大英帝国杰出行为勋章(Distinguished Conduct Medal,DCM) 以及比利时政府颁发的战争十字勋章(Croix de Guerre) 。仅在加里波利战役不到四个月的时间里,他经证实的狙杀...

南沙群岛15254309190: maya中的mel脚本是什么意思 -
冯疤森得: 在script editor里打开你的mel脚本,全选 然后按住鼠标中键拖到上方的工具架上 如果想删除某个工具架上的按钮 用鼠标中键拖着它到右边的垃圾桶图标

南沙群岛15254309190: maya mel语言 在动画上有什么作用 -
冯疤森得: mel 是maya的语言,就跟中文是咱中国人的语言一样,所有maya的操作,不管是渲染,建立球模型,存盘,打开某窗口,都是在maya后台执行一条或者多条mel命令,所以说某高手凭借一段mel语句能完成一项很复杂的工作(比如自动装配)就...

南沙群岛15254309190: maya中的mel能不能作用在动画制做中? -
冯疤森得: 前一句话是错误的片面的.Mel命令就是Maya的脚本语言,命令涉及所有模块.其实界面上的所有命令实质上就是MEL命令,你从脚本编辑器中就可以观察出来.但是,情况往往是不平均的.所有三维软件当中,发展最为缓慢的要数动力学了,...

南沙群岛15254309190: maya 中用mel给选定的点添加骨骼的脚本是什么? -
冯疤森得: ConvertSelectionToVertices;$clust = `cluster -n tmpCluster`; float $clusterPos[] = `xform -q -rp $clust`; select -cl; joint -p $clusterPos[0] $clusterPos[1] $clusterPos[2] -roo xyz; delete $clust;

南沙群岛15254309190: mel ya fi mel梅尔的科幻mel什么意思 -
冯疤森得: mel是Maya Embedded Language(Maya内置语言)的缩写,是一种强大的命令和脚本语言,让你直接控制Maya的特征、进程和工作流程.

南沙群岛15254309190: 什么是mel语言? -
冯疤森得: mel语言是maya自己内部的一套编程语言,mel是maya的灵魂,是maya执行命令的语言.稍有编程基础的话,可以很容易掌握它.我们可以看到除了maya的插件(maya内部很多组件也都是以插件形式存在的)以外,所有的操作都可以在script ...

南沙群岛15254309190: maya中,表达式和MEL的详细区别是什么? -
冯疤森得: 表达式 可以理解为 依靠时间驱使的一段mel脚本程序 表达式本身并没有什么神奇之处,只是让某个属性在时间变化(或者状态变化,包括手动去调整其位置等等)的情况下,牵连地引发另外一个属性的变化 写出来就是 y = F(x) F就是表达式本身...

南沙群岛15254309190: 菜鸟问下!maya文件夹2009里面有很多Maya Script File 这样的东西有什么作用?
冯疤森得: 那里面都是maya 的脚本文件mel 那个就是maya-windows-seting/preference-Plug-in manager下面的所有插件 包括导入导出 ,mental ray 等等

南沙群岛15254309190: 这个maya的mel命令什么作用? -
冯疤森得: 这个的意思是让选择的骨骼层次 按照xyz方式统一轴向:-oj 就是orient joint (中文版的就是确认骨骼方向) xyz 是-oj操作的参数,你点开动画模板——骨骼——确认骨骼方向的参数设置,就可以看到对应参数列表了,后面两个应该也是对应的.当然如果是新版本的话,窗口界面就不会显示xyz,xxz之类的了,而是分成三行分别选择,但是指令还是一样的.

南沙群岛15254309190: 学习MAYA必须要学那个啥MEL脚本吗,不学就做不出好片子? -
冯疤森得: 不一定,学会当然有用,但做CG的话,光靠Maya也不现实,肯定要用到其他软件

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网