Time クラスは、MAXScript にアニメーション時間を実装します。
時間値は 3ds Max におけるアニメーション時間のプロパティを反映します。
最小単位はティックで、毎秒 4800 ティックです。
ティック、フレーム、時分秒あるいは正規時間で時間を操作できます。
以下に定義するように、時間計算で数値および時間値を混在させることができます。
ただし、数値は分数フレームを指定する浮動小数点を持ち、常にフレーム カウントとして解釈されることがルールです。
数字は常に内部でティック単位の時間値に変換され、最終的には毎秒 4800 ティックに分割されることになります。
時間値と同様に、数値も時間演算および比較に使用でき、as
演算子を使うと配列に変換できます。時間リテラルも参照してください。
リテラル
[-]{<decimal_number>[m | s | f | t]}+
分/秒/フレーム/ティック
[-]{<digit>}:{<digit>}[.{<digit>}]
SMPTE 分:秒.フレーム
リテラルの例
2.5s -- 2.5 seconds
1m15s -- 1 minute 15 seconds
2m30s5f2t -- 2 minutes 30 seconds 5 frames 2 ticks
125f -- 125 frames
17.25f -- 17.25 frames
1f20t -- 1 frame 20 ticks
2:10.0 -- 2 minutes 10 seconds 0 frames (SMPTE)
0:0.29 -- 29 frames (SMPTE)
コンストラクタ
normTime <float>
現在のシーン アニメーション範囲に基づいて通常の分数で表示する時間
例
animationRange --check out the current animation range: (interval 0f 100f) theHalfTime = normTime 0.5 --get the middle of the range: 50f animationRange = interval 42f 1024f --set new scene range: (interval 42f 1024f) theHalfTime = normTime 0.5 --get the middle of the new range: 533f theTenth = normTime 0.1 --get the frame at 1/10 of the range: 140.2f
プロパティ
<time>.ticks
ティックで表示する時間
<time>.frame
フレームで表示する時間
<time>.normalized
アクティブなセグメントの正規分数で表示する時間(シーン アニメーション範囲):
例
animationRange --check out the current animation range: (interval 0f 100f) theHalfTime = 50f --the middle of the range: 50f normalizedTime = theHalfTime.normalized --the normalized time: 0.5
これは、既に説明した normTime
コンストラクタの逆です。
演算子
<time> + <time>
時間値の加算です。
<time> - <time>
時間値の減算です。
- <time>
時間値を逆転します。
<time> * <number>
<time> / <number>
時間のスケール
<time> == <time>
時間値を比較して同等でないことを確認します。2 つの時間値が等しい場合には true を返し、等しくない場合には false を返します。
例
if sliderTime == 42f then "It is time!" else "Not yet!"
<time> != <time>
時間値を比較して同等でないことを確認します。2 つの時間値が等しくない場合には true を返し、等しい場合には false を返します。
<time> > <time>
1 つ目の時間値が 2 つ目の時間値よりも大きい場合には true を返し、1 つ目の時間値が 2 つ目の時間値より小さいか等しい場合には false を返します。
<time> >= <time>
1 つ目の時間値が 2 つ目の時間値よりも大きいか等しい場合には true を返し、1 つ目の時間値が 2 つ目の時間値より小さい場合には false を返します。
<time> < <time>
1 つ目の時間値が 2 つ目の時間値よりも小さい場合には true を返し、1 つ目の時間値が 2 つ目の時間値より大きいか等しい場合には false を返します。
<time> <= <time>
1 つ目の時間値が 2 つ目の時間値よりも小さいか等しい場合には true を返し、1 つ目の時間値が 2 つ目の時間値より大きい場合には false を返します。
<time> as <class>
整数や浮動小数に時間値を強制的に変換できます。ティック単位で時間を取得します。
例
sliderTime = 35 35 currentTime 35f currentTime as integer 5600 currentTime as float 5600.0 (currentTime as integer)/TicksPerFrame 35 (currentTime as float)/TicksPerFrame 35.0
時間値をフレーム整数に強制的に変換するには、上記で説明した .frame
プロパティを使用します。
currentTime
35f
currentTime as integer
5600
currentTime.frame
35
メソッド
random <time> <time>
2 つの時間値によって定義される範囲内にランダムな時間値を生成します。
例
random 10f 100f
出力値の例:
70.9813f 78.175f 59.225f ...
フル フレームのランダム値を生成するには、時間値の代わりに整数を使用します。時間値の代わりに整数を使用すると、フル フレームを表すものであると解釈されます。
random 10 100
abs <time>
時間値の絶対値を返します。
例
theTime = -100f -100f abs theTime 100f
上記の例では、システム グローバル変数を参照しています。詳細は、「3ds Max システム グローバル」を参照してください。