在本课程中,您已了解如何:
使用“表达式编辑器”(Expression Editor)创建和编辑简单表达式。
使用变量(例如,time)控制表达式中的特定属性。
编写表达式时,为属性指定内置 time 变量以使属性值随着动画的播放以可预见的方式增加是一种常见做法。将一个属性的值链接到另一个属性的值也非常有用,例如,设定球的缩放 Y 和缩放 Z 属性,使其与缩放 X 的值相等。
使用单个表达式控制多个属性。
表达式可以控制同一对象或多个对象的多个属性。也可为每个属性或对象编写一个单独的表达式。
有关表达式中可能会用到的各种数学运算符的详细信息,请参见“Maya 帮助”(Maya Help)。
课外拓展
虽然课程中未体现这一点,但是可以对某个数值减去 time,从而在播放过程中降低属性的值。示例:
Ball.scaleY = 3 - time;
这样可以在播放过程的前三秒中降低球的 scaleY 属性值。
使用预定义的 time 变量时,请注意动画开始帧的值。本章中的课程使用的开始时间为 0。在工作中,您可能会创建开始时间为 1 的动画。使用 Maya 默认的每秒 24 帧的帧速率,第 1 帧处的时间是 0.0417。
由于该时间与 0 的偏移较小,以前的课程如果想将第 1 帧作为开始时间,将需要更多步骤和说明。例如,假设使用以下开始时间为 1 的表达式。
Ball.scaleY = time + 1;
如果转到开始时间,表达式会将球的 scaleY 属性的初始值设定为 time + 1,也就是 0.0417 + 1,即 1.0417。由于创建时球的 scaleY 属性为 1,因而转到开始时间会将 scaleY 的值设定为比其初始值大 0.0417。
这一差异意味着在动画第一帧中,球的 scaleY 属性比其 scaleX 和 scaleZ 属性大。虽然本例中的差别比较细微,但是在其他示例中可能更显著。
若要在第 1 帧处开始动画并获得与示例相同的结果,可以从属性中减去 0.0417:
Ball.scaleY = (time - 0.0417) + 1;
转到开始时间时,表达式会将球的 scaleY 值设定为 (0.0417 - 0.0417) + 1。这样就等于 1,即 scaleY 的原始值。
,