Maya での時間の計算方法

シーンの背後で、Maya は各フレームの値をティックと呼ばれる 32 ビットの整数表現に変換します。ティックは、Maya における時間の最小増分単位です。各ティックは 1/6000 秒を表します。つまり、Maya は 1 秒間に 6000 ティック[tps]をカウントするので、フレーム レートが 1 秒間に 24 フレームの場合[fps]、フレーム当たりのティックは 250 [tpf]になります。

すべてのシーンで同じ tps が使用されますが、tpf の値は指定する再生スピードに応じて異なります。 選択した再生スピードでの tpf の値を算出するには、tps (6000)を使用する再生スピードで除算します。 たとえば、15 fps の場合は 400 tpf (6000/15)になります。

ティックは整数であるため、fps もまた整数である必要があります。つまり、非整数のティック値を必要とする小数のフレーム値は、Maya では正確に表現することはできません。正確に表示できる時間は再生スピードによって異なりますが、すべての再生スピードには、フレームとティック間の変換に基づいた精度の制限があります。

たとえば、再生速度が 24 fps の場合、1 ティックが 0.004 フレームに制限されます。24 fps のときにcurrentTime 25.55で実行した場合、Maya は値を最も近いティックに丸め、現在の時間を 25.552 に設定します。(詳細については後述する「正確なフレームの値を予測する」を参照してください。)

タイムラインの境界

数値フローの問題を回避するため、ティックは強制的に 32 ビット整数(符号付き)の範囲内に収まるように調整されます。このため、シーン内で表現できる最小/最大フレーム数は、int32_min/tpf および int32_max/tpf に制限されます。

たとえば、シーンの再生速度が 24 fps である場合、tpf は 250 に制限されるので、ポジティブ フレームの数は約 8 589 934 になります。同様のことがネガティブ フレームにも適用されるので、レートが 250 tpf の場合、合計で約 1600 万フレームになります。フレームを最大/最小の範囲外に設定しようとすると、時間はこれらの制限値にクランプされます。

currentTime 10e6;
// Result: 8589934.588 //

正確なフレームの値を予測する

フレーム値が切り上げられるか切り下げられるかを予測するために、Maya が使用するさまざまなリプリゼンテーションの間で値を変換することができます。

  1. フレーム値をティックに変換するには、フレーム値(たとえば 25.55)にtpfを掛けます。

    25.55 x 250 tpf = 6387.5 ticks

    ティックの小数点以下の値が 0.5 以上の場合、Maya はこの値を切り上げ、0.5 未満の場合は切り下げます。

    この例では、25.55 はティック 6387.5 と等価であり、6388 に切り上げられます。

  2. 丸められたティック値を tpf で割ると正確なフレーム値を取得できます。

    6388/250 tpf = 25.552