次の手順では、デフォルト球体を作成し、アニメーションの再生時間を基準にスケール Y(Scale Y)アトリビュートを増加させるエクスプレッションを記述します。アニメーション時間の最初の 2 秒間は、スケール Y は time の値とともに増加します。2 秒間が経過したら、スケール 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;
これでは読みやすくありません。一貫性のある規則正しいスペーシングの習慣を身に付けてください。このレッスンではできるかぎり適切なスペーシングの例を示すようにしています。
作成ボタンをクリックすると、このエクスプレッションが実行されます。アニメーションはフレーム 0 なので、アニメーション時間は 0 です。time が 2 未満なので、Balloon.scaleY は time と同じ値(0)に設定されます。
平らになった Balloon スケールが Y 軸にそって大きくなり、アニメーションの再生に従って膨らんでいきます。
2 秒を過ぎると、Balloon はそれ以上膨らまなくなります。
time が 2 以上になる場合、if 条件は true(真)ではなくなります。Balloon.scaleY = time 以降のステートメントは実行されなくなります。スケール Y アトリビュートの値は time が 2 になる直前の値、具体的に言うと、1.9583 のままになります。
この例では、フレーム レートに 24 フレーム/秒が使用されていたことを思い出してください。time と Balloon.scaleY では、いろいろなフレームでこれらの値が使用されます。
フレーム | 時間(秒) | 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 ヘルプを参照してください。