Animation offset, how do I fix it?

My animations are all offset. It’s weird. It’s perfectly positioned in the Animation Editor, but when I hit “Play” and the animation plays it’s offset for some reason.

Editor:

Ingame:
c34984d327f6f48215ba712ef3f5bd7e

1 Like

Either it’s the Motor6D positioning, are you creating a new Motor6D Instance? If it’s different than the animation then it might cause the problem. Otherwise it could be because of animation blending where you will need to adjust animation weightage.

I am using a Motor6D, and it’s in the UpperTorso. But in my script I created a Motor6D and parented it to the same location (the local player’s upper torso).

Yep definitely a problem, you will need to make sure the C0 and C1 joint of the created Motor6D is the same as the one you used in the animation.

You can do this by printing the CFrame of the C0 joint then setting the newly created Motor6D equal to that:

print(workspace.character.UpperArm.Motor6DJoint.C0)

Here is a visualization of what’s happening.

Motor6D joint created using the very handy RigEdit Lite.

Motor6D joint created using the insert object feature and manually parented the part0 and part1. The C0 and C1 is equal to CFrame.new()

4 Likes

Hold up, I am big confusion.

you will need to make sure the C0 and C1 joint of the created Motor6D is the same as the one you used in the animation.

What is C0 and C1? When I go into Motor6D, there is no C0 and C1 properties:

Sorry if I seem ignorant, scripting animations is really new to me

Oh yeah this property is hidden, Gotta look into the dev api reference for this.

https://developer.roblox.com/en-us/api-reference/class/Motor6D

Welds also have C0 and C1 btw.

Okay, I’m with you. So how would I get the C0 and the C1 that I used in the animation? Whenever I try to play the animation it gets offset, so how would I get the non-offset values

I believe an easier way is to clone the Motor6D from the rig then change the part 0 and part1 to the players character. The C0 and C1 property should be copied as well. Otherwise you can manually find the CFrame using the command bar.

Alright thanks a bunch. Will the C0 and C1 be different for each animation, or will it only be different if I move the Motor6D to a different part of the body?

Well, the C0 and C1 will only change according to how you rigged the joints. If the position of the joint represented by the orange circle in between the parts changes then yeah the C0 and C1 will be different.

So you’re saying if the Motor6D’s Part1 and/or Part0 are different the C1 and C0 will be different?

I’ve been having a similar problem to this, but the only difference is that the character used to make the animation and the one used in the animation are literally exactly the same. Could this still be caused by the same thing?