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

Custom/skinned avatar is supported

Tested rig with 3 animations: Idle, Walk and Run

@HunterJacksonCarr

@NOTEKAMI ill use betterAnimate if you ever add 8way movement

You should be using it now! This is much better then the default animate script + it has important features that can be utilized to make your development experience easier.

And it is a better end product in general.

But I do get the appeal of a 8 directional movement system.

Update 1.2.1.1


New type: Instances (for Trove)

New settings:
Time_DefaultAnimationTransition for AnimationTrack:Play()
Enabled_ClimbFix – fix for R6 and R15


Code improvement


@HunterJacksonCarr Here is example how you can do that with BetterAnimate

Showcase: https://youtu.be/2v6d84cjyLs

local Instance_BetterAnimate = game:GetService("ReplicatedStorage").BetterAnimate
local BetterAnimate = require(Instance_BetterAnimate)
local Utils = require(Instance_BetterAnimate.Utils)
local Types = require(Instance_BetterAnimate.Types)
local Character: Model = script.Parent
--local PlayEmote = script:WaitForChild("PlayEmote") :: BindableFunction

local Presets = {
	ForwardRight = {
		Run = { {ID = 10404627994} },
		Walk = { {ID = 10404404615} },
	},

	ForwardLeft = {
		Run = { {ID = 10404604071} },
		Walk = { {ID = 10404377900} },
	},

	Forward = {
		Run = { {ID = 10899968825} },
		Walk = { {ID = 10921541949} },
	},

	Backward = {
		Run = { {ID = 10358526981} },
		Walk = { {ID = 10358505520} },
	},

	BackwardRight = {
		Run = { {ID = 10847291554} },
		Walk = { {ID = 10847107747} },
	},

	BackwardLeft = {
		Run = { {ID = 10847298457} },
		Walk = { {ID = 10847061332} },
	},

	Right = {
		Run = { {ID = 10404627994} },
		Walk = { {ID = 10404404615} },
	},

	Left = {
		Run = { {ID = 10404604071} },
		Walk = { {ID = 10404377900} },
	},
}

local MyAnimator: Types.BetterAnimate = BetterAnimate.New(Character, {

	Enabled_Signal_NewDirection = true,
	--Enabled_Inverse = true,
	--Enabled_Emotes = true,
	--Bindable_PlayEmote = PlayEmote,
})

MyAnimator.Trove_BetterAnimate:Connect(MyAnimator.Signal_NewDirection, function(Direction: Types.Directions)
	
	local FoundAnims = Presets[Direction]
	if FoundAnims then
		MyAnimator:UpdateAnimations(FoundAnims, true)
	else
		MyAnimator:UpdateAnimations(Presets.Forward, true)
	end
end)

MyAnimator:Start()

thank you i may use better animate