次の手順に従ってエクスプレッションに別の if 文を 1 つ追加することにより、膨らんだ Balloon を上昇させることができます。
if (time < 2)
Balloon.scaleY = time;
if (time >= 2)
Balloon.translateY = time;
Balloon は 2 秒間膨張します。2 秒後に Balloon は膨張を停止し、Y 軸の位置 0 から 2 にスキップします。モーションのスキップはあとの手順で削除します。
新しい if 文では、アニメーション時間が 2 秒を超えると、Balloon の移動 Y(translate Y)位置が上昇します。記号「>=」は「以上」を表します。time が 2 以上の場合はいつでも、エクスプレッションにより、Balloon の移動 Y に time の値が割り当てられます。したがって、アニメーションの残りの再生範囲で、移動 Y 値は増加します。
特定の条件の各ステートメントはセミコロンで終了していることに注意してください。各ステートメントのあとにセミコロンを付けないと、構文エラーが発生し、エクスプレッションに加えた変更が有効になりません。
Balloon が原点に戻らないのは、Balloon の移動 Y アトリビュートにアニメーションの開始位置が代入されないからです。
if (time < 2)
Balloon.translateY = 0;
if (time < 2)
Balloon.scaleY = time;
if (time >= 2)
Balloon.translateY = time;
新しい最初のステートメントでは、time が 2 未満の場合は常に Balloon.translateY は 0 に設定されます。
この例にある 3 つのステートメントは、どのような順番で入力しても問題ありません。Maya が各フレームを再生すると、リストされている順番で各ステートメントが実行されます。この例では、ステートメントは他のステートメントとは関係なく動作するので、順序には意味はありません。
ここでは、エクスプレッションの論理が見やすくなるように、実行時間順にステートメントを並べます。こうしておくとエクスプレッションを変更する必要がある場合、エクスプレッションのアクションをよりすばやく把握することができるようになります。
Balloon が 2 秒間膨らんだあと、浮き上がります。浮き上がると、約フレーム 48 でわずかに高くジャンプします。