Stopping an `AnimationTrack` with a fade time of 0 "corrupts" the Transforms of bones

  • Describe the bug. Describe what is happening when the bug occurs. Describe what you would normally expect to occur.

When you stop an AnimationTrack with a fade time of 0 (i.e. track:Stop(0)), the bones get transformed to some odd state visually.

  • How often does the bug happen (Everytime/sometimes/rarely)? What are the steps that reproduce the bug? Please list them in very high detail. Provide simple example places that exhibit the bug and provide description of what you believe should be the behavior.

This always happens. To reproduce, one can add a R15 rig in the workspace using the rig builder plugin that comes with Studio. Then run the simulation and run this script through the command bar:

local anim ="Animation")
anim.AnimationId = ''
local track = workspace.Dummy.Humanoid:LoadAnimation(anim)

When the animation stops, the bones are oriented something like this instead of the expected rest transforms:

If you would replace track:Stop(0) with track:Stop(.001), it’ll snap everything back to its rest transform properly:

Alternatively, replacing wait(1) with wait(3) will prevent the issue too (for this animation): the animation ends naturally (and does not loop). So if the animation isn’t playing, track:Stop(0) does no damage.

This video will illustrate the first two cases:

  • Where does the bug happen (www, gametest, etc) Is it level-specific? Is it game specific? Please post a link to the place that exhibits the issue.

Live, easy to reproduce using above steps

  • Would a screenshot or video help describe it to someone? If so, post one.

See above

  • For graphics bugs, it is sometimes helpful to know your system specs, especially graphics card.

Win 10 (but seems to happen on all machines)

  • When did the bug start happening? If we can tie it to a specific release that helps us figure out what we broke.

This has been an issue for a very long time, not sure when it started exactly.