View Full Version : Shoulder rotations and blenshapes

03 March 2003, 08:12 PM
Hi People

I decided on using blendshape for nice shoulder deformation

The shoulder looks great in all directions
But the problem arouse when I added new blend shape node for the arm again it looks great in all directions for the arm only but when arm rotation adds up to shoulder rotation, blend shapes combine the effect and the result looks awful.

I'm thinking of adding blendshapes on top of those which would fix it but seems to mee that i'm gonna end up with a hundered blenshapes for one shoulder and it's not guarantee will work.

Having a minimum experience in the area. So please people give me an advice how to fight the shoulder.
Is blendshape a good Idea and I can solve the situation without producing hundereds of them or I better abandon it, and use some other method.

Oops .. The character I'm rigging is semirealistic, I'd say, an i want him to be able to rotate his arms in any direction, Like any realistic character normally would, including ability to put his arm on top of his head.

03 March 2003, 07:51 AM
Take a look at this tutorial:

It should help you somewhat. (I think!)

03 March 2003, 11:12 PM
Originally posted by Mickley
Hi People
I'm thinking of adding blendshapes on top of those which would fix it but seems to mee that i'm gonna end up with a hundered blenshapes for one shoulder and it's not guarantee will work.

are you using clavicle bone and split upper arm bone?
see the link josvex posted, it's really good info there.

if you have the clavicle and you upper arm set up correctly you will most likely not need to do corrective blendshapes to get a working results and could use blendshapes for muscle flexing solely (if it's at all necessary or wanted).


03 March 2003, 06:50 AM
Thank you Jozvex.

That is a valuable tut indeed. If I only could know about the technique litle earlier. Now I'm gonna have to go back and redo my skeleton :surprised. or continue to mess with a hundered of blendshapes :surprised :surprised :surprised

Yes Octagon.
that's calvicle and split apper arm bone (how did you know? :surprised, but I didnt realize that IK/FK switch could be of such use, I sought for a more convenient rig that would be easier animate, without switchig every time you need to rotate it, but by just simply animating pole constraint. therefore I decided to forget about split upper arm. now the shoulder deformation issue makes me think of going back. :shrug:

I chouse blendshapes because I want something more from my model than just correct deformation I need very very nice and realistic one, and here what I got.

Now my question basicaly what is a preferred way of setting up deformations for a realistic shoulder? This cane toad one is a really good one but the guys came up with it working on this particular project I believe. What other method(s) CG world uses?

03 March 2003, 12:11 PM
I use another way for bicep twist. I duplicate the shoulder joint and aim constrain it to the elbow. this way, it always faces to the elbow without twisting (you might adjust (auto orient) your joint axix before or play with the aim vector of the aim constraint, to match the orientation of both joints)
To make the aimconstraint behave exactly the way you want, its not only important to edit the aim vector, but also the UP vector of the aimconstraint.
I use the world rotation up as world up type (check AE of the aimconstraint) and use for that an object, that is parented under my shoulder control.
By doing this I Keep my Upvector always in the right direction relative to the shoulder, even, when my character bends forward or lies down.
good thing are fewer extra joints which is good for a game rig.
bad thing default smoothskinning needs some extra work, you have to manually distribute joint weight between original shoulderjoint in the elbow area, and the duplicated aiming joint in the area around the clavicle.


03 March 2003, 09:26 AM
not sure if you tried this but if you are useing corective blends on one mesh... like an arm or torso you can't have multiple blendShapes nodes... what I mean is this... if you look in the channel box with that one mesh selected and you see two or three blendShape history nodes then they won't work together properly....

when two different target shapes in two different blendShape nodes are turned on at the same time, then latest blendShape node will override the earlier one/s this is for the same reason that we have the blendShapes in the history Before the skinCluster... so that the joint-deformation will bend the blendShape-deformed mesh into position, If the blendShape-deformation was to happen after the joint-deformation then it would counter act the rotation of the joint...

so what i think might have happened is that after you did the corectives for the shoulder you may have added annother blendShape node on the same mesh which, when-ever turned on, would cancel out any work you did with the original blendShape.

if this is what happened all you have to do is delete the blend shape nodes... in Window > Animation Editor > Blend Shape. then select ALL the blendShapes for that meshfirst and the original mesh last and go to .... Deform > Create Blend Shape.
so you have all the blendShapes in one node... they should all work together....

hope that helps... :)

ps i have a cool way to do an Ik/Fk switch if anyone wants to know...

03 March 2003, 11:34 AM
ps i have a cool way to do an Ik/Fk switch if anyone wants to know...

Im always interested in learning something new, so let 'er rip!


03 March 2003, 02:03 AM
well i am not sure how everyone else does there ik/fk switches... i have seen a lot of orient constraint weighting animations.... these always seem problematic for me... the arms will spin and do other weird stuff to get from ik to fk or vise-versa...

i duplicate the shoulder joint in a arm 2 times...... and rename the dupes...
one is FK_Shoulder, FK_Elbow, etc....
the other IK_shoulder, IK_Elbow, etc...
delete the hand joints after the wrist on both dupes...
then you just create 3 blendColor nodes in the hypershade...
one blendColor for each joint...

the cool thing about vectors (xyz) is that they are all compatible with eachother... rgb for instance so you connect via connectionEditor or scriptEditor....

Fk_shoulder.rotateX to blendColorShoulder.color1R and so on... Y to G and Z to B then the same with the IK_shoulder XYZ to color2 RGB

the same thing with elbow and wrist joints....

the only thing left is to make an attr to controll the switch...
add attr "useIK" or something make it 0min 1max and connect it to all 3 blendColor.blender attr....

viola.... that is it...

it works beautifuly, you technically can link rotate to color but i have had better luck linking the XYZ to the RGB....

03 March 2003, 09:43 AM
This works quite nice. What I like is that youre blending direct connections to the rotation values - this is always the best approach in Maya.

you technically can link rotate to color but

Yes, I never understood why this produces inconsistent results. Ive seen this behavior many other times, and the only predictable approach is to connect XYZ individually.

cheers for the tip-

04 April 2003, 09:19 PM
ok I seem to be lost in space for a past month. Now I'm back sorry if it looked rude or somthn. Thanks to replies to everyubody greatly appreciate it.

Sp0rk3d you are genius! this was exactly the reason why it wouldn't work right. I had two separate blendshape nodes, as I moved all the blenshapes under a single node they started to behave properly.

Antweiler thank you for sharing; iteresting to know another method.

Best regards to all

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