Easimation Module v1.1 - No more linear fadeTime for Animations!

Intro

Now, we all know that ROBLOX’s :Play() and :Stop() functions for AnimationTracks have fade time parameters which are pretty useful. But, I know I’m not the only one who really hates that it’s a forced linear ease, because it looks really bad most of the time.

But don’t worry, because I made a module to combat this and make it look smooth when doing AnimationTrack blending! Now, you can apply easing styles!!

How it works

By combining TweenService with :AdjustWeight() and :AdjustSpeed(), I’ve successfully made a module that is capable of four very nice functions that allow you to ease animations in and out easily. It returns a “modded” animation object that has extra functions and events (documentation and source code will be below)

I’m not going to explain how it works here, because the important thing for you to know is what it actually looks like, so that you’re convinced to get it!

Video Demonstrations

ROBLOX’s default AnimationTrack:Play()/:Stop(), with non-customizable easing and a forced linear ease:

Easimation’s easimationObject:Play()/:Stop(), with customizable easing: Easimation:Play() and Easimation:Stop(), with tween settings TweenInfo.new(.7, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)

Easimation’s easimationObject:EaseWeight():

Easimation’s easimationObject:EaseSpeed():

Source Code and Documentation

Source code is here:

Documentation and tutorial:

Where do I get it?

Link to get the module (also includes documentation inside of it): Easimation Module v1.1 - Roblox

IMPORTANT NOTE: For those of you who don’t know, when using AnimationTrack weight and you want animations to “stop playing”, make sure you NEVER set it to 0 if you’re planning to adjust the weight to something higher again. Set it to a really small number like .000001, because once you set an AnimationTrack’s weight to 0, the server won’t account for the animation anymore, and the animation won’t replicate. It’s a weird ROBLOX thing, it’s not anyone’s fault.

If there are any bugs, reply to this post with the bug so I can fix it. Thank you, and have a good day!

Update 8/4/20 v1.1: Fixed a bug so that if you call :Stop while something is still tweening, it doesn’t mess up and cancels the other tween. So, the stopping tween now overrides any playing ones.

25 Likes

I am experiencing a bug:
[18:00:38.686 - Unable to cast double to TweenInfo](rbxopenscript://www.dummy.com/dummy?scriptGuid=%7BEE38D612-A884-4560-8997-434083B34CAD%7D&gst=2#211)

This is most of the relevant code:

local Animations = {}
for i,v in pairs(Stand.Animations:GetChildren()) do
	 Animations[v.Name] = Easimation.New(v,Stand.Humanoid)
end
Animations[Move.Animation]:Play(1, .1, TweenInfo.new(.1,Enum.EasingStyle.Quint,Enum.EasingDirection.Out))

This is on the client, and I am using an AnimationController (Had to change a bit with your module to make it work with it).

This worked perfectly fine before I implemented it with Easimation.
Apparently :Stop() doesn’t have the same arguments as play, that threw me off.

And yea, it’s really a simple fix to add Animation Controllers. Just a simple line of code.

1 Like

What line of code is it coming from? That’d be really helpful for me to know, too. I don’t really use AnimationControllers, but I think my module should work with them as well, so I’ll try to fix this

Edit: Oh. Make sure you read the documentation lol

1 Like

Thanks for this, it looks really neat!

1 Like

No problem! Thanks for liking my module

1 Like

I’ll totally use this when needed!

Hope you continue your work!

1 Like

Hey, sorry for bumping an old thread.
Just found this, but came across a problem. When easing animation weight, it works perfectly on the client, but shows odd behavior on the server.

https://gfycat.com/radiantaggravatinglabradorretriever

The animations are being played from the client. As you can see, the easing works as intended locally (player on the left), but when another client plays the animation (player on the right), the tween appears as stuttery and laggy to other players.

For me, this issue doesn’t happen when animation speed is tweened, just when the weight is eased.

3 Likes

I just found this and I am absolutely going to use this!