Maya 如何计算时间

 
 
 

在场景后台,Maya 会将每个帧值转换为 32 位整数表示,称为标记。标记是 Maya 中最小的时间增量。每个标记表示 1/6000 秒。因此,Maya 以 24 帧/秒 [fps] 的速率计量 6000 标记/秒 [tps],即 250 标记/帧 [tpf]。

尽管所有场景都使用相同的 tps,但 tpf 数会因指定的播放速度而异。若要确定选定播放速度下的 tpf 数量,请将 tps (6000) 除以使用的播放速度。例如,对于 15 fps,tpf 数为 400 (6000/15)。

由于标记是整数,fps 也必须是整数。这就意味着在 Maya 中无法精确表示那些需要非整数标记值的分数帧值。尽管可以精确表示的时间取决于播放速度,但根据帧和标记之间的转换,所有播放速度都存在精度限制。

例如:播放速度为 24 fps 时,系统将限制为每 0.004 帧 1 个标记。如果以 24 fps 执行 currentTime 25.55,Maya 会将该值四舍五入为最接近的标记,即将当前时间设置为 25.552。(更多信息,请参见下文中的预测精确帧值。)

时间轴的边界

为了避免出现数字流问题,将标记强制限制在 32 位(带符号)整数范围内。这就将场景中表示的最小/最大帧数限制为 int32_min/tpfint32_max/tpf

例如,场景播放速度为 24 fps 时,tpf 会限制为 250,则有大约 8589934 正帧。这同样适用于负帧值,这意味着速率为 250 tpf 时,共有约 1600 万帧。如果尝试设置的帧超出最大/最小范围,时间会受限于这些限值:

currentTime 10e6;
// Result: 8589934.588 //

预测精确帧值

若要预测帧值是向上舍入还是向下舍入,可以在 Maya 使用的各种表示之间转换值。

  1. 若要将帧值转换为标记,请将帧值(例如,25.55)乘以 tpf

    25.55 x 250 tpf = 6387.5 标记

    如果标记小数值为 0.5 或更高,Maya 会将该值向上舍入,如果小数值小于 0.5,则会将该值向下舍入。

    在此示例中,帧 25.55 等同于标记 6387.5(向上舍入为 6388)。

  2. 用四舍五入的标记值除以 tpf 以获得精确的帧值。

    6388/250 tpf = 25.552