使用运行时表达式

 
 
 

可为粒子对象(形状节点)创建另一种类型的表达式 — 运行时表达式。默认情况下,在播放期间运行时表达式会执行每个帧。转到开始时间时(或在发射粒子时),运行时表达式并不会执行。

通常会为粒子对象创建两种类型的表达式:一种是在第一帧对属性值进行初始化的创建表达式,另一种是在后续的几帧中控制属性值的运行时表达式。

以下步骤显示了如何创建运行时表达式以在播放期间更改粒子颜色。

创建运行时表达式

  1. “属性编辑器”(Attribute Editor)“每粒子(数组)属性”(Per Particle (Array)Attributes)区域中,在 RGB PP 框上单击鼠标右键,然后从弹出菜单中选择“运行时动力学前表达式”(Runtime Before Dynamics Expression)
  2. 输入该运行时表达式:
    BubblesShape.rgbPP = sphrand(1);
    
  3. 单击“创建”(Create)以编译表达式。
  4. 播放动画。

    动画播放时,粒子会以随机颜色闪烁。播放期间,运行时表达式会控制 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 值,因此就具备不同的颜色。每帧的颜色都有所变化。

  5. 回放并再次播放动画。

    转到开始时间时,粒子将变为红色,在播放期间则为随机颜色。

    注意

    在场景中,对每个粒子对象(形状节点)只能使用一个创建表达式和一个运行时表达式。若要控制单个粒子对象的多个属性,必须在一个创建表达式和一个运行时表达式中完成该操作。无法像对其他类型的对象一样为每个属性创建单独的表达式。因此,不需要从“表达式编辑器”(Expression Editor)“属性”(Attributes)列表中选择属性。