可为粒子对象(形状节点)创建另一种类型的表达式 — 运行时表达式。默认情况下,在播放期间运行时表达式会执行每个帧。转到开始时间时(或在发射粒子时),运行时表达式并不会执行。
通常会为粒子对象创建两种类型的表达式:一种是在第一帧对属性值进行初始化的创建表达式,另一种是在后续的几帧中控制属性值的运行时表达式。
以下步骤显示了如何创建运行时表达式以在播放期间更改粒子颜色。
BubblesShape.rgbPP = sphrand(1);
动画播放时,粒子会以随机颜色闪烁。播放期间,运行时表达式会控制 RGB PP 属性。因为 RGB PP 是每粒子属性,因此运行时表达式会针对每帧每个对象的每个粒子而执行。对于每个粒子,表达式会指定 RGB PP 属性为执行参数为 1 的 sphrand 函数后输出的结果。sphrand 函数是 Maya 所拥有的众多有助于表达式的内置数学函数之一。
参数为 1 的 sphrand 函数会为每个粒子的 RGB PP 颜色指定一个随机向量。向量表示半径为 1 的球形区域中的随机点。左边、中间和右边的 RGB PP 颜色组件获得的值不小于 -1 且不大于 1。(小于 0 的 R、G 和 B 值将视为 0 — 黑色。)
每次执行 sphrand 函数时会返回不同的随机向量,因此每个粒子将收到不同的随机 RGB PP 值,因此就具备不同的颜色。每帧的颜色都有所变化。