其他条件语句选项
 
 
 

通过将另一个 if 语句添加到表达式可以使 Balloon 在充气之后上升。

将 if 语句添加到表达式

  1. 将表达式更改为下列表达式:
    if (time < 2)
    	Balloon.scaleY = time;
    if (time >= 2)
    	Balloon.translateY = time;
    
  2. 单击“编辑”(Edit)以编译表达式。
  3. 播放动画。

    Balloon 充气两秒。两秒之后,Balloon 停止充气,并且其位置从 Y 轴位置 0 跳到 2。在稍后的步骤中将消除运动跳过。

    新 if 语句在动画时间超过两秒之后提高 Balloon 的 translateY 位置。>= 符号表示大于或等于。只要时间大于或等于 2,表达式就会为 Balloon 的 translateY 指定时间值。因此,translateY 值会在动画播放范围的剩余部分增加。

    请注意,每个特定条件的语句都以分号结束。在每个语句后忘记分号会导致语法错误,并且对表达式所做的更改将无法生效。

    注意

    在编辑表达式并单击“创建”(Create)之后务必查看“脚本编辑器”(Script Editor),确定是否存在错误消息。如果改变先前的成功表达式并出现语法错误,则播放动画时 Maya 会执行先前的成功表达式。这可能会使您认为所做的更改已经生效。错误消息以文本 // 错误: 开头。

  4. 停止播放动画并转到开始时间。Balloon 展平,但没有返回到原点。(如果 Balloon 上升到了视图之外,请调整摄影机来查看)。

    Balloon 没有返回原点,因为表达式没有为动画开始处针对 Balloon 指定起点。

  5. 若要使 Balloon 返回到原点,请将表达式更改为下列表达式:
    if (time < 2)
    	Balloon.translateY = 0;
    if (time < 2)
    	Balloon.scaleY = time;
    if (time >= 2)
    	Balloon.translateY = time;
    

    只要时间小于 2,新的第一个语句就会将 Balloon.translateY 设定为 0。

    请注意,在本示例中可以将三个语句按任意顺序排列。Maya 播放每个帧时,将按列出的顺序执行表达式中的每个语句。在本示例中,语句单独发挥作用,因此其顺序无关紧要。

    我们将语句按时间执行的顺序排列,因为这样更容易看到表达式的逻辑。如果需要更改表达式,您将能够更迅速地把握表达式的操作。

  6. 单击“编辑”(Edit)
  7. 停止播放动画并转到开始时间。

    展平的 Balloon 将返回其在原点的正确位置。

  8. 播放动画。

    Balloon 充气两秒,然后上升。上升过程中,Balloon 大约在第 48 帧处跳跃得稍高一些。