ノード一覧に戻る

時間差

stagger

たくさんのものを「少しずつ遅らせて順番に」動かすためのノードです。草が端から順に揺れる、パーツが1テンポ遅れてついてくる、といった時間差を作れます。いくつ動かすかと1個あたりの遅れを決めると要素ごとの遅れのリストが出てくるので、list_map と組み合わせて使います。

確認済み
解説あり

入力ポート

名前説明
要素数
count_in
Int
要素の数を外から決めたいときに繋ぎます(リストの長さなど)。未接続なら下の「要素数」パラメータを使います

出力ポート

名前説明
ずらし列
offsets
List<Float>
要素ごとの遅れフレームのリストです(1個目=0、2個目=ずらし幅1個分、3個目=2個分…)。motion の「ずらし(フレーム)」に繋ぎます
進行度列
progress
List<Float>
遅れを反映した、要素ごとの「アニメの進み具合」(0〜1)のリストです。motion の入力に繋ぎます
要素数
count
Int
実際に使われた要素の数です(入力ピンがあればそちら優先)

パラメータ

名前既定値範囲説明・選択肢
要素数
count
Int
41–256

順番に動かすものの数です(草8本なら8)

ずらし幅(フレーム)
shift_frames
Float
1-120–120 / step 0.5

隣のものが何フレーム遅れて動き出すかです。大きいほど「順番に動いている」感じが強くなります

重なり
edge
Enum
None

遅れの付き方です。「そのまま」なら等間隔。ほかを選ぶと最初の方だけほぼ同時に動く・最後の方が詰まる等、波の形が変わります

  • そのままNone
  • 先頭を密にEaseIn
  • 末尾を密にEaseOut
  • 中央を疎にEaseInOut

概要

複数の要素に「時間差」を配るノード。N個ぶんの「ずらしフレーム列」と 「ずらし済み進行度列」を出力し、同じ動きを要素ごとに少しずつ遅らせる。 草が順番に揺れる・コインが順に跳ねる・パーツが遅れて追従する(follow-through)等、 時間差があるだけで素材が一気に有機的になる。

使い方のポイント

  • **offsets 出力 → motion の「ずらし(フレーム)」**が基本の使い方。list_map で 要素ごとに配れば、同じモーションが1要素ずつずらし幅フレーム遅れて動く
  • progress 出力 → motion の入力に繋ぐと、各要素の「ずらし済みループ進行度 (0〜1)」を直接駆動できる(上級用途)
  • 要素数は入力ピンでリストの長さと連動させられる
  • 重なりで分布を変えられる: 「先頭を密に」なら最初の要素たちがほぼ同時に動き、 後半ほど間隔が開く(等間隔=そのまま)

よくある失敗

  • 全部同時に動く: offsets を配らず全要素に同じモーションを繋いでいる。 list_map で要素ごとに対応する offsets の値を渡すこと
  • ループの継ぎ目でズレる: ずらし幅×要素数が総フレーム数を超えると、 進行度が1周して見た目の順番が入れ替わる。ずらし幅を小さくするか総フレームを増やす

関連ノード

  • motion — ずらしを受け取って実際の動きを作る
  • list_map — 要素ごとにずらしを配って一括適用する
  • sprite_motion — 画像1枚をずらし付きで動かす(「ずらし(フレーム)」パラメータ)
ノード一覧に戻る
時間差 — PixPipeline ノード解説