在 3ds Max 中,您可以使用数学表达式(而不是常数)来表达参数值。例如,您可以使用表达式 24*6 来表示数字 144。
关联参数、表达式控制器和数值表达式求值器都使用本主题中介绍的表达式。
表达式是一种能得出数值的数学函数。可以使用表达式来控制下列场景元素:
场景元素 | 可计算属性 |
---|---|
创建参数 | 任意数字创建参数 |
变换 | 位置 [X、Y、Z] X 轴旋转 Y 轴旋转 Z 轴旋转 缩放 [X%、Y%、Z%] |
修改器 | 任意数字修改器参数(包括创建参数) |
材质 | 颜色 [R、G、B] 任意数字材质参数 |
在下表中,p 和 q 代表任意标量值或表达式,V 和 W 代表任意向量值或表达式。(字符“x”用作向量交叉乘积运算符。)
操作符 | 使用 | 含义 |
---|---|---|
+ | p+q | 其他 |
- | p-q | 差集 |
- | -p | 加性逆元 |
* | p*q | 乘法 |
/ | p/q | 除法 |
^ | p^q | 幂(p 的 q 次幂) |
** | p**q | ^ 和 ** 的运算方法相同 |
也可以将逻辑(布尔)运算符用于标量值。如果为真,这些运算符都得出 1,否则得出 0:
操作符 | 使用 | 含义 |
---|---|---|
= | p=q | 等于 |
< | p
| |
> | p>q | 大于 |
<= | p<=q | 小于或等于 |
>= | p>=q | 大于或等于 |
| | p|q | 逻辑或,如果 p 或 q 不为零,则得出 1;否则得出 0。 |
& | p&q | 逻辑和,如果 p 和 q 都不为零,则得出 1;否则得出 0。 |
在为表达式控制器编写的表达式中,用符号名称表示变量。可以创建符号名称,以在表达式中包含常量或变量值。同时还提供了若干个预定义的变量。其中一些变量具有常量值,其他变量则可以改变。
在用于参数关联和数值表达式求值器的表达式中,您可以将预定义的变量与常数值一起使用。
变量名称 | 常量值 | 使用 |
---|---|---|
pi | 3.14159 | 圆周长与直径的比。 |
e | 2.71828 | 自然对数的底。 |
TPS | 4800 | 每秒刻度。该刻度是 3ds Max 动画的基本时间单位。 |
以下为具有可变的、基于时间的值的预定义变量(变量名称区分大小写):
变量名称 | 含义 |
---|---|
F | 帧编号。对于每一帧,F 等于当前帧编号,从 0 开始计算。根据活动时间段中帧编号的不同,帧的范围会有所变化。 |
NT | 规格化时间。根据定义,规格化时间 (NT) 在活动时间段中的范围为从 0 到 1,无论该段中有多少帧。如果表达式基于 NT,则其效果在范围内只产生一次。也可以将 NT 乘以一个因子,以便表达式的效果可以产生一定次数(例如,2*NT 会使表达式的效果产生两次)。如果更改时间段的长度,则基于 NT 的表达式会加速或减速运行。 |
S | 秒数(以秒为单位的已用时间)。已用时间从第一帧开始到当前帧结束来计量。根据活动时间段总时间的不同,秒数范围会有所变化。 |
T | 刻度(以刻度为单位的已用时间)。每秒有 4800 个刻度。已用时间从第一帧开始到当前帧结束来计量。根据活动时间段总时间的不同,刻度范围会有所变化。 |
以下列出的函数可用于表达式。在该列表中,p、q 和 r 代表标量值或标量表达式。V 和 W 代表向量值或向量表达式。
正弦、余弦和正切函数采取以度为单位的角度,并得出浮点值。反三角函数采取浮点值,并得出以度为单位的值。
功能 | 含义 |
---|---|
sin(p) | 正弦 |
cos(p) | 余弦 |
tan(p) | 正切 |
asin(p) | 反正弦 |
acos(p) | 反余弦 |
atan(p) | 反正切 |
功能 | 含义 |
---|---|
ln(p) | 以 e 为底的自然对数 |
log(p) | 以 10 为底的常用对数 |
exp(p) | 指数函数 exp(p)=e^p |
pow(p,q) | p 的 q 次幂 (p^q) |
sqrt(p) | 平方根 |
abs(p) | 绝对值 |
min(p,q) | 最小值得出 p 或 q,这取决于哪一个更小 |
max(p,q) | 最大值得出 p 或 q,这取决于哪一个更大 |
mod(p,q) | p 除以 q 后的余数 |