(有时间会写一篇如何创建表达式)
目录
一、预定义变量(时间)
- "time" 是一个变量,单位“秒”。
- "frame" 是一个变量,单位“贞”。
1. 例:
nurbsSphere1.translateX = time;
2. 例:
//小于5秒执行
if(time<=5)
{
语句1;
语句2;
}
3. 例:
//200~500帧执行
if(frame>=200 && frame<=500)
{
语句1;
语句2;
}
二、MAYA中的自定义变量
1. 整数类型
(Maya中的变量名前需要有 “$”)
- int
(例:int $a = 10)
2. 浮点类型
- float
(例:float $b = 3.14)
3. 字符串
- **string **
(例:string $name = maya)
4. 矢量
- vector
(例:vector $c = <<3.14,10,3.8>>)
三、语句和运算符
1. 条件语句
if(条件)
{
语句1;
语句2;
}
else if(条件)
{
语句1;
语句2;
}
else
{
语句1;
语句2;
}
2. 循环语句
//简略
1. while
2. for
3. do...while
四、MAYA中的函数
1. 算数函数
- "abs( )" (绝对值函数)
例:
abs(5) 结果:5
abs(5.5) 结果:5
abs(0) 结果:0
- "ceil( )" (返回比括号中数大的最小整数)
例:
ceil( 4.3) 结果:5
ceil( -2.3) 结果:-2
- "floor( )"(返回比括号中数小的最大整数)
例:
floor( 4.3) 结果:4
floor(-2.3 ) 结果:-3
- "trunc( )"(取得括号中数的整数位)
例:
trunc(4.3 ) 结果:4
trunc(-2.3 ) 结果:-2
- "min(x,y)"(取得括号中两数比较后较小的数)
例:
min(3,5) 结果:3
min(1.2,3.4) 结果:1.2
min(5,2.4) 结果:2.4
- "max(x,y)"(取得括号中两数比较后较大的数)
例:
max(3,5) 结果:5
max(1.2,3.4) 结果:3.4
max(5,2.4) 结果:5
- "sign()"(返回括号中的符号,正数返“1”,负数返“-1 ”,零则返回“0”)
例:
sign(5) 结果:1
sign(-5) 结果:-1
sign(0) 结果:0
- "clamp(min,max,parameter)"(求范围,当parameter小于min 时则返回min,当大于 max时则返回max,在min和max之间时则反回 其自身)
例:
clamp(0,1,0.5) 结果:0.5;
clamp(0,1,-1) 结果:0;
clamp(0,1,2) 结果:1;
2. 指数函数
- "exp( )"(求衰减系数“e”的多少次方)(e = 2.718)
例:
exp(time);结果:基于时间递增
- "pow(x,y)"(求x的y次方)
例:
pow(2,3) 结果:8
pow(8,1.0/3) 结果:2
- "sqrt( )"(专用开平方)
例:
sqrt(4) 结果:2
sqrt(8) 结果:3
- "log(x)"(求x是e的多少次幂)
例:
log(1) 结果:0
log(2.718) 结果:1
- "log10(x)"(求x是10的多少次幂)
例:
log(100) 结果:2
log(1) 结果:0
log(1000) 结果:3
- "hypot(x,y)" (勾股定理)
例:
hypot(3,4) 结果:5
3. 随机函数
- "noise( )"(噪音)
例:
noise(time)
noise(framr)
- "dnoise( )" (噪音,对矢量进行操作)
例:
dnoise(<<2,3,4>>)
- "rand( )"(随机函数的一种,针对浮点类型)
例:
rand(5) 结果:在0~5之间随机一个数
rand(2,5) 结果:在2~5之间随机一个数
- "seed ( )"(固定随机函数)
例:
seed (1) 结果:1
- "sphrand ( )"(针对矢量的球型随机)
例:
sphrand(5)
sphrand(<<5,1,5>>)
4. 三角函数
- "sin ( )"(正弦函数)
例:
sin(1) (表示1弧度的正弦值)1弧度=180/3.14度
- "cos ( )"(余弦函数)
例:
cos(1) (表示1弧度的余弦值)
5. 转换函数
- "deg_to_rad"(将角度转为弧度)
例:
deg_to_rad(180) 结果:3.14
- "hsv_to_rgb"(颜色转换模式)
例:
hsv_to_rgb(<<360,1,1>>) 结果:<<1,0,0>>
6. 曲线函数
- "linstep(min,max,parameter)"(线性递增函数,返回值永远是从0到1)
例:
linstep(3,6,time)
- "hermite( )"(自定义曲线函数,且返回结果也为矢量,用法较为复杂)
7. 矢量函数
- "mag ( )"(求矢量大小,求得的结果是一个浮点数)
例:
mag(<<3,4,5>> - <<1,2,3>>) 结果:3.464102
- "angle ()" (求得两矢量之间的加角,单位永远是弧度,永远取小的角度,永远取正数)