Removing Humanoid's Animator

I like to make my own animation systems for fun. When R15 came out, I decided to work with R15 and create an animation system for it. Since then, I’ve made around three animation systems (currently working on one now.)

In order to make your animation system, you usually have two options: 1) Replace welds with your own or 2) remove the Roblox Animator. In the past, I used to replace them with welds (back in the good old days of r6.) However, I figured out that welds often tend to… screw things up, so I converted them into Motors. I used motors the same exact way as welds. In order to use motors, I had to remove the Animator.

Everything was fine, but I noticed that if I were to load my animation system while an animation other than the idle was playing, it would give me weird results. I didn’t really think much of it, and continued on, even after R15 was added.

However, recently, I picked up the Ninja Animation Pack (what can I say? I’m a ninja after all.) Everything (again) was fine, until I tried to run my animation system. The results:
4ff953acd2bca3e768006ba61abd4c24643eef29.png
This happens when you remove the animator while using the ninja pack. Actually, it happens all the time but it’s not noticeable when the idle (r6 and default r15) animations where equipped as the idle is very close to the non animated form of the character.

My fix around this was to resize the character then size it back. However, I realized I shouldn’t have to go through that just to make my character be in non-animated form.

The expected behavior of when the Animator object is removed should be to go in the default non-animated form. Can this be done?

(Not sure if this is a feature request or a bug fix request, but it seems that this shouldn’t be the expected behavior so I reported it as a bug.)

1 Like

@Osyris here’s another case for you if you haven’t seen it yet

You should do something along the lines of:

local humanoid = character:WaitForChild("Humanoid") local animateScript = character:WaitForChild("Animate") animateScript.Disabled = true animateScript:Destroy() for _, animationTrack in pairs(humanoid:GetPlayingAnimationTracks()) do animationTrack:Stop(0) end

Directly removing the animator object is not advised.

4 Likes

You can also insert an object called Animate in StarterCharacterScripts. This will override the default.

4 Likes

I’ll be using your method.

But still, I believe this should be fixed (if it’s an easy fix.) It doesn’t make sense for the controller to fix itself halfway. Might as well just keep the pose it was in…

I used @Osyris method, still got this:

@woot3, My situation doesn’t allow me to do that. Though I would if I could.

1 Like

Yeah I think this might be a different longstanding bug which I am in the progress of fixing. Sorry!

1 Like

Well, as long as something is being done about it. qq

So what’s wrong with just using Roblox’s animation system?

Nothing. I just don’t like it.

I would perfer my own systems as they are much more flexible and give me much greater control. They are also tailor made to suit my needs.