PDA

View Full Version : Shoulder Twist in an IK rig


CharlesAnderson
01-05-2004, 11:33 PM
Hey all, I am playing with methods to reduce the bad twisting that happens on the shoulders of characters when using just a single joint in the shoulder. I have looked at the cane-toad tutorial and unless I am mistaken that method seems to work on FK rigs, but I couldnt get it to work when the shoulder bone is controlled by IK. Does anyone have any proven methods to take care of this problem? I seem to be having troubles with it.

macaroniKazoo
01-08-2004, 09:59 PM
the easiest way is to unparent the elbow from the "twist" bicep bones, and then drive their rotations depending on the twist of the shoulder using the method andrew has on his site... theres no reason you have to parent the elbow to the twist joints.

or, you could have a dummy arm skeleton, which doesn't have the twist joints. the dummy shoulder joint could be used to drive rotation on the real arm skeleton.

or (and i'm not sure this method would work) you could limit the rotation for the twist joints using the stiffness attribute, and lock the 2 axes you don't want it to rotate about. so if you had the twist rotating about the y axis, lock x and z, and set the stiffness on the y axis to whatever value you need...

i'm sure one of those methods should work for you. :)

Maive
01-09-2004, 05:05 AM
Hmmm, sorry, something I'm not getting. Been looking at all the references but I haven't had too much experience with Maya to understand the setup of rigging up the character.

Has to do with the settings I'm sure. Basically, my problem is after applying the joints and IK handles to the shoulder, I just want to move the arm perpendicular to the hips (http://humlink.humanities.mcmaster.ca/~chanj/screenie.jpg). Simple movement really. But I'm not sure what to do next to prevent the body from twisting up like this (http://humlink.humanities.mcmaster.ca/~chanj/screenie__.jpg). How can I make the rest of the body independent of the movement so it won't be affected by the movement of the arm? When you refer to un-parenting joints, etc. -- I'm only vaguely familiar with the Hypergraph/Outliner.. please bear with me.

:blush:

kmp3d
01-09-2004, 08:01 PM
Maive

Basically, my problem is after applying the joints and IK handles to the shoulder, I just want to move the arm perpendicular to the hips.

First you want to use a pole vector constraint. Your using a RPIk handle if you use a control object you can constrain the pole vector to the control object and have control over the twist of the IK.

Simple movement really. But I'm not sure what to do next to prevent the body from twisting up like this.

Well the problem is that you only have arm joints skinned to the geometry. So those joints are the only thing having influence on the mesh, weight normalization. You either need to complete the skeleton or paint no influence on the rest of the mesh so the arm joints no longer effect it.

Mr Anderson is actually asking a different question from your problem your having.

As for the original question Jason's Dvd Integrating a Creature Rig
(which I just purchased at the Alias incredible holiday sale for $50.00 US, reg $130.00 US) has a great clavical setup. It is a automated clavical and shoulder setup that can blend FK/IK. Which I think would help greatly in smoothing out the shoulder movement. I'm still learning it and working my way through the docs, but highly I recommend it.

davidsloss
01-10-2004, 02:43 AM
Hey macaroniKazoo-how're you doing?

Originally posted by macaroniKazoo
the easiest way is to unparent the elbow from the "twist" bicep bones, and then drive their rotations depending on the twist of the shoulder using the method andrew has on his site... theres no reason you have to parent the elbow to the twist joints.



I have a quick question for you about what you said above: I don't really understand how the arm setup could still work if the elbow joint is not parented to the bicepB/lower twist joint. Do you mean that it should be a child of the shoulder joint instead? But if it was a child of the shoulder joint, according to Andrew's method, the lower arm would not receive any twist/action, would it? --Because the shoulder joint is not rotating in X.

I sure I'm missing something silly. It seems you're always having to explain the obvious to me! (Which I deeply appreciate!)

David

macaroniKazoo
01-11-2004, 09:46 PM
could still work if the elbow joint is not parented to the bicepB/lower twist joint. Do you mean that it should be a child of the shoulder joint instead? But if it was a child of the shoulder joint, according to Andrew's method, the lower arm would not receive any twist/action, would it? --Because the shoulder joint is not rotating in X.

ok, there heirarchy would look something like this:

clavicle
-bicep
--bicep twist01
---bicep twist02
----etc...
--elbow (ie parented to bicep)
---wrist twist
----hand

so basically the twists don't affect the arm below the bicep, they're there merely to deform geometry... that way they also lie outside the ik chain used for the arm, which means you don't get cycles when you base their rotation expression, or muliply/divide node on the bicep's "x-rotation".

does that make more sense?

hmmm, i thought it would work a lot better than it does. its not really much of a solution actually...

PS where is your quote from david?

Maive
01-12-2004, 03:24 AM
Originally posted by kmp3d
Maive

First you want to use a pole vector constraint. Your using a RPIk handle if you use a control object you can constrain the pole vector to the control object and have control over the twist of the IK.

Well the problem is that you only have arm joints skinned to the geometry. So those joints are the only thing having influence on the mesh, weight normalization. You either need to complete the skeleton or paint no influence on the rest of the mesh so the arm joints no longer effect it.

Umm.. ok, I applied a Pole Vector Constraint onto the IK handle. Then I removed the influence by editing the skin.. I haven't found an option where you can "paint no influence" so I'm not even sure if Remove Influence was even the correct thing to do.. needless to say, I'm still stuck. :curious:

kmp3d
01-14-2004, 04:16 AM
Umm.. ok, I applied a Pole Vector Constraint onto the IK handle. Then I removed the influence by editing the skin.. I haven't found an option where you can "paint no influence" so I'm not even sure if Remove Influence was even the correct thing to do.. needless to say, I'm still stuck.

Sorry I should have been clearer in my previous post. The issue here is weight normalization. Whatever joints you have skinned to the mesh has exactly an influence of 1. In that every vertex on your mesh will have a weight of 1, check your component editor and you'll see what I mean. If you start painting weights you never actually remove or add weight your actually just moving it around to cause joints to influence a different area of the mesh. You can disable weight normalization but in this case this is probably not what you want. My advice is try to build a complete skeletal structure. You will learn a lot by doing this, it will correct your problem, and you will be that much closer to rigging your character. But if you want a quick fix. Select all of the vertices that you don't want the joints to influence then go to your deformer sets relationship editor and remove them from the current skin cluster.

CGTalk Moderation
01-17-2006, 02:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.