Home Website Youtube GitHub

Shoulder Gimbal Locking

I’m using the basic Epic Shoulder and Arm components.
Even in T pose, if I rotate the arm to be off T pose in a couple of axis, and then rotate the whole arm in Z. When it nears 180’ the shoulder joint starts spinning on X.
Marking this a bug because I think it is one.

That’s what happened to in this ticket I think.
The issue has been around for a while it seems.
Shoulder rbf joint flip - Support - mGear Framework Forum

How do I attach a 15mb video?
I made one showing this issue exists in the Y-up templates right out of the box.

I don’t know what the cutoff limit is. But you wouldn’t attach it. You’d upload it somewhere and provide a link. Or edit it down to a smaller size or a gif.

1 Like

Edit: Removed video link, now that it’s been viewed.

“You don’t have access to this content.”

I’m sorry about that, Chris.
Edited the link with one that should work.

@chrislesage Did you get to watch the video link I fixed?
I should note that the upperArm twist joint doesn’t flip 180 like the upperArm joint does. It might be hard to see the rotation axis flipping in the video. But in the first part of the video I am using the Y-up template biped straight out of the box. So, the issue can be easily recreated.

Any suggestion on how to fix this would be greatly appreciated.
The work around at the moment is to turn on arm tweak controls, and counter animate the arm tweak0_ctl. Not ideal!

In the video you are rotating the arm at an extreme angle. Anatomically speaking, this wouldn’t be possible in a real arm. I know that doesn’t matter when we’re just trying to animate a 3D mesh. Or if the rig needs to do specific non-anatomical things, like robot rigs.

But if you’re raising the arm up that high, you should likely be rotating the clavicle up as well. And then parent-relatively, the arm won’t be passing that 180º flip zone.

If rotating from the clavicle doesn’t look right, you could also try giving the arm an extra parent at the same pivot, and rotate it up in the same way as you would the clavicle. This would give your driver an extra bonus gimbal. It would take a bit of extra manual animation, but it’s better than counter-rotating an unstable gimbal issue.

The only other thing I can suggest is tracing along the DAG and finding the drivers. Like arm_L0_div0_loc and attempting to change the rotation order. But if you do that, it will flip during other rotations. Euler rotations and upvectors can only do so much.

3 Likes