Maya 中的mel语言是怎莫回事?(高分)

2024-11-16 17:30:34
推荐回答(4个)
回答(1):

我来一一回答你的问题。
0:如果你是学动漫设计与制作的话,建议你学maya,因为3Dmax相对于做建筑方面的优势会强一些,当然了3Dmax的功能还是很强大的。不过就目前来说maya正在慢慢取代3Dmax,如果是学室内外设计的话建议学3Dmax。学动漫就学maya去吧,你先把maya学会吧,一位信息博士说过,“一个人一生只要能做好一件事,比如精通一个软件,就足以享用一辈子”。当然在以后你可以多了解了解3Dmax互长补短嘛。
1:学maya并不是一定要让你学mel语言,就像建模,材质,动画,你不会mel语言一样可以把软件发挥的淋漓尽致。只能说会mel语言会给你带来很多便捷。像动力学就会涉及到很多mel语言的表达式等等,不过你放心你学maya没必要担心mel语言,因为他本身并没有那么可怕,作为一个初中级者,mel语言很少用到。所以现在别考虑mel语言的事件,因为mel语言本身就是maya的一部分,就像你学maya就不会问学建模是不是很难,学材质会不会很难等等。
2:于C语言,汇编语言有一点联系,会C语言对你学习mel语言帮助很大,但没有学过C语言或汇编语言的也不会妨碍你去学习mel语言。你说你学的不好,证明你还学过,还有点基础,那学mel问题应该不大了。像我们学maya时根本不知道mel语言是什么,还有mel语言这回事。所以你就放心吧,你学mel语言肯定会比别上手更快。
3:mel语言本身就是maya的一部分,不过在你学maya的模型 材质 动画时都不会设计到mel的知识,不过在你学习动力学时,老师会专门花上一段时间来给你们讲解mel语言是怎么一回事。因为动力学涉及到很多表达式的东西。
4:自学本身就是一项非常艰巨的任务。如果你有时间自己慢慢自学也不是没有坏处,但如果你有时间,有经济条件,我觉得你去培训班,效果会来的更快一些。不过有点,你最好自己先初学一遍,然后去培训班,这样效果非常好。这是我的经验,大概就是跟预习差不多吧,上课听讲有征对性。
5、你现在自学3Dmax,如果说学的时间不长的话,那最好改学maya。因为外面的培训班 maya是动漫的主流软件。再说你还是学动漫的。当然你要是执意学3Dmax也行,因为现在很多小公司还是在招3Dmax方面的人才的。
好了 你的五个问题我都回答完了。。我待吃饭去了。 如果还有问题就加我QQ:95871461
最后我再简单跟你介绍一下mel语言吧

mel语言是maya自己内部的一套编程语言,mel是maya的灵魂,是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词条。

*表达式的作用:
1,使属性与时间建立关系,来产生动画效果。
2,建立属性与属性的联系,来达到用一个属性控制另一个属性的目的。
/////////////////////////////////
一:MAYA中的预定义变量(时间)
1,"time"是一个变量,单位“秒”。
2,"frame"是一个变量,单位“贞”。
(*注意*属性的名称一定要写完整,并在写完后加终止符“;”)
例如:nurbsSphere1.translateX = time;
(*注意*属性名称是分大小写的,"aa Aa AA "是三个完全不同的名称)
(其中“=”相当于赋值操作符,顺序是自右向左先计算等号右侧,再把 结果赋给左侧。)
*数学运算符;
“+”(加);“-”(减);“*”(乘);“/”(除);“%”(取于 ,相当于一个数被另一个数整除后的余数)
二:MAYA中的自定义变量
作用:用来存储表达式中用到的临时结果。
类型:1;浮点型变量:(就是带有小数点的变量)
声明符为“float”;
例如:float $aa = 3.14159;
(*注意* a,所有变量名称前必须加“$”。
b,变量的名称必须以英文字母开头。
c,变量名称中不准许出现特殊符号,例如 “!,@,#,%,^,&,*"但可以出现下划线和数字”float $aa_1"。
d, 变量名称严格区分大小写,例如:“$aa,$Aa”是两 个完全不同的变量。)
2;整数型变量;
声明符为“int”;
例如:int $bb = 10;
3;字符串变量;
声明符为“string";
例如:string $cc = "maya7.0";
4;矢量变量;
声明符为“vector ”;
例如:vector $dd = <<3.3,4,-5.5>>;
三;MAYA中的语句和运算符
1,条件语句
if (条件)//(“如果”的意思)
{
语句1;
语句2;
}
例如;if (time < 3)
(*注意*条件语句后不能加“;”)
也可以同“else”(当“否则”讲)配合使用;
例如;
if (time < 3)
ball.tx = -6;
else if (time >= 3 && time <= 6)
ball.tx = 0;
else
ball.tx = 6;
或者不嵌套写,并列写也可以。
if (time < 3)
ball.tx = -6;
if (time >= 3 && time <= 6)
ball.tx = 0;
if (time > 6)
ball.tx = 6;
(*注意*多重并列时条件不能冲突,不可同时满足两个以上的条件 。)
2,关系运算符
“〈”(小于)//“〉”(大于)//“〈=”(小于等于)//“〉=” (大于等于)//“==”(等于)//“!=”(不等于)
(*注意*如果条件后要用等号,一定要用双等号“==”)
3,逻辑运算符
“&&”(并且)(相乘的关系,必须两个条件同时成立)
“||”(或者)(相加的关系,有一个条件成立即可)
“!”(非)
4,快捷操作符
“+=”“-=”“*=”“/=”“%=”“++”“--”
(以上均是在自身的基础上进行)

*“print”(“打印”把变量的数值显示在屏幕上)*

四;MAYA中的函数
1,算术函数
a;“abs( )”(绝对值函数)
例如;abs(5) 5
abs(-5.5) 5.5
abs(0) 0
b;“ceil( )” (返回比括号中数大的最小整数)
例如;ceil(4.3) 5
ceil(-2.3) -2
c;“floor( )”(返回比括号中数小的最大整数)
例如;floor(4.3) 4
floor(-5.6) -6
d;“trunc( )”(取得括号中数的整数位)
例如;trunc(10.39) 10
trunc(-3.14) -3
e;“min(x,y)”(取得括号中两数比较后较小的数)
例如;float $a = 6.3;
float $b = 5.6;
float $c = 4.3;
float $min = min($a,$b);
float $min = min($min,$c);
f;“max(x,y)”(取得括号中两数比较后较大的数)
例如;max(2.1,3.5) 3.5
g;“sign( )”(返回括号中的符号,正数返“1”,负数返“-1 ”,零则返回“0”)
例如;sign(5) 1
sign(-5) -1
sign(0) 0
h;“clamp(min,max,parameter)”(求范围,当parameter小于min 时则返回min,当大于 max时则返回max,在min和max之间时则反回 其自身)
例如;clamp(0,1,time);(只取time“0-1”的部分)
2,指数函数
a;“exp( )”(求衰减系数“e”的多少次方)(e = 2.718);
例如;exp(time);(基于时间递增)
b;“pow(x,y)”(求x的y次方)
例如;pow(2,3) 8
pow(8,1.0/3) 2
c;“sqrt( )”(专用开平方)
例如;sqrt(4) 2
d;“log(x)”(求x是e的多少次幂)
例如;log(1) 0
log(2.718) 1
e;“log10(x)”(求x是10的多少次幂)
例如;log(100) 2
log(1) 0
log(1000) 3
f;“hypot(x,y) (勾股定理)
例如;hypot(3,4) 5
3,随机函数
a;”noise( )”(噪音)
例如;noise(time)
noise(frame)
b;“dnoise( ) (噪音,对矢量进行操作)
例如;dnoise(<<2,3,4>>)
c;“rand( )”(随机函数的一种,针对浮点类型)
例如;rand(5) 在0到5之间随机
rand(2,4) 在2到4之间随机
d;“seed ( )”(固定随机函数)
例如;seed(1) 1
e;“sphrand ( )”(针对矢量的球型随机)
例如;sphrand(5)
sphrand(<<5,1,5>>)
4,三角函数
a;“sin ( )”(正弦函数)
例如;sin(1) (表示1弧度的正弦值)1弧度=180/3.14度
b;“cos ( )”(余弦函数)
例如;cos(1) (表示1弧度的余弦值)
5,转换函数
a;“deg_to_rad”(将角度转为弧度)
例如;deg_to_rad(180) 3.14
b;“ hsv_to_rgb”(颜色转换模式)
例如;hsv_to_rgb(<<360,1,1>>) <<1,0,0>>
6,曲线函数
a ;“linstep(min,max,parameter)”(线性递增函数,返回值永 远是从0到1)
例如;linstep(3,6,time)
b;“hermite( )”(自定义曲线函数,且返回结果也为矢量,用 法较为复杂)
7,矢量函数
a;“mag ( )”(求矢量大小,求得的结果是一个浮点数)
例如; mag(<<3,4,5>> - <<1,2,3>>) 3.464102
b;"angle ()" (求得两矢量之间的加角,单位永远是弧度,永远取小的角 度,永远取正数)

(以上函数只要知道是干什麽用的即可)

回答(2):

这两款软件很相似 但是相对来说国内较发达也是应用较广的软件是MAX MAYA在国内还是个半吊子 其实学习动漫制作的话还是学MAYA比较好 但是难度很大 我觉得你要是一心想做动漫的话 还是学Maya吧 要是你以后有了更多见地就再学MAX

我的计算机语言课也很烂 但是呢 努力学的话 学好MAYA是没有问题的 而且MAYA里有很多分支工作 看你做什么 按情况而定吧

要是你自学的话 先吧基础打牢一点 要知道技术是为艺术服务的 不要一味看重技术 得不偿失 既然你是学动漫的 就应该看长远点 多学习基础知识 什么解剖啊 这些知识是一生受用滴!提高审美能力!

自学MAX还有可能 但是自学MAYA可能会有很大困难 两款软件其实掌握其一就行了 看你自己喜欢什么 不要学这个 又改另一个 学习最忌讳这个!

回答(3):

学一种就行了 MEL可以不学 动漫的就学MAYA~~`在中国我还是喜欢用MAX 基本上都用MAX的~`要想就业就要有学历~`学历很重要的```

回答(4):

懂得些基础的C语言命令MEL就很好上手了