ノード一覧に戻る

タイムソース

time_source

正規化時間とフレーム番号を出力するアニメーション基盤ノード

確認済み
解説あり

出力ポート

名前説明
時間
time
Float
正規化時間 (0.0〜1.0)
フレーム
frame
Int
現在のフレーム番号
総フレーム数
total_frames
Int
総フレーム数
進捗
progress
Float
滑らかな進捗 (0.0〜1.0)

概要

アニメーションの「時計」です。animation_render が全フレームを評価するとき、 このノードだけがフレームごとに違う値(進行度0〜1、フレーム番号)を出します。 グラフの中の何かを動かしたければ、必ずここから値を引き出すことになります。

使い方のポイント

  • 基本は progress 出力(0〜1の進行度)を波形ノードへつなぐ: motion(未接続なら時間へ自動追従) → 動かしたいパラメータ
  • 出力の使い分け:
    • progress — 「全体の何%まで進んだか」。動き全般はこれが基本
    • frame — 「今何コマ目か」。コマ番号で分岐したい時(switchcompare と併用)
    • 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 ノードによるマルチフレーム評価時、フレームごとに異なる値が出力される
  • progressframe / (total_frames - 1) で計算(total_frames=1のときは0.0)
  • 現在のAnimationRender評価ではtimeも同じ正規化時間です。秒数ではありません

使用例

TimeSource → Float演算 → Transformノードの移動量に接続し、フレームごとに位置が変化するアニメーションを作成

関連ノード

  • animation_render — この時計を回す本体(ほぼ常にセット)
  • motion / motion / motion — 進行度を往復・ループ・点滅に変換
  • remap / ease_in_out — 値の範囲変換と緩急付け
  • keyframe_clip — 波形ではなくキーフレームで動きを作る場合
ノード一覧に戻る
タイムソース — PixPipeline ノード解説