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"是一个变量,单位“贞”。
(*注意*属性的名称一定要写完整,并在写完后加终止符“;”)
例如:anslateX = time;
(*注意*属性名称是分大小写的,"aa Aa AA "是三个完全不同的名称)
(其中“=”相当于赋值操作符,顺序是自右向左先计算等号右侧,再把 结果赋给左侧。)
*数学运算符;
“+”(加);“-”(减);“*”(乘);“/”(除);“%”(取于 ,相当于一个数被另一个数整除后的余数)
二:MAYA中的自定义变量
作用:用来存储表达式中用到的临时结果。
trunc函数是什么 类型: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)
= -6;
else if (time >= 3 && time <= 6)
= 0;
else
= 6;
或者不嵌套写,并列写也可以。
if (time < 3)
= -6;
if (time >= 3 && time <= 6)
= 0;
if (time > 6)
= 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 ( )”(余弦函数)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论