为了账号安全,请及时绑定邮箱和手机立即绑定

MAYA中的mel语言?

/ 猿问

MAYA中的mel语言?

海绵宝宝撒 2018-10-15 13:09:33

MEL中,修改了输入框的值,但窗口的输入框的值并没有改变?
刚建窗口时设置v1参数为0,
执行下面语句
floatFieldGrp -e -v1 100 canshu;
v1显示仍为零

查看完整描述

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 ()" (求得两矢量之间的加角,单位永远是弧度,永远取小的角 度,永远取正数)

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



查看完整回答
反对 回复 2018-11-07

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信