Well, here is an update after a very long time. I apologize for not answering to all who posted back in August. I read in a notification that someone bumped this thread just to ask for my model for free and didnāt realize many good comments had followed.
Anyway, by that time I was depressed and discouraged and had dropped this project because I had a problem with ugly artifacts. My stupid problem had nothing to do with drivers or shapekeys.
On my previous posts, I tried to show how great driven shape keys can work for shoulders, but I had not solved the problem of combined rotations causing ugly transitions.
Back then, Blender 2.42 had not been released and there were no pydrivers. A few weeks ago I started to learn what those pydrivers are about. So I used them for my model and it was so amazing to see how nicely and naturally the shapes started to combine! No position however extreme would look bad and the movement needed absolutely no bizarre tweaking of bones, constraints or anything else.
Having that solved, topology flaws started to reveal. Some denting and bumps were unavoidable because of my bad edgeloops.
It was time again for big topology changes. Because Blender has some bugs that can easily ruin all the work done with shape keys, I save my model and all shapes as text files to regenerate everything if needed and can use scripts to change all the vertex indices, so all my work is not lost when I make radical topology changes.
These images show how now I adopted this double face loop approach around the shoulder, which I copied from āBiscuitā, the male model by Broken. His model has clean and corrrect shoulder topology. My model didnāt end up as clean as his, but I managed to get rid of artifacts.
I canāt describe exactly why it works so well, but this topology solves the most difficult point, which is the fold which occurs between the chest and the arm when the arm is stretched forward.
Here are some images showing arbitrary poses.
As you can see, I smoothed the ribs, so criticized before:
(I know the gaps between the toes looks bad)
Here are some animations. The movement is not very nice, but the idea is to show how the deformation works. Please comment if you have ideas to improve my animations.
You might notice that the upper arm looks fat, this is in part because I have not solved the problem of querying the correct roll angle to drive the shapekeys that compensate for twisting.
(Ambient occlusion just stopped working for no reason, only for my fileā¦)
Animation 1 413 kb
Animation 2 313 kb
Here is a dressed version. I had to create a new file and regenerate my model from text files to make AO work again (darn bugs), although now I got some ugly dark zones.
Animation 433 kb
I took code from scripts written by others to solve the problem for X and Z combined rotations. My current problem is getting the correct Y rotation for the twisting arm. I am too ignorant to come with my own solution, but it appears that this can be solved by using the roll_correction() function from Basil Fawltyās pose script.
Ender Saka: Thanks for all your very good comments. I have made the armpit more concave. About the scapula, I knowā¦ that part is very difficult to edit because there are a lot of vertices and when working on a deformed mesh a lot of tools donāt work and vertices must be moved one by one.
Catboy85: Your solution is a very good alternative to pydrivers! If only I had read your answer in time. Pydrivers are very cool anyway.
Well, in case you want to know more, I submitted a shoulder tutorial using pydrivers to the tutorials forum. It has not got much interest .