[v1.2.1.1] BetterAnimate (R15, R6, Skinned & Custom Rig Support)

Sure, I’ll do it when I finish the new version

1 Like

I’ve been looking for something to specifically fix animations not updating in real-time when they’re changed at runtime.

I’d use this but I noticed things like the point / wave animations not playing when running the chat commands.

I’d love to use this if it was fully complete, hoping the new version fixes some of these things.

1 Like
3 Likes

Does this script replicate the default animations that are overwritten? When using the default animation script, it’s inconsistently replicated.

Do you mean playing 2 animations at once (For example: old walk and new updated walk in real time)?

Answer: No.

This is impressive!
I like the playing animation backwards feature and the change animations in real time.

There are some Suggestions and Bugs I have for you.

Bugs:
  1. When jumping while moving backwards, Animation might play backwards and trigger the fall animation too early which messes up the look of it.
  2. If the humanoid is swimming backwards it bugs the animation out and loops it (Depends on animation)
  3. There are a lot of type checked code bugs that are present if “–!strict” is present
Suggestions
  1. Make a settings module to enable and disable extra features
  2. Use the base of the animate script I will provide for cleanliness and such
  3. Set animations on client and/or server for the benefits that come with it

Animate Script:
CustomAnimate.rbxm (8.6 KB)

Essentially, all it is is just a Animate script that relies on modules and a controller to be more clean and efficient.

3 Likes

Update 1.1.4.1

Fixed reversed animations
Removed --!strict
Fixed emote animations randomly can stop playing
Added settings sections (Image below)
Removed folder creating when changing animation in real time

3 Likes

Hello, thanks for bug reports!
About your suggestions, its a good idea, but i currently have no plans for it.
I have an idea in my head about how this could work, and it’s a lot of work for me.

The example you showed is not very good in that all these modules are replicated when the character respawns

2 Likes

Your right, but the general idea is just more organization and whatnot.

Good update though! I like it

2 Likes

After a while, I realized that I was doing some kind of garbage, I already have an idea in my head on how to simplify and improve everything. It will also work as a module (no longer 2 different scripts: server & client)

But! My module will use another module, for simplicity: Trove

New update coming soon!

5 Likes

Global update v1.2 is out!

Everything is changed. I hope you like update, as I tried to make everything more optimized and improved.

Also, if you have ideas on how to improve BetterAnimate, lmk in private messages

2 Likes

This resource has been VASTLY improved however, this should be considered for the default animate script…

I like your usage of Trove, the modularity you’ve crafted and the customization…
Thank you! This script is such a big improvement.

inverse walk doesn’t work with inverse=true (im using r15 character)

Hello, you need to use Enabled_Inverse not Inverse

Here’s the code how it should look like:

local BetterAnimate = require(PATH_TO_MODULE)
local MyAnimator = BetterAnimate.New(Character, {
	Enabled_Inverse = true,
})

MyAnimator:Start()
1 Like

Hello, thank you :grinning:.

Im working on 1.2.1 that will add even more features (Signals and Loading avatar animations)

Update 1.2.1


Added 4 Signals
local BetterAniamte = require(PATH_TO_MODULE)
local MyAnimator = BetterAnimate.New(Character)

 -- Fires on new state (Running, Falling, etc...)
MyAnimator.Signal_NewState:Connect(function(State: string) end)

-- Fires on new animation (Except tool animation)
MyAnimator.Signal_NewAnimation:Connect(function(AnimationClass: string, AnimationName: string, AnimationTable) end)

-- Fires on new **(String not Vector3)** moving direction
MyAnimator.Signal_NewDirection:Connect(function(Direction: string, Vector3_Direction: Vector3) end)

-- Fires on animation keyframe reached (Including tool animation)
MyAnimator.Signal_KeyframeReached:Connect(function(Keyframe: string) end)

Added function to get player avatar animation
local LocalPlayer = game:GetService("Players").LocalPlayer
local BetterAnimate = require(PATH_TO_MODULE)
local AvatarAnimations = BetterAnimate.GetAvatarAnimationsByUserID(LocalPlayer.UserId)
local MyAnimator = BetterAnimate.New(Character)
MyAnimator:UpdateAnimations(AvatarAnimations, true)

–Code improvements

man, you had blocked the permision.

Sorry about that, uploaded module to GitHub
GitHub Link

1 Like

Thanks! I thought this message won’t reply.

@NOTEKAMI does this work with skinned mesh characters