Skip to content

Stylised Motion

rmfandyplayz edited this page Sep 30, 2026 · 2 revisions

Two animation settings for when smooth motion isn't the look you want.

Play At Custom FPS

Normally, an animation moves smoothly, a little every frame. Tick Play At Custom FPS and type a frame rate into the box beside it, and the animation moves in distinct jumps instead, for a stop-motion or hand-drawn look.

Loops                      1
Loop Type                  Restart
Play At Custom FPS         ✔ [ 12 ]
FPS Feels like
6–8 Deliberately crunchy
12 Classic hand-drawn animation
24 Film

It's a look, not a performance setting: nothing gets cheaper, and Duration means exactly what it did before. Setting it higher than your screen's refresh rate does nothing.

  • Steps still land exactly on their To, even when the Duration isn't a whole number of frames.
  • Every step ticks together, even steps started at odd delays, so a group reads as stop-motion instead of jitter.
  • Custom curves are stepped too.
  • Punch and shake are never stepped, since they make their own wobble.
  • Set Active and Play Sound still happen at their exact time, not on the nearest frame.
  • It's per animation, so a Show can be stepped while the same object's Hover stays smooth.
Under the hood
  • It works on the ease, not the clock: the time handed to the ease is rounded down to the frame grid, so the tween still updates every frame but holds its value between frame boundaries. The last frame is sampled at the step's true end, so it can be shorter than the others.
  • The grid is measured from the start of the whole animation, not from each step's start. Separate per-step grids read as jitter.
  • Punch and shake drive their oscillation internally, not through the ease, and overriding that breaks them silently.
  • In code the box is the separate FPS field.

Snapping

Snapping rounds positions and sizes to whole pixels every frame, for pixel-perfect movement in pixel-art games. On a slow move you'll see it step pixel by pixel, which is the point.

It's one button on the animation. Click to cycle:

Snapping    [ DISABLED ]  →  [ ALL STEPS ]  →  [ PER STEP ]
Setting What snaps
DISABLED Nothing, except a step whose own Snapping box is ticked
ALL STEPS Every step that moves or resizes something, paths included
PER STEP You choose: each position or size step shows its own Snapping box

Scale and rotation never snap.

A step whose own box is ticked always snaps, whatever the button says, and its box stays visible so you can see that.

Under the hood
  • In code it's two bools, Snapping and SnapPerStep. A step snaps if its own box is ticked, or the animation's Snapping is on and SnapPerStep is off.
  • The per-step box adds to the animation-wide setting rather than being replaced by it. That's what let animations made before the animation-wide setting existed keep working untouched: their steps still carry their own ticks.
  • DOTween has no snapping option for scale or rotation.

Clone this wiki locally