mel是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mel是啥相关的知识,希望对你有一定的参考价值。

参考技术A 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函数命令。 参考技术B mel
就是maya 内置语音,就是各种命令。跟c,c++等有相通之处!
参考技术C 回答

您好,我这边正在为您查询,请稍等片刻,我这边马上回复您~

亲,您好,很高兴为您解答。mel是巨龙

巨龙也许是最后的蜥脚类食草恐龙,但其尾脊椎残体多为碎片。然而它的形式似乎没变,头小、尾长、大象般的肢,颈有点短。其最重要的区别处是尾脊椎开始处的球凸和凹窝铰合处。由于脸很长,故最完整的颅有点像梁龙。至少有一种骨质鳞甲演化为甲壳。虽然这种恐龙当时分布于全球各地,但是,由于骨骼脆弱,难以留下化石记录,迄今发现的化石都非常零碎,头骨化石尤其稀少。考古学家对这个家族知之甚少,在此之前都没有发现整只的恐龙化石。2001年8月2日,美国考古学家经过6年的挖掘研究,宣布在非洲马达加斯加岛上发现一具迄今发现的最完整的巨龙化石。

亲,还有什么可以帮助您的吗?

希望以上回答对您有所帮助~ 如果您对我的回答满意的话,麻烦给个赞哦~

以上是关于mel是啥的主要内容,如果未能解决你的问题,请参考以下文章

maya 在 pymel 中运行 mel

Mel频率倒谱系数-MFCC

音频处理库性能对比:计算mel频谱的速度哪个更快?

有没有可能使用 mel 从另一个 movlet 过滤 movelet 的方法?

python Python和Mel的例子

python 用于包装流氓mel命令的工具