shoulder rig, whose movement is divided into 3 joints

shoulder rig, whose movement is divided into 3 joints

vladvitov78
Explorer Explorer
507 Views
5 Replies
Message 1 of 6

shoulder rig, whose movement is divided into 3 joints

vladvitov78
Explorer
Explorer
  • Hello! I'm making a rig for a humanoid robot (mech), and the shoulder of this 3D model is divided in such a way that instead of using 1 joint, I needed to divide it into 3 joints. One for bending the shoulder, another for raising the shoulder sideways, and the third allows the shoulder to rotate around its own axis. Is there any reliable way to control this setup using IKHandle?
  •  
0 Likes
508 Views
5 Replies
Replies (5)
Message 2 of 6

FelipeFierro
Observer
Observer

Hi!

 

You could avoid unwanted movements by splitting the setup into multiple IK chains. For example, use one IK just for the shoulder assembly and another separate IK for the arm itself, like in the example image. That way, the shoulder joints can handle the mechanical shoulder motion independently, while the arm IK controls the arm without causing unwanted rotations or offsets in the shoulder system.

 

iks.jpg

 

This approach is usually much more stable for mech rigs compared to trying to drive all 3 shoulder joints from a single IKHandle.

Felipe Fierro
Film Director


0 Likes
Message 3 of 6

vladvitov78
Explorer
Explorer

Hi!

Thanks for the response, but I don't think it will work in my case. I'll attach a couple of images of what I'm dealing with to make the situation clearer.

Z_rotate_jntZ_rotate_jnt

Y_rotate_jntY_rotate_jnt

X_rotate_jntX_rotate_jnt

 

 

0 Likes
Message 4 of 6

FelipeFierro
Observer
Observer

Oh I see, in that case, you can create a fourth helper joint that's gonna be the parent of the others, setup that joint as parent using a parentConstraint with rotation turned off. Then use that helper joint as the start of the IK chain.

That way, the other joints follows the ik shoulder position correctly, while the actual shoulder joints remain free to rotate independently. The child joints will still move accordingly because they inherit the translation, but you avoid the unwanted rotational behavior.

Felipe Fierro
Film Director


0 Likes
Message 5 of 6

lauri_barnhart
Autodesk
Autodesk

@vladvitov78 - Welcome! Thanks for your question.

 

Did the information provided by FelipeFierro help?

 

If yes, please mark the reply as the accepted solution.

 

This helps other users benefit from the information.

 

In case you still need help, please provide an update here so we can help you best moving forward.

 

Best,

 


Lauri | Community Manager
0 Likes
Message 6 of 6

vladvitov78
Explorer
Explorer

Well, I've tried various methods, and the most effective approach is to create a separate IK chain of joints, then split the IK shoulder rotation into three components for the corresponding joints. However, I encounter a gimbal lock for Zrotate_shoulder_jnt, regardless of the rotation order I choose. Therefore, I believe that IK control is not possible for this setup, or I need to use some unknown methods.

 

0 Likes