Default R15 Player Animations Now Include Strafing and Backpedaling [Beta]

Yes, documentation will be forthcoming.
As we are in Beta, the method is not guaranteed to be frozen in place as is.
That said, as the code and default strafing animations objects are publicly available, you can deduce from the current script and from the Animation objects themselves that simply adding LinearVelocity attributes to the Animations will cause them to be stored in the locomotion map for blending consideration. and that strafing will be active if all four quadrants are represented in the map.
There is no requirement on the number of strafing animations utilized.

1 Like

I actually have a corrective measure in place for this! I query for assemblies near the humanoid’s stage and subtract their velocity from the measurement :slight_smile:

Relevant Code Snippet:

local rootHeight = rootPart.Size.Y / 2
local hipHeight = humanoid.HipHeight

local floorOffset = Vector3.yAxis * (hipHeight + rootHeight)
local floor = rootPart.Position - floorOffset

local parts = workspace:GetPartBoundsInRadius(floor, 1, overlapParams)
local velocity = rootPart.AssemblyLinearVelocity
local compensated = {}

for i, part in parts do
	local root = assert(if part:IsA("BasePart")
		then part.AssemblyRootPart
		else nil)

	if not compensated[root] then
		velocity -= root:GetVelocityAtPosition(floor)
		compensated[root] = true
	end
end

Video Demo

3 Likes

I believe they let stringvalues stay to either preserve old behavior / change animations in game by just changing the value(?).

Either ways the animate script was never optimized. An example would be that it loads animations on the “Humanoid” rather the “Animator”. I’ve rewrote the script for my game and I eventually ended up with a perfect working animate script (without major blending support, which will be fixed as this came out).

Roblox (old) animate script #803 LINES OF CODE

VS

My condensed Animation Script #185 LINES OF CODE

(Heavily based off API and legacy Animate script)

Pros and cons
My script does NOT change animation at runtime with values, I’ll be linking it up to attributes.
My script only runs based on events.

Roblox’s Animate script probably can change at runtime, perhaps.
Roblox’s Animate script runs too much, mirroring on “script performance”.

@bloxmaster0808 Would it be possible to address these issues? I sat down and saw it still uses somewhat same behaviour as the last Animate script.

My my that looks epic
I’ll take your entire stock

I feel like Roblox has been releasing some good updates in quick succession and a lot of them appear to be super convenient or cool-looking things that I’ve always wanted and had to make myself from scratch.

3 Likes

Any chance this update could be causing this?

I’ve had issues with animations having weird behavior recently and I’m pretty certain it’s caused by one of the recent updates. It started happening with studio version 0.546.0.5460522 which according to the studio mod manager was pushed on the 27th. This is the only update announced around then that I think could be related to my issue.

1 Like

Very nice! Would love to see more of these kinds of update’s in the future.

Hi team, nice job on this one.

I have been hoping for behaviour like this to come since 2019, as it may be useful to hinder corner glitching and camera zoom based wall glitching, as well as giving games more freedom to do what they do best.

Also, while we’re on the topic of Animations, is there any plans to remove the ability to opt out of AnimationWeightedBlendFix in the future? Or is it here for good?

it’s ok i’ll port it to R6 so more non-metaverse games can enjoy the feature

2 Likes

very beautiful, this is something I never expected to be added but always wanted…

When the beta is enabled the animate script breaks entirely in my game (I’ve disabled the beta and it works fine now). Noticed it because my character’s default animations weren’t playing but any tools/custom animations worked fine.

image
image

The animate script was not modified in any way, just using the default one. I do have some custom movement scripts but up until now they haven’t conflicted with it.

3 Likes

Thanks for the feedback!
You are hitting a known bug with a fix that should arrive in the next release.

4 Likes

Does the behavior persist with the Strafing Animations beta feature disabled?

1 Like

Looks good, however will we be able to create our own animations for strafing?

1 Like

A more modular animate script where it’s easier to change player animations

The fact the Animate script still relies on the same jank that it did 10+ years ago to switch animations is definitely something

4 Likes

The problem is that with this beta I always get warnings and errors when I don’t have it enabled.

Hey everyone! I found out a fix on how to make this work:

(obviously make sure this is enabled)
image

First of all, set this in Game Settings
image

Second, add this script in the Starters

UserSettings():GetService("UserGameSettings").RotationType = Enum.RotationType.MovementRelative

Third, Enable Mouse lock

Then add this custom animate here:
Animate.rbxm (14.8 KB)

It should work now.


(if it doesn’t work, make sure you don’t have any custom animations enabled)

10 Likes

Hi, @towerscripter1386 !

Doing this in R6 could be possible, it would just require a little bit of scripting. I gonna work about and I will contact you when I’m done.

Best regards,

Vikko151

1 Like

Nice to hear mate. I also have some idea too how to make such things too

DBD moonwalking, cool.

3 Likes