時間レポーターと補間
Objectsの時間系ブロックは、Movieタイムラインの現在時刻を読み取り、表示範囲の判定、キーフレーム参照、時間の量子化、色の補間を行います。
現行の時間系ブロック
| ブロック | 役割 |
|---|---|
timeline time | 現在のタイムライン時刻を秒で返す |
time within | 現在時刻が指定した範囲内かを返す |
keyframe time | 1始まりのキーフレーム番号に対応する時刻を返す |
left keyframe time | 2つのキーフレーム時刻の小さい方を返す |
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にはLinear、BackIn、BackOut、BackInOutも含まれます。
キーフレーム参照
キーフレームは0〜durationへクランプされ、昇順に並びます。1e-9以下の差は同じ時刻として重複排除されます。
keyframe timeのIDは1始まりで、範囲外のIDは有効範囲へクランプされます。小数のIDを使った場合は、隣接するキーフレーム間を線形補間します。キーフレームがない場合の時刻は0です。
旧アニメーションブロックとの区別
objects_animate、objects_loopValue、objects_pingPongValue、objects_wiggleなどの旧アニメーション/カーブ系opcodeは、現在のObjectsパレットには表示されません。現行作品ではtimeline time、easing、キーフレーム、posterize time、interpolate colorなどの表示中のブロックを使います。