要创建各种类型的粒子运动,可以将向量值指定给位置、速度或加速度属性。有关使用这些属性的示例,请参见写入运行时表达式。
除非您具备扎实的物理学知识,否则请避免设置位置、速度和加速度属性的组合。
若要使用运行时表达式为粒子指定平滑的随机运动,请使用随机数函数(如 sphrand)将随机数指定给“粒子形状”(particle shape)的加速度属性。更改加速度始终会实现平滑的运动,无论其值的更改多么突然。
若要使用运行时表达式为粒子指定抖动随机运动,请使用随机数函数(如 sphrand)将随机数指定给“粒子形状”(particle shape)的速度属性或位置属性。
有关如何使用随机数函数的详细信息,请参见随机数函数简介。
如果表达式和动态字段控制对象的位置、速度或加速度,Maya 将首先计算表达式的影响,然后添加字段的影响。
假设粒子带有默认重力选项的重力场的影响下落下。重力使粒子以 9.8 个单位/每秒的速率沿 Y 轴加速。换句话说,重力的默认加速度为 <<0,-9.8,0>>。
velocity = velocity + <<1,0,0>>;
随着每个帧播放,Maya 首先使用表达式语句计算粒子的速度。在 X 轴方向上,速度每秒增加 1 个单位。随后,Maya 将重力加速度累加到速度上。Maya 使用组合的结果来计算粒子的位置。
当然,您不会看到该计算过程。在执行所有计算之后,该帧会在适当位置显示粒子。
该表达式将常量 <<1,0,0>> 添加到动画播放时每帧的粒子速度上。这会使粒子随着时间的增加以增加速度沿 X 方向移动。增加速度与加速度相同。
加速度属性的工作方式与位置或速度属性在一个重要方面有所差异。Maya 将其值初始化为每帧之前 <<0,0,0>>。如果过采样级别大于 1,则在每个时间步骤之前都会发生初始化。
acceleration = acceleration + <<0,1,0>>;
不是将 <<0,1,0>> 累加到每帧的加速度值,对于每个粒子,加速度保持为常量 <<0,1,0>>。发生这种情况的原因是,Maya 将加速度的值初始化为每帧之前 <<0,0,0>>。
假设使用默认设置将粒子对象连接到重力。粒子的加速度变为 <<0,1,0>> 加上 <<0,-9.8,0>>,等于 <<0,-8.8,0>>。在表达式中指定的加速度会放慢重力的向下加速度。
acceleration = acceleration + sphrand(3);
由于 Maya 将加速度设置为每帧之前 <<0,0,0>>,因此该语句的结果与以下语句的结果相同:
acceleration = sphrand(3);
随着每个帧播放,Maya 首先使用表达式语句计算每个粒子的加速度。每个粒子都会收到 sphrand (3) 函数的结果。
sphrand (3) 函数提供了一个向量,其随机选择的组件驻留在半径为 3 的原点处居中的球形区域中。每个粒子接收不同的向量值。
最后,Maya 将添加重力的加速度累加到从 sphrand (3) 产生的表达式加速度上。该帧在产生的位置显示每个粒子。
由于从表达式生成随机值,因此每个粒子拥有的加速度在方向和幅值上都与重力稍有不同。由于会对每帧的每个粒子执行 sphrand (3) 函数,因此每帧的每个粒子的加速度会有所不同。