View Full Version : js clavicle

04 April 2003, 08:58 AM
Hi everyone,
I'm working my way through jason schleifer's awesome lecture, and I love the auto clavicle.
I've been trying to add FK to the rig, but am having problems. I've tried creating two new skeletons, one a FK, and the other with joints orient constrained by the IK of the original rig and the new FK skeleton.
The problem is that it jumps around undesirably, and animating the blend via a custom attribute, it flips and doesnt take the most direct route between FK and IK.

Any suggestions?


04 April 2003, 12:50 PM
Are you talking about the first DVD or the second? If itīs the first one (auto-shoulder), then you might want to try and create a "dummy" arm that follows your ik arm, which you can then use to put the auto setup on. This worked for me.


04 April 2003, 01:27 PM
Ok I always have problems explaining this.(because im still learning about it) Ill try again though.

The jumping around and unsmooth blend of the orients is do to the Euler calculation.
To get from one rotation to another with a Euler calculation there is infinite to the power of something(I forgot) * 6 solutions.
So thats alot of solutions. So from point a to b Maya is just "guessing" so to speak its way to the other rotation.
Graph a orient constraint in the graph editor and look at its curve. You'll sorta see what I mean.
To fix this problem you need to make it quaternion.
A quaternion calculation is Vector based so there is no guessing from point a to b.
So instead of using orient constraints to blend, use an aim constraint on the blend arm with two locators. One for up, and one for aim.
have locators children of the fk and ik arms for each joint, then blend between the locators using point constraints.
There we go now we just made it quaternion. Its a vector based blend and will take the most direct route there.

There might be a tutorial somewhere on how to do this. I havn't looked.

Hope this helps


04 April 2003, 05:55 PM
That's a good explanation:thumbsup: I've heard that Maya has a probem with it's orient constraints. My joints sometimes flip like crazy when blending between fk and ik. Is this an inherent maya problem or do other packages suffer the same.

I was reading through the documentation that came with "Joint Factory" and they mentioned how much they hate maya orient constraints.


04 April 2003, 06:02 PM
SaucyJack -

Yeah Maya Orient constraints are Euler based so they will suffer that problem.
I dont know about any of the other packages but ive heard XSI's Orients are Quaternion based. :thumbsup:

I should take a look at "Joint Factory", Ive heard alot about it.

edit- Spelling.. Me needs sleep

04 April 2003, 04:12 AM
Thanks for the replies, it definately helps!
I'm having a little trouble with my aimConstraint settings though, I can get the arms to constrain and blend well but the LRA's are all messy now. I can either have it so that they always alighn to the world, which I would imagine wouldn't work too well with a skinned model. Otherwise the LRA's arn't much like the orientation which I originally made them. Which was Z up with Y going down the joint.

any help?


04 April 2003, 06:58 PM
Yeah Maya Orient constraints are Euler based so they will suffer that problem.

Iīm not sure about that. Have you read the orient constrain docs in the Node and Attribute Reference? It specifically states that orientation is computed in quaternion space:

The orientConstraint node uses these inputs to compute the world space orientation of each target object. It then computes a weighted average of the these orientations in quaternion space.

I know that Softimage has always used internal quaternion calculations as well, but Iīll have to check XSI again to see if weighted orientations behave differently (or better) than in Maya.


04 April 2003, 10:05 AM
dwalden74 -
I stand corrected.. maya's orients are quaternion it looks like...

I do have acess to Maya and XSI so I did a little experiement.

This avi below is an XSI blend.
XSI Orient Blend (
I roated one joint 730 on Y and left the other on the orients it was at.
The middle one blends between the top and bottom one perfectly from point a to b.

This avi below is a Maya blend.
Maya Orient Blend (
I rotated one joint 730 on Y and left the other.
The middle joint is the one blending between the top and bottom joint.
It sure doesn't blend very well.
So it might be quaternion, but it sure doesn't act like it.

It sounds like they fixed this for version 5 though.. So that'll rule!!!!
Maya 5 Pumps Up Productivity

The Maya software's industry-leading modeling, animation and effects features have been fine-tuned using customer input to make production workflows more efficient. For example, extensive enhancements to animation constraints, one of the most widely used tools in everyday character animation, will save valuable time while providing improved flexibility when working with characters. Maya 5 introduces a highly visual form of FK/IK blending, plus new ghosting and channel muting options that speed up animation tasks.

shaunyue -

You have to use an object UP in the aim constraint options.
You put the name of the object you want as an UP object in the box where you can type in...

Later guys

04 April 2003, 03:41 PM
I roated one joint 730 on Y and left the other on the orients it was at.

OK, but what is actually correct here? I mean, if youīre blending between 0 and 730, wouldnīt it be right to assume that a correct blend would make two complete 360-degree rotations, plus an extra 10 degrees, to finally arrive at its goal? I guess, though, that in quaternion space, everything should find the shortest rotational amount between two separate degree amounts, as you probably know. Did you try this experiment using values under or around 360?


04 April 2003, 05:44 PM
OK, but what is actually correct here?

Interesting question..
Id say for me the XSI blend is more correct, because it works better for a blend on a character.

I did more fooling around with the blending (around 360degrees)and I noticed the blend in XSI would never blend over a 180degree visible rotation.
Maya's blend would rotate over 180 degrees until it went past around 380 on Y.

It looks like XSI's orients got around an ugly blend by placing in rotational values at the start of the blend that wouldn't let it rotate more than 180 degrees in quaternion space.

So I guess they're both quaternion and taking the shortest rotational amount there. XSI's are just trickyer.

Pretty cool, im learning more and more about this stuff as I go on.

So which would you say is better dwalden74 assuming you could make sense of my post???


04 April 2003, 09:05 AM
the blend in XSI would never blend over a 180degree visible rotation. Maya's blend would rotate over 180 degrees until it went past around 380 on Y

So yourīre saying XSI will never blend MORE than 180 degrees and it will always take the shortest route? That sounds correct to me... I suppose....

XSI's orients got around an ugly blend by placing in rotational values at the start of the blend

Donīt understand this one (itīs still early). Can you expand a little bit on

One of the more interesting techniques in Maya that came to my attention recently was to use a colorBlend node to blend rotational values directly, instead of orientConstraints. This produces very clean results; however, if you blend from 0 to 720 degrees, then this technique would indeed rotate the joint 2 complete 360-degree rotations to arrive at its goal.

You should try some tests on a simple character in both XSI and Maya to see how it performs. Interstingly, I use an IKFK setup in Maya which uses the 3-chain method with orientConstraints and it works perfectly. I have yet to find a situation in which Euler flipping occurs using this technique.


04 April 2003, 01:37 PM
Might be worth your while checking out the 'messyConstraint'script by:

Ragnar Brynjulfsson ( )

Can be downloaded from

Solves a lot of quirky setup problems....


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