View Full Version : dynamic joint limits (arms go thru a body)

03 March 2003, 06:24 AM
I have a calvicle joint which will move up 30 degrees and down 30 degrees.

I want to limit its child (arm joint) in a certain way:

1. When calvicle is UP (shrug a shoulder) the arm joint should be limited by 120 deg.
2. Calvicle at ZERO (bind pose) the arm joint should be not rotating more than 90 deg.
3. Calvicle DOWN (shoulder relaxed) the arm joint would stop at 60 degrees (otherwise it will go through the body).

How do I go about that?

P.S. I tried to play with expressions which would dynamically change a command's "transformLimits -rz -20 90 -erz 1 1 arm_joint;" value.

But that didnt work.:shrug:
Maybe there are some other ways...

I know that that can be taken care of while animating. But anyway is there a way to set up joints, so that they wouldn't be swimming through the body of a character.

03 March 2003, 06:25 AM
Here is something to illustrate

03 March 2003, 06:27 AM
calvicle UP -30 -> arm 120 deg

03 March 2003, 06:29 AM
calvicle DOWN 30 -> arm 60 deg

03 March 2003, 08:54 AM
umm set driven key??
haven't tried it but it might work.... clavicle.rotateZ or whatever is the driver and the joint limit z (not sure real attr name) is driven..

it seems like that would work...

03 March 2003, 05:38 AM
One good way to make what you want is by making seperate chains of joints. Instead of parenting the shoulder to the clavicle, point constrain it. It can get messy this way if you don't do it correctly, but it works wonders for making just ordinary things happening to a skeleton, that you don't have to animate by hand.
Check out my tut, in my signature, there is a really detailed way to go about this. If you have any ???'s, just ask.

CGTalk Moderation
01 January 2006, 05:00 PM
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.