Sure, I’ll do it when I finish the new version
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.
Update 1.1.4
– Created place for Better Animate (Uncopylocked), where you can test it
BetterAnimate - Roblox
– Fixed chat commands not working
– Small fixes and code cleaning
– Code Optimization
Before:
After:
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:
- When jumping while moving backwards, Animation might play backwards and trigger the fall animation too early which messes up the look of it.
- If the humanoid is swimming backwards it bugs the animation out and loops it (Depends on animation)
- There are a lot of type checked code bugs that are present if “–!strict” is present
Suggestions
- Make a settings module to enable and disable extra features
- Use the base of the animate script I will provide for cleanliness and such
- 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.
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
Your right, but the general idea is just more organization and whatnot.
Good update though! I like it
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!
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
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()
Hello, thank you .
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
Thanks! I thought this message won’t reply.