Roblox Animation Foot Sliding: Why It Happens and How to Fix It (2026)

Foot sliding is the most common flaw in generated and retargeted Roblox animation. See what causes it on R15, how to spot it, and the fix that actually holds.

Updated By Alex · Founder, NPCMotion8 min read
Example output · R15
Text to motion

“A person limps forward favoring the injured right leg with slow uneven steps”

Try this prompt
TL;DR
  • Foot sliding is when a character's planted foot drifts across the ground during frames where it should be still. It reads as skating, or moonwalking.
  • On Roblox it almost always comes from retargeting: copying joint rotations from a human-proportioned skeleton onto R15, whose legs and hips are a different shape.
  • Changing frame rate, easing or playback speed does not fix it, because the error is in where the foot lands, not in how the frames are played.
  • The fix that holds is to detect contact frames on the source motion, pin the foot in world space for each one, and solve the leg backwards from it.
  • NPCMotion does this with Lock foot contacts, and draws the contact track under the timeline so you can check it before you bake.

Foot sliding is when a character's foot moves across the floor during frames where it should be planted. It is the single most recognisable flaw in generated animation, and on Roblox it is almost always caused by the retarget onto R15, not by the motion itself.

The good news is that it is a solved problem. The less good news is that the fixes people reach for first (a higher frame rate, more easing, slower playback) do not touch the actual cause. Here is what does.

What causes foot sliding on Roblox?

A motion model, a mocap file or a video tracker gives you joint rotations for a skeleton with human proportions. R15 is not that skeleton. Its legs are shorter relative to the torso and its hips sit in a different place.

Copy the same rotations across and the foot ends up somewhere other than where it was on the source: a few centimetres per frame, in a direction that changes as the leg swings. Played back, those small errors add up to a character that skates. Nothing about any single frame looks wrong, which is exactly why it ships by accident.

CauseWhat you seeCauses sliding?
Joint angles copied between skeletons with different leg lengthsPlanted foot drifts through the whole stanceYes, the main cause
Root motion that doesn't match stride lengthBody glides faster or slower than the feet stepYes
Contact detected a frame late, or released a frame earlyA small pop or shuffle at heel strike or toe-offYes, briefly
Low frame rate (30 rather than 60 fps)Choppier motionNo
Interpolation style between keysSofter or snappier movementOnly when keys are sparse

The same proportion mismatch is what makes reaching and gesturing look subtly off on R15. It is the subject of its own guide: retargeting to R15 is a proportion problem.

Why it slides, and the fix
One planted foot, two ways to retarget it
CONTACT
Foot slid 0.6 foot lengths

Illustration: a two-bone leg on a shorter rig. The trail is where the planted foot goes in one step.

How do you spot foot sliding?

Sliding hides well at full speed. Four checks catch nearly all of it:

  1. 1Watch the feet, not the character. Scrub frame by frame and keep your eyes on one sole through a step. If it moves while the other foot is in the air, it is sliding.
  2. 2Add a ground reference. A grid texture or a row of floor tiles makes drift obvious that a flat baseplate hides.
  3. 3Check it on the target rig. Sliding that isn't there on the source skeleton can appear on R15, and it differs between a blocky default avatar and a tall Rthro body.
  4. 4Look at the transitions. Heel strike and toe-off are where a late or early contact shows up as a one-frame pop.

Why don't the usual fixes work?

Most first attempts treat sliding as a timing problem. It is a position problem, so timing fixes only change how the error looks.

Fix people tryWhy it does not hold
Raising the frame rate to 60 fpsTwice as many frames of the same error
Slowing playback downSlower skating
Adding easing to the keysSoftens the motion around the drift without removing it
Re-keying the feet in the Animation EditorWorks, but you are re-animating every step of every clip by hand

Hand-fixing is the honest fallback, and the Roblox Animation Editor is good at it. It is just slow, and it has to be redone every time the clip changes.

How do you fix foot sliding for good?

Stop treating the foot as an output of the retarget and start treating it as a constraint on it.

  1. 1Detect contacts on the source motion. Find the frames where each foot is planted: low, and close to still. These contact windows are the ground truth.
  2. 2Pin the foot in world space. For the whole window, the planted foot stays exactly where it landed.
  3. 3Solve the leg backwards. With the foot fixed, the hip and knee become whatever they need to be to reach it. This is inverse kinematics, the same idea behind Roblox’s own IKControl.
  4. 4Blend at the edges. Ease in and out of each pinned window so heel strike and toe-off don't pop.
  5. 5Check before you bake. Look at the contact windows on the timeline. A contact released one frame early is far easier to fix there than in a published game.

This is what Lock foot contacts does in NPCMotion. The preview draws a contact track under the timeline, so if a window looks wrong you see it before you bake, rather than when a player watches your NPC moonwalk across the lobby.

Example output · R15
Text to motion

“A person sprints forward naturally with fast steps and swinging arms. Loop naturally”

A sprint generated from one prompt with foot contacts locked. Fast steps are where sliding hides best, and each planted foot stays where it landed while the other leg swings.

Try this prompt

Does foot sliding happen on R6 too?

It can, but R6 has six parts and no knees, so there is no leg to solve backwards. NPCMotion targets R15 only for that reason: a fifteen-part solve squeezed into R6 looks worse than animating it by hand. Custom R15 body scales and Rthro are supported, because the proportion solve reads part sizes from whichever rig you target.

Sources and further reading (checked Oct 2, 2026)

Frequently asked questions

Written by Alex, Founder, NPCMotion. Builds NPCMotion, the text and video to R15 animation tool for Roblox creators, and writes up the parts of the pipeline that are hardest to get right: retargeting, foot contacts and GPU inference.

Published

Keep reading

All guides