条件文のその他のオプション
 
 
 

次の手順に従ってエクスプレッションに別の if 文を 1 つ追加することにより、膨らんだ Balloon を上昇させることができます。

エクスプレッションに if 文を追加するには

  1. エクスプレッションを次のように変更します。
    if (time < 2)
    	Balloon.scaleY = time;
    if (time >= 2)
    	Balloon.translateY = time;
  2. 編集(Edit)ボタンをクリックして、エクスプレッションをコンパイルします。
  3. アニメーションを再生します。

    Balloon は 2 秒間膨張します。2 秒後に Balloon は膨張を停止し、Y 軸の位置 0 から 2 にスキップします。モーションのスキップはあとの手順で削除します。

    新しい if 文では、アニメーション時間が 2 秒を超えると、Balloon の移動 Y(translate Y)位置が上昇します。記号「>=」は「以上」を表します。time が 2 以上の場合はいつでも、エクスプレッションにより、Balloon の移動 Y に time の値が割り当てられます。したがって、アニメーションの残りの再生範囲で、移動 Y 値は増加します。

    特定の条件の各ステートメントはセミコロンで終了していることに注意してください。各ステートメントのあとにセミコロンを付けないと、構文エラーが発生し、エクスプレッションに加えた変更が有効になりません。

    注:エクスプレッションを編集し作成(Create)ボタンをクリックしたあとは、スクリプト エディタのエラー メッセージを必ず確認してください。これまで正常だったエクスプレッションを変更し、構文エラーが発生した場合、アニメーションを再生すると、以前の正常なエクスプレッションが実行されます。このため、変更が正しく行われたように見える可能性があります。エラー メッセージは、「// エラー: (// Error:)」で始まります。
  4. アニメーションを停止して、開始時間に戻ってください。Balloon はしぼみますが、原点には戻りません。Balloon が上昇して、画面には表示されていない場合は、カメラを調整して表示させてください。

    Balloon が原点に戻らないのは、Balloon の移動 Y アトリビュートにアニメーションの開始位置が代入されないからです。

  5. Balloon を原点に戻すため、エクスプレッションを次のように変更します。
    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 が各フレームを再生すると、リストされている順番で各ステートメントが実行されます。この例では、ステートメントは他のステートメントとは関係なく動作するので、順序には意味はありません。

    ここでは、エクスプレッションの論理が見やすくなるように、実行時間順にステートメントを並べます。こうしておくとエクスプレッションを変更する必要がある場合、エクスプレッションのアクションをよりすばやく把握することができるようになります。

  6. 編集(Edit)ボタンをクリックします。
  7. アニメーションを停止して、開始時間に戻ってください。

    平らになった Balloon が、原点に正しく戻ります。

  8. アニメーションを再生します。

    Balloon が 2 秒間膨らんだあと、浮き上がります。浮き上がると、約フレーム 48 でわずかに高くジャンプします。