编写表达式时,为属性指定内置 time 变量以使属性值随着动画的播放以可预见的方式增加是一种常见做法。将一个属性的值链接到另一个属性的值也非常有用,例如,设定球的缩放 Y 和缩放 Z 属性,使其与缩放 X 的值相等。
虽然课程中未体现这一点,但是可以对某个数值减去 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 的原始值。