For Roblox

R15 animations that don't skate, snap or hyperextend

Roblox R15 is fifteen parts on Motor6Ds with limb ratios nothing like a human skeleton. That gap is why most generated animation looks wrong on an avatar — and closing it properly is the entire job.

This browser could not start WebGL, so the 3D preview is unavailable. The animation itself is unaffected — download the .rbxm or apply it from the Studio plugin.
Walk cycle·30 fps·32 frames
0.00s · f0drag to orbit · scroll to zoom
L
R
15
Parts driven, root included
14
Motor6D joints solved
0.02
Peak stance drift, studs
30/60
Bake frame rate

The retarget

Four problems, solved in order

Every one of these is visible to a player within two seconds of watching a character move. They are not polish.

Foot sliding

Contacts are detected on the source motion first, then held through the entire stance phase during the bake. Without this the avatar moonwalks — it is the single most visible failure mode in generated animation and the first thing we fixed.

Contact windows are shown under the timeline in the preview

Proportion mismatch

R15 limbs are shorter and thicker than a human skeleton relative to the torso. Copying joint angles straight across makes reaches fall short and poses read as uncanny, so limb ratios are re-solved against R15 geometry instead.

Also applied to Rthro and custom R15 body scales

Inverted joints

Fast frames are where knees and elbows fold the wrong way. Every joint is clamped to a plausible R15 range during the bake, and the number of frames that needed clamping is reported back to you.

0 clamped frames on a clean generation

Root drift

In-place is the default because most Roblox animation is driven by the humanoid's own movement. Travelling root motion is a toggle, not a re-run, and switching between them costs nothing.

Toggle it on any past generation for free

In Studio

From prompt to rig without leaving Studio

The plugin pairs with a six-character code, then generation, library and one-click apply all live in the toolbar.

01

Install and pair

Install from the Creator Store, click Pair, and approve the code on the web. The token is scoped to that one Studio install and can be revoked on its own.

02

Select a rig

Any R15 rig in the place. The plugin reads the Motor6D hierarchy — names and joint offsets only. No meshes or place data ever leave Studio.

03

Generate

Type the prompt in the toolbar. Queue position, cold start and generation are shown as separate states, so a slow run never looks like a hang.

04

Apply

The KeyframeSequence is inserted straight onto the selected rig, ready to play. If you'd rather bake it yourself, download the .rbxm instead.

Questions

Roblox specifics

Does this work with R6?+
No. R6 has six parts and a fundamentally coarser joint set, and squeezing a fifteen-joint solve into it produces worse results than hand animation. R15 only.
What about custom R15 body scales and Rthro?+
Supported. The proportion solve reads the actual part sizes from the rig you retarget onto, so a tall Rthro avatar and a blocky default avatar each get their own solve from the same generation — at no extra cost.
Can I edit the result in the Animation Editor?+
Yes. The output is a normal KeyframeSequence with keys on every driven joint, so it opens in the built-in editor and behaves like anything you keyed by hand.
Will it animate a dragon, a spider or a mech?+
Not in Phase 1. Non-humanoid rigs are handled by a procedural solver that walks the Motor6D graph and plants feet on a phase timer — no model, no GPU. That is a separate engine and it ships after this one.
Is the plugin safe to run in a team-create place?+
Yes. The plugin token lives in plugin settings, not in the place file, so opening a shared place never exposes your credentials to collaborators.