在以下步骤中,您将创建默认球体并编写表达式,以便根据动画播放时间增加其“缩放 Y”(Scale Y)属性。在前两秒动画时间内,“缩放 Y”(Scale Y)随 time 值增加。在两秒及之后的时间内,“缩放 Y”(Scale Y)将不再增加。
if (time < 2) Balloon.scaleY = time;
该表达式是一个 if 语句。if 关键字导致表达式基于两个或多个项的比较作出决定。本例中,表达式会将 time 值与值 2 进行比较。
表达式会检查 time 的值是否小于 2 秒。如果小于 2 秒,将指定 Balloon.scaleY = time。如果 time 不小于 2 秒,则不会进行指定。
请注意指定 Balloon.scaleY = time 时的格式设置方式,看看它是如何在 if (time < 2) 下方缩进的。Maya 会忽略语句之间的所有缩进、额外空格以及空行。我们使用缩进让表达式更清楚易读。也可按如下方式编写表达式:
if (time < 2) Balloon.scaleY = time;
单击“创建”(Create)时会执行表达式。因为动画位于第 0 帧,因此动画时间为 0。因为 time 小于 2,Maya 会将 Balloon.scaleY 设定为等于 time 的值,即 0。
展平的 Balloon 的比例沿其 Y 轴增加。它将在动画播放期间膨胀。
如果 time 大于等于 2,if 条件将不再为 true。随后的 Balloon.scaleY = time 语句也不再执行。scaleY 属性的值保持为在 time 变为 2 之前具备的最后一个值,具体而言是 1.9583。
请回忆一下,本例使用的帧速率为每秒 24 帧。time 和 Balloon.scaleY 在不同帧处具有以下值:
帧 | time(以秒为单位) | Balloon.scaleY (time) |
---|---|---|
0 |
0 |
0 |
1 |
0.0417 |
0.0417 |
2 |
0.0833 |
0.0833 |
3 |
0.125 |
0.125 |
24 |
1.0 |
1.0 |
47 |
1.96 |
1.9583 |
48 |
2.0 |
1.9583 |
49 |
2.04 |
1.9583 |
if 语句的条件 (time < 2) 是一个比较。条件必须由圆括号包围,以便将其与跟随在其后的指定隔开。
条件中的 < 是一种关系运算符。关系运算符测试一个值与另一个值具有什么关系。在本例中,< 测试 time 是否小于 2。
除了本例中显示的 < 运算符外,还有几种其他关系运算符,例如 >、>=、== 等。有关详细信息,请参见“Maya 帮助”(Maya Help)。