指定された範囲内の数値を返します。clamp 関数を使用すると、増減する値、またはランダムに変化する値を特定の範囲内に制限することができます。
float clamp(float minnumber, float maxnumber, float parameter)
minnumber と maxnumber で、戻り値の範囲(最小値と最大値)を指定します。
parameter は、この範囲内に値を収める必要のあるアトリビュートまたは変数です。
parameter が minnumber と maxnumber で指定される数値範囲内にある場合、clamp 関数は parameter の値をそのまま返します。
parameter が範囲より大きい場合は、maxnumber を返します。
parameter が範囲より小さい場合は、minnumber を返します。
clamp(4,6,22)
22 は 6 (範囲の最大値)より大きいので、6 を返します。
clamp(4,6,2)
2 は 4 (範囲の最小値)より小さいので、4 を返します。
clamp(4,6,5)
5 は範囲内にあるので、5 をそのまま返します。
Ball.scaleY = clamp(0,3,time);
エクスプレッションが実行されるたびに、0 ~ 3 の範囲の値を返します。
アニメーションをフレーム 1 まで巻き戻すと、上記のエクスプレッションが実行され、Ball のスケール Y (ScaleY)アトリビュートは time の値(0 よりやや大きな値)を受け取ります。time は 0 から 3 の範囲内なので、clamp 関数は time の値をそのまま返します。
アニメーションを再生すると、time 変数がフレームごとに少しずつ大きくなります。このエクスプレッションはフレームごとに実行され、Ball のスケール Y アトリビュートは、time が 3 を超えるまで time の値を受け取り続けます。time が 3 を超えると、clamp 関数は値 3 を返します。