概要
アニメーションの「時計」です。animation_render が全フレームを評価するとき、
このノードだけがフレームごとに違う値(進行度0〜1、フレーム番号)を出します。
グラフの中の何かを動かしたければ、必ずここから値を引き出すことになります。
使い方のポイント
- 基本は
progress出力(0〜1の進行度)を波形ノードへつなぐ:motion(未接続なら時間へ自動追従) → 動かしたいパラメータ - 出力の使い分け:
progress— 「全体の何%まで進んだか」。動き全般はこれが基本frame— 「今何コマ目か」。コマ番号で分岐したい時(switch・compareと併用)time/total_frames— 計算式(expression_float等)で独自の進行制御を組む時
- 0〜1の進行度をそのまま使うことは少なく、
remap(範囲変換)、ease_in_out(緩急)、 波形ノード(往復・ループ)を挟んで「使える動き」に変換する - 1つのタイムソースから複数のパラメータへ分配してよい(腕の回転と体の上下を 同じ時計で駆動する、など)
よくある失敗
- プレビューで値が全部0のまま: 正常。通常評価では
time=0, frame=0。 フレームごとの値はanimation_renderが評価している間だけ流れる。 動きの確認は animation_render を選択して再生プレビューで行う - 最後のフレームと最初のフレームがつながらない(ループが跳ぶ):
progressは 0〜1 を両端含みで進む。ループものはmotion(回転)などの 周期波形を挟み、1周期=総フレーム数になるよう設計する
技術詳細
- 通常評価(非アニメーション)時は
time=0.0,frame=0,total_frames=1,progress=0.0を出力 - AnimationRender ノードによるマルチフレーム評価時、フレームごとに異なる値が出力される
progressはframe / (total_frames - 1)で計算(total_frames=1のときは0.0)- 現在のAnimationRender評価では
timeも同じ正規化時間です。秒数ではありません
使用例
TimeSource → Float演算 → Transformノードの移動量に接続し、フレームごとに位置が変化するアニメーションを作成
関連ノード
animation_render— この時計を回す本体(ほぼ常にセット)motion/motion/motion— 進行度を往復・ループ・点滅に変換remap/ease_in_out— 値の範囲変換と緩急付けkeyframe_clip— 波形ではなくキーフレームで動きを作る場合