Overview
The go-to animation node. Pick how it moves (ping-pong, rotate, bounce, ...),
how much (px / degrees), and how many frames per cycle — one node produces a full
animation signal. It replaces the old time_source → waveform → remap → ease_in_out
chain: connect the output to a promoted parameter pin and that parameter animates.
Usage tips
- The standard wiring is
motion→ a promoted parameter pin on the node you want to animate. Example: to make an image bob up and down, promoteyon a transform, connectmotion(mode=Float, amount=4), then finish withanimation_render. - Amount is specified directly in px or degrees — enter the visible amount you want on the final spritesheet ("6px swing", "360° per turn").
- Period (frames) = 0 means one cycle over the whole animation. For two cycles in an 8-frame sheet, set period = 4.
- Base is the resting position (center of motion). To wobble around y=32, set base=32 and amount=6.
- Give copies of the same motion different Shift (frames) values for staggered animation (grass swaying in sequence, follow-through on character parts).
- Loop endpoints are handled automatically: cyclic motions stop the last frame just before wrapping, so looping playback never shows a duplicated pose.
time_sourceis not needed (the node follows animation time wheninputis unconnected). Only feedinputfor advanced uses such as phase modulation.
Common pitfalls
- "Per Frame" does not loop: 2px every frame keeps accumulating, so the sheet will not loop by itself. Outside of scrolling-background style assets, prefer looping motions such as ping-pong or rotate.
- Nothing moves: the target parameter must be promoted to a pin before you can connect. Use the promote button on the parameter row in the Inspector.
- Easing has no effect on Blink / Random: easing applies to Move / Ping-Pong only; Bounce ships its own built-in curve.
Related nodes
remap— convert the output range to another range when neededease_in_out— general-purpose easing for any Float signalanimation_render— bakes the animated image into a spritesheetkeyframe_clip— use keyframes for acting that is hard to express as a ruletime_source— advanced access to raw frame numbers and totals