Weird Behavior With Right Arm When Using Custom Walk Animation

Hi there. I have an issue with the custom walk animation I created to replace the ROBLOX walk animation. When moving the character, the right arm seems to bend weirdly and does not match the intended animation.

I have scoured the forums trying to find answers, and I found a lot of blending-type issues with custom walk/run animations. I don’t know that it’s a blending issue though, because I have another walk animation that performs just fine by replacing the walk animation id within the ROBLOX Animate script.

My current method of replacing the default walk animation is by placing a copy of the character Animate script within StarterCharacterScripts and then replacing the run id with my custom walk id.

local animNames = { 
	idle = 	{	
				{ id = "http://www.roblox.com/asset/?id=507766666", weight = 1 },
				{ id = "http://www.roblox.com/asset/?id=507766951", weight = 1 },
				{ id = "http://www.roblox.com/asset/?id=507766388", weight = 9 }
			},
	walk = 	{ 	
				{ id = "http://www.roblox.com/asset/?id=12885315250", weight = 10 } 
			}, 
	run = 	{
				{ id = "http://www.roblox.com/asset/?id=12885315250", weight = 10 } 
			}, 
	swim = 	{
				{ id = "http://www.roblox.com/asset/?id=507784897", weight = 10 } 
			}, 
	swimidle = 	{
				{ id = "http://www.roblox.com/asset/?id=507785072", weight = 10 } 
			}, 
	jump = 	{
				{ id = "http://www.roblox.com/asset/?id=507765000", weight = 10 } 
			}, 
	fall = 	{
				{ id = "http://www.roblox.com/asset/?id=507767968", weight = 10 } 
			}, 
	climb = {
				{ id = "http://www.roblox.com/asset/?id=507765644", weight = 10 } 
			}, 
	sit = 	{
				{ id = "http://www.roblox.com/asset/?id=2506281703", weight = 10 } 
			},	
	toolnone = {
				{ id = "http://www.roblox.com/asset/?id=507768375", weight = 10 } 
			},
	toolslash = {
				{ id = "http://www.roblox.com/asset/?id=522635514", weight = 10 } 
			},
	toollunge = {
				{ id = "http://www.roblox.com/asset/?id=522638767", weight = 10 } 
			},
	wave = {
				{ id = "http://www.roblox.com/asset/?id=507770239", weight = 10 } 
			},
	point = {
				{ id = "http://www.roblox.com/asset/?id=507770453", weight = 10 } 
			},
	dance = {
				{ id = "http://www.roblox.com/asset/?id=507771019", weight = 10 }, 
				{ id = "http://www.roblox.com/asset/?id=507771955", weight = 10 }, 
				{ id = "http://www.roblox.com/asset/?id=507772104", weight = 10 } 
			},
	dance2 = {
				{ id = "http://www.roblox.com/asset/?id=507776043", weight = 10 }, 
				{ id = "http://www.roblox.com/asset/?id=507776720", weight = 10 }, 
				{ id = "http://www.roblox.com/asset/?id=507776879", weight = 10 } 
			},
	dance3 = {
				{ id = "http://www.roblox.com/asset/?id=507777268", weight = 10 }, 
				{ id = "http://www.roblox.com/asset/?id=507777451", weight = 10 }, 
				{ id = "http://www.roblox.com/asset/?id=507777623", weight = 10 } 
			},
	laugh = {
				{ id = "http://www.roblox.com/asset/?id=507770818", weight = 10 } 
			},
	cheer = {
				{ id = "http://www.roblox.com/asset/?id=507770677", weight = 10 } 
			},
}

Here is what it looks like in the animation editor:

Here is what it looks like in-game:

3 Likes

it has to do with how roblox imports the animations.

check the right arm inside the animation editor to see if something’s wrong.

Everything appears to be fine. I have a keyframe for each part on the right arm.

It could be another animation/animator interfering, can you confirm?

Printing Humaniod.Animator:GetPlayingAnimationTracks() results in this output:
image

So, only the run and walk animations are playing (being blended), which is expected.

If that’s so, try and run the animation by it’s self and see what happens.

1 Like

My animation is now the sole playing animation and the issue persists.

Script I used to accomplish this:

local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local animator: Animator = humanoid:WaitForChild("Animator")

character:WaitForChild("Animate"):Destroy()

for _, v: AnimationTrack in animator:GetPlayingAnimationTracks() do
	if v:IsA("AnimationTrack") then
		v:Stop()
	end
end

local walkAnim: Animation = Instance.new("Animation")
walkAnim.AnimationId = "rbxassetid://12885315250"

local walkAnimTrack: AnimationTrack = animator:LoadAnimation(walkAnim)
task.wait(1)
walkAnimTrack:Play()

Bumping this. Still have no clue what is causing this. Unsure if it’s a Roblox import bug or what.

I tried to replicate this bug, but I couldn’t produce the same results

This doesn’t look like a roblox issue, but maybe its due to how you exported the animation?

I’m honestly at a loss. There’s no deformity in the right arm’s keyframes. I used the Roblox animation editor to create and publish the animation to Roblox. I would say maybe it’s because I overwrote an existing published animation instead of creating a new asset ID, but I have done this before without issue.

I have figured this out. Something was wrong with the rig on which I was creating the walk animation. Be sure to check this when making animations (not sure how to tell without creating the animation first and then testing it on a different rig to see if it’s wonky).

Essentially, I took the KeyframeSequence on the broken rig and put it into another rig that I inserted, and it acted as it was in-game (showing the broken right arm movement).

To fix this I had to remake the animation on the new rig to correct the problem. Not entirely sure what was wrong with the other rig because the right arm had no weird orientation. The animation now plays correctly.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.