メインコンテンツまでスキップ

時間レポーターと補間

Objectsの時間系ブロックは、Movieタイムラインの現在時刻を読み取り、表示範囲の判定、キーフレーム参照、時間の量子化、色の補間を行います。

現行の時間系ブロック

ブロック役割
timeline time現在のタイムライン時刻を秒で返す
time within現在時刻が指定した範囲内かを返す
keyframe time1始まりのキーフレーム番号に対応する時刻を返す
left keyframe time2つのキーフレーム時刻の小さい方を返す
posterize time時間を指定FPSの刻みに量子化して返す
interpolate color時間範囲とeasingに従って2色を補間する
passパス文字列を評価し、指定時刻のx/y成分を返す

キーフレームの正規化やIDの扱いはタイムラインと書き出しにも記載しています。

easing

Operatorsカテゴリのeasingは、時間範囲内の値を補間する現行レポーターです。

easing [TYPE] value [V0] ~ [V1] time [T0] ~ [T1]
power [POWER] speed [SPEED]

TYPEに指定できる値は次のとおりです。

PowerIn       PowerOut       PowerInOut
CircIn CircOut CircInOut
ExpoIn ExpoOut ExpoInOut

時間が開始時刻より前ならV0、終了時刻より後ならV1を返し、範囲内では選択したeasingで補間します。T1 <= T0の場合は、開始時刻より前ならV0、それ以外ならV1です。

色補間など、Objectsが共有するanimation vocabularyにはLinearBackInBackOutBackInOutも含まれます。

キーフレーム参照

キーフレームは0〜durationへクランプされ、昇順に並びます。1e-9以下の差は同じ時刻として重複排除されます。

keyframe timeのIDは1始まりで、範囲外のIDは有効範囲へクランプされます。小数のIDを使った場合は、隣接するキーフレーム間を線形補間します。キーフレームがない場合の時刻は0です。

旧アニメーションブロックとの区別

objects_animateobjects_loopValueobjects_pingPongValueobjects_wiggleなどの旧アニメーション/カーブ系opcodeは、現在のObjectsパレットには表示されません。現行作品ではtimeline timeeasing、キーフレーム、posterize timeinterpolate colorなどの表示中のブロックを使います。