Shoulder Rig Question / Challenge / WIP

@(jay)
Okay so here is a simpler version of the same setup simplified and applied to mancandy - a good example of a simple cartoon character. This does not take long to make, and delivers comparable results to the full setup, in my opinion. Still could use some weight painting touchups but the idea is there. *I think it would also be much better with the segmented clavicle, but I wanted to keep it extremely simple.

I could not think of a use for more than the one fan bone. But I’d be very interested in seeing an application of a multi-bone fan setup if you have something specific in mind :slight_smile:

@MarkJoel60
The customizability of 2.5 will definitely be a huge bonus, I look forward to it as well. The reason I’m not using 2.5 is because of these changes that are still happening (like the driver thing), which make the software unusable for serious projects at this point. I tinker with it, but do my work in 2.49 still.

As for adapting the rig to other characters, it may be possible, but because of the segmented clavicle and interdependent parts it would likely be easier to rebuild it. I suppose you could create pose-level controllers to reposition the main parts, but that would be quite difficult and make the rig more complex than need be… though 2.5 seems to be focusing on auto-rigging features so maybe this will be possible when development is done, dunno :slight_smile:

Attachments

mancandy_simplifiedShoulder.blend (416 KB)

1 Like

I think that it could be done in a script.

In Messiah, a guy created an “Auto Rigger”. Basically, you took a simple rig (Left side only) and positioned everything the way you wanted, then ran a script. The script would replace the simple rig with the “Final Autorig” version and mirror it to the other side.

Something similar COULD be done here. You start with a simple rig (similar to what you would get from the import of a BVH file). You place it in position, so the script knew what goes where… then the script replaces RigSimple with full Rig, including cool shoulder deformations.

The thing that makes me not want to do that – at all – is that it does appear 2.5 will have some version of this… so it makes sense to see what goodies Durian gives us.

Yea, actually that sounds a lot like the modular rigging script Ryan Cushman is doing http://blenderartists.org/forum/showthread.php?t=170962

Yeah… exactly like it, actually. I like where he is heading with it… I will have to download that and have a look at it. It will be cool if we can add modules to that. First, you place your markers, then you go to the library and choose: “OK, I’ll take the hand rig from ManCandy, FeelGoodComic’s shoulder rig, TOB’s foot rig… There… Now go build it for me, and parent my mesh to it!”

That would be way cool.

BTW, not that I am being pushy… but what do you think your timeline is for doing your video tutorial? The reason I ask is that I have a couple of things I want to play with over the next couple of days. If you are going to be a week on the vid Tut, then I will start with more shoulder rig take-apart… but if it is going to drop any day now, I’ll probably work on something else and wait for your video step-by-step…

Any idea?

Ryan’s script looks very promising. But I can’t get it to work… It throws an error when creating the rig. I dropped him a line in the thread… hopefully it is something simple.

My Python skills are rudimentary at best, but if things slow down at all at my Day job, I will dig into the script and see if I can figure out what is what… It will be faster, though if he comes back online and looks at it… It does appear that he has the source for his rigs embedded in the python code. That is a simpler approach, but it makes extending the library of available rigs harder.

If we came up with some sort of an extended rig file format (RML?) we could probably have a utility that simply took a blender rig, and saved it out in a library file that could be reused by Ryan’s script… That would be way cool.

Then… we could extend it to add BVH motion files! And we would ALMOST have Jimmy Rig – which is one of the slickest add-ons I have ever seen.

http://www.origamidigital.com/typolight/index.php/home.html
(Too bad it is LightWave only… Talk about taking the worlds greatest sound system, and putting it in a Yugo…)

Of course, it is also very possible that rigify could make all of that obsolete. In theory though, I like the way Ryan is approaching this… that seems to be to be a more realistic approach than having a program analyze a mesh and create a rig for it automatically…

EDIT: Ryan posted that he knows about the problem and is working to fix it… cool… apparently dev keeps changing the names of functions in the build…

Quick Update:

FeelGoodComic is doing a video tutorial showing his shoulder rig. I have played with it a bit, and moved it to my mesh with some success. It’s pretty nice.

The rig breaks a little when the arms are brought up and straight out (a little) but this is A) a weird pose and B) can be adjusted with shape keys or something.

Speaking of which… I was on CGTalk recently and discovered that HippyDrome, (who created the page listed in the opening post), is pretty active there. (Also discovered he is a TD at Pixar…hmmm… think he might know a thing or two about this stuff?)

Really cool stuff if you look at his whole website. It is like a master class on meshes and rigs.

Apparently, something I missed before, is his website proposes an ultra simple rig for the shoulder and arm. In fact, it is just 4 bones: Shoulder, Upper Arm, Lower Arm, Hand.

In his site, he shows how he weights these bones and then fixes the bad deformations by using blend shapes.

He says:

This can be done in any animation package that has a bone system and lets you attatch a morph target befor the bone rotates. But as they start to add up it helps to have code to help manage your targets.

They are just morph targets going on/off to show how much I am sculpting and how much is moving by the bone itself.

Of course, PIXAR has custom software to handle some of this. But one of the advantages of their software, is that it can apply the blendshapes anywhere in the stack. As HippyDrome puts it:

I am just using a rotation with a blend shape.

I use a lot of: “if a=90, b=90 fire in blend c”. This only works if you can sculpt the blend shape before the rotation. Which the software that i am using lets you do on the fly.

Now, if I understand things correctly, Blender can do this. Which means that this methodology should be reproducible in Blender.

I’m a babe in the woods here… but while FeelGoodComics is finishing up his video, I’m going to play with this some and see what I can figure out…

(Anyone else’s input is more than welcome…)

OK… more experimenting. This has been a real learning experience.

First, this is the simple bone setup I am using:

http://www.digitalartistguild.com/Tests/Blender/Hippy/ShoulderShapeKeysSkeleton.png

Four bones in shoulder and arm: CollarBone, Bicep, Forearm, Hand. That is it. Collar is constrained 30 degrees, everything else is basic setup.

I worked to get the weights right (as much as I could) and then I posed it in the extreme up position – which usually gives me the most problem. I used shapekeys to correct the distortion. I haven’t created a driver for it yet, I just keyed the shapekey to correct the shape with the animation.

Anyway, here is a shot of the up movement in three positions. The shapekey isn’t quite right, but I was still learning the basic workflow, so I didn’t want to spend a lot of time. The essence of it is very promising though:

http://www.digitalartistguild.com/Tests/Blender/Hippy/ShoulderShapeKeys.png

I can do a tutorial on this if anyone is interested. Not sure anyone is… The main problem is that right now my workflow is in flux due to vagaries in 2.5. It is supposed to have a “copy shapekey” option… but Alpha doesn’t have it. I got a newer version from Graphicall, and sometimes the button is there, and sometimes it isn’t.

There is a script which does it, but it only works in 2.49 due to python API changes. Frustrating.

So, I am sculpting the key in 2.5. Going into 2.49. Applying the shapkey to the original mesh. Going back into 2.5 and adding animation (because when you go from 2.5 to 2.49 you lose all animations!)

Not the cleanest workflow, to be sure. When I get a good build of 2.5 that has transform Shape Keys, it will sure be nice…

Anyway… That was my update so far…

Hello fellow problem joint riggers.

I have been hitting my head on my not well deforming mesh for the past month. I have been turning my wheels trying to teach myself character modeling and animation with very dismal accomplishments during the past 4 years. I guess I have learned a number of things to avoid by painting myself into corners by one mistake after another mistake. First of all, I must be one of the oldest folks around here who has the desire to learn animation. I don’t see it as a means of skill that could turn into a profession. I need it so I would have a means of communication, a means of telling stories, a means of getting my characters do martial arts that have been denied to me due to having turned differently-abled. well, I can’t practice Aikido anymore, but I have been practicing Yoga and Guang Ping Tai Chi Chuan. As matter of fact, I need my character to do all the Tai Chi poses so I can generate illustrations for my book as well as an animated sequence of the form with my character.

Doing those Tai Chi poses would involve a lot of shoulder, hip, knee, forearm extreme poses, deformations that I have not been able to generate. I searched the Blender archives and found some old discussions on those hard to deform joints. The recommendations there did not necessarily work. I guess old discussion threads were not being watched any longer I could not get any response to my calls for help. I kept searching for newer discussions. I am glad I discovered you. At least I have some things to try for one of the problem joints.

I like learning by doing. I hope in the sample .blend file there is enough info for me to do it myself?

Revolt_randy thanks for the links to that wealth of information. I am more overwhelmed than ever. There is so much to learn, so little time.

FeelGoodComics, thanks for your information and sample rig. I am truly hoping that the information you included with your blend file would allow me to add this rig to my existing CaptainBlender rig’s shoulders. Like you mentioned. Doing it is the best teacher. I wonder if w/o that Maya tutorial you referenced I will be able to build it myself? Could it be done in 249b?

Jay I could not get the link for shoulder fan bone working. I like to try it before trying the more complex solution. I had tried a fan bone concept with my shoulders. there was some improvements but the quality of deformation does not compare with what feelGoodcomics included.

Now that we have a sample rig to try on our character’s shoulders. would you please advice me what to do for Hip joints?

Fan bones improved knee joints, there was one example of stretch bones to improve knee deformations. I could not even get my knee fans behave well yet. Again I am using a MakeHuman generated 43.9 year old human mesh.

-------I am pretty new to character animation, here is a short synapses about me followed by questions. You could skip if you wish until the mathing ----- sign.

I have started my quest with Introduction to Character Animation tutorial http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation Great beginner’s tutorial it was. Stepping through the whole process of modeling, adding materials an textures, rigging, skinning, animating, creating a video sequence.

It gave enough background on mesh modeling to an ever enthusiastic beginner to attempt to model a character a bit better than tutorial’s ‘Gus The Gingerbread’ character. Months later I had something better, lots of hope. My visual perception problems could not resolve skinning problems I introduced. When I moved this joint a few vertices some other place in the body jumps up. yes, it must be they got accidentally assigned to one of the moving bones’ vertex groups. My visual acuity did not go along with logical deduction. I had to develop problem solving around my visual and auditory perception challenges.

Some hospital stay interferes, before I can move to the next step. I picked up and followed Tony Mullen’s book “Introducing Character Animation with Blender”. Tony’s superhero Captain Blender was a big improvement over Gus the GingerBread character. I learned all about IKs, constraints, Stretchy Spine set up was interesting. Upon learning Captain Blender was based on Ludwig rig. I downloaded it. Cute character, had better motion limits to stop animator from putting Ludwig into poses he was not designed to handle. Nonetheless, both character were cartoony, I have been wanting to learn to model and animate a more human looking character.

Given that, up that point I had not managed to model anything that I liked. I searched the net for free human models I could use, without knowing not all free model would have the correct topology. with one good looking model the topology was so bad that nothing was edgeLoop selectable. Being stubborn, I managed to associate Captain Blender rig with this unruly over muscled male character. I created fan shapes around knees and elbows at least. Despite those knee deformations did not turn acceptable. Hip, shoulder deformations were plain awful. I immediately assumed it must have been due to bad mesh topology.


How could one know if the deformations are bad due to bad mesh topology, due to inadequate rig, due to bad skinning (that is association of deforming bones with vertex groups). For elbows, knees, and fingers we at least have the fan shape guideline. when the middle edge loop in a fan is assigned to a separate bone, depending on the constraints used for that middle fan bone, the deformations sometimes get acceptable. What modeling guidelines if any exists for hip+groin areas and shoulder areas? I don’t use envelops, bone heats seldom generate results. I am very particular anyways, I like to pick and choose which vertices to assign to which bones myself. Therefore skinning, especially when there are a lot of mesh deforming bones is a very time consuming process.

Are you guys using mesh deform modifier?

Meanwhile my desire to have a human like character that I could animate to do martial arts became more urgent. I led me to the discovery of Make Human alpha 5 version 1. I imported MakeHuman male and female into Blender. Yup. their topology looked reasonable. At least they were edge loop selectable. I was hopeful. Once I rigged those characters with Captain Blender rig, including, elbow and knee fan bones, I made up shoulder and hip fan as well. They should be very pose-able, I hoped. Nope they were not.

After 2 weeks of playing with fan bone constraints and skinning, I can’t get knees, hips, and shoulders deform correctly.

Could anyone give me recommendations for next steps? Which tutorials, which samples I must study in what order? I never got to studying and learning ManCady rig for example. Would that rig provide me with any improvements over Captain Blender rig, in terms of pose-ability, and in terms of joint deformations?

I discovered and heard about BlenRig. It has hundreds of bones. I presume only a small subset of those would be used to deform the mesh itself and would need to be rigged. It is supposed to allow for the deformation of all joints. It is supposed to be easily adoptable to any character. The rigging might be challenging of such a complex system.

Hello fellow joint riggers.

I have been hitting my head on my not well deforming mesh for the past month. I have been turning my wheels trying to teach myself character modeling and animation with very dismal accomplishments during the past 4 years. I guess I have learned a number of things to avoid by painting myself into corners by one mistake after another.

First of all, I must be one of the oldest folks around here who has the desire to learn animation. I don’t see it as a means of skill that could turn into a profession. I need it so I would have a means of communication, a means of telling stories, a means of getting my characters do martial arts that have been denied to me due to having turned differently-abled. Well, I can’t practice Aikido anymore, but I have been practicing Yoga and Guang Ping Tai Chi Chuan. As matter of fact, I need my character to do all the Tai Chi poses so I can generate illustrations for my book as well as an animated sequence of the form with my character

Doing those Tai Chi poses would involve a lot of shoulder, hip, knee deformations, worse, forearm rotations that I have not been able to generate. I searched the Blender archives and found some old discussions on some of those hard to deform joints. The recommendations there did not necessarily work. I guess old discussion threads were not being watched any longer I could not get any response to my calls for help. I kept searching for newer discussions. I am glad I discovered you. At least I have some things to try for one of the problem joints. Thanks gentlemen.

I like learning by doing. I hope in the sample .blend file there is enough info for me to do it myself?

Revolt_randy thanks for the links to that wealth of information. I am more overwhelmed than ever. There is so much to learn, so little time.

FeelGoodComics, thanks for your information and sample rig. I am truly hoping that the information you included with your blend file would allow me to add this rig to my existing CaptainBlender rig’s shoulders. Like you mentioned. Doing it is the best teacher. I wonder if w/o that Maya tutorial you referenced I will be able to build it myself? Could it be done in 249b And I love the modular approach dream you outlined.

Jay I could not get the link for shoulder fan bone working. I like to try it before trying the more complex solution. I had tried a fan bone concept with my shoulders. there was some improvements but the quality of deformation does not compare with what feelGoodcomics included.

Now that we have a sample rig to try on our character’s shoulders. would you please advice me what to do for Hip joints?

Fan bones improved knee joints, there was one example of stretch bones to improve knee deformations. I could not even get my knee fans behave well yet. I am using a MakeHuman generated 43.9 year old human mesh.

-------I am pretty new to character animation, here is a short synapses about me followed by questions. You could skip if you wish until the mathing ----- sign

I have started my Char Animation quest with Introduction to Character Animation tutorial http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation
Great beginner’s tutorial it was. Stepping through the whole process of modeling, adding materials an textures, rigging, skinning, animating, creating a video sequence

It gave enough background on mesh modeling to an ever enthusiastic beginner to attempt to model a character a bit better than tutorial’s ‘Gus The Gingerbread’ character. Months later I had something better, lots of hope. My visual perception problems could not resolve skinning problems I introduced. When I moved this joint a few vertices some other place in the body jumps up. yes, it must be they got accidentally assigned to one of the moving bones’ vertex groups. My visual acuity did not go along with my logical deduction. I went around circles. I had to develop problem solving around my visual and auditory perception challenges.

Some hospital stay interferes, before I can move to the next step. I picked up and followed Tony Mullen’s book “Introducing Character Animation with Blender”. Tony’s superhero Captain Blender was a big improvement over Gus the GingerBread character. I learned all about IKs, constraints, Stretchy Spine set up was interesting. Upon learning Captain Blender was based on Ludwig rig. I downloaded it. Cute character, had better motion limits to stop animator from putting Ludwig into poses he was not designed to handle. Nonetheless, both character were cartoony, I have been wanting to learn to model and animate a more human looking character.

Given that, up that point I had not managed to model anything that I liked. I searched the net for free human models I could use, without knowing not all free models would have the correct topology. with one good looking model the topology was so bad that nothing was edgeLoop selectable. Being stubborn, I managed to associate Captain Blender rig with this unruly over muscled male character. I created fan shapes around knees and elbows at least. Despite those knee deformations did not turn acceptable. Hip, shoulder deformations were plain awful. I immediately assumed it must have been due to bad mesh topology

How could one know if the deformations are bad due to bad mesh topology, due to inadequate rig, due to bad skinning (that is association of deforming bones with vertex groups). For elbows, knees, and fingers we at least have the fan shape guideline. when the middle edge loop in a fan is assigned to a separate bone, depending on the constraints used for that middle fan bone, the deformations sometimes get acceptable. What modeling guidelines if any exists for hip+groin areas and shoulder areas? I don’t use envelops, bone heats seldom generated results for me. I am very particular anyways, I like to pick and choose which vertices to assign to which bones myself. Therefore skinning, especially when there are a lot of mesh deforming bones is a very time consuming process.

Speaking of skinning, skinning one side and using a script to associate the mirrored vertex groups with the other side’s bones would be a great time saver. There was an old posting that supposedly gave the code for this. I could not get it working. Does anyone know how to fix python scripts yet?

Are you guys using mesh deform modifier? Does it impove things? Is the control mesh that gets skinned as opposed to model’s mesh? Any insight would be greatly appreciated.

Meanwhile my desire to have a human like character that I could animate to do martial arts becomes more urgent. It leds me to the discovery of Make Human alpha 5 version 1. I imported a MakeHuman generated male model into Blender. Yup. his topology looked reasonable. At least he was edge loop selectable. I was hopeful. Once I rigged him to Captain Blender rig, adding, elbow and knee fan bones, making up shoulder and hip fan as well. He should have been very pose-able, I hoped. Nope he was not,
After 2 weeks of playing with fan bone constraints and skinning, I can’t get his hips, and shoulders deform correctly, even his knees.

Could anyone give me recommendations for next steps? Which tutorials, which samples I must study in what order? I never got to studying and learning ManCady rig for example. Would that rig provide me with any improvements over Captain Blender rig, in terms of pose-ability, and in terms of joint deformations.

I discovered and heard about BlenRig. It has hundreds of bones. I presume only a small subset of those would be used to deform the mesh itself and would need to be rigged. It is supposed to allow for the deformation of all joints. It is supposed to be easily adoptable to any character. The rigging might be challenging of such a complex system.

Also I learned in associating my existing Captain Blender rig with new characters, it is challenging to size and position an existing rig to work with a new character. All constraints must be reset. I manually go into all constrained bones and hit the reset button. However, I see that a script could automate that. One of these months I need to start learning Python, it appears.

Try out my ‘Nia’ rig, as this has a reasonably workable mesh and rig. It’s not perfect, but it does work. It could be a point to start from.

Can’t upload, as it’s too big, but go to :
www.openworldfilm.com, select FMS, and follow the links to character rigging. NiaV5_3.blend is the file you want

HTH

Matt

TravellingMatt, thanks for referring me to your Nia rig. I will download her .blend file, and see whether her shoulder rigging could give me new ideas to try.

FeelGoodComics, I have been studying your shoulder rig, and finally one rig that really works. Yuppie! Thank you very much for putting it into action. I wish the Maya document that drove its creation had still been available. Replicating a working rig, without understanding why we do what we do, does not quite help me learn.

Thanks for taking the time to describe it, especially for creating a display for showing how the rotation of one bone could be dampened for another bone via lpo. That is one area I got stuck at while I was trying to replicate the wonderful result you generated. I have encountered and learned how to define Action driver bones, and used action editor to define an animation action script to associate with the bone that will drive the action for another bone, however using lpo driver to dampen one bone’s rotation in certain directions is too new for me to be able to replicate. Could there be a tutorial you can refer me to that can step me thru the process? I can’t deal with Video tutorials by the way. Short step by step written instructions with screen snapshots are the best guides for me.

After I got stuck implementing your rig, I discovered this other line of discussion http://blenderartists.org/forum/showthread.php?t=178120
The video clip shown there gave me hope there could be even a simpler solution that did not require, shape keys, lpo drivers, and such. Nope after implementing the Nora rig given in that discussion, I had the worst Deltoit deformations ever. I should have tested the rig I downloaded first before jumping in and implementing it.

I finally got working hip joints. The trick was not in the rigging there, it was in the skinning.

I cruised around the website you referred me to travelling matt. I even chose to become a member in case it displays more content to its members. Nope I did not find any place where I could download NiaV5_3.blend file from. I saw a reference to Character. When I accessed to that area of the tree, the title banner displayed Nia character concept. She was impressive. Any way you can send me the html to download her file from.

Hi,

If you found the character concept section, then next to it or below it ( depending on your browser size,) you should have seen ‘rigging’, and then you can select the rigging by character. Only Nia is currently rigged, but there is a lot of stuff on the site, not only the rig, but also effects blends and AVIs, concept art, etc…

Anyway, the link should be:

http://www.openworldfilm.com/owffms/FMS/download.php?id=283

Matt

FeelGoodComics, I have been studying your shoulder rig for a whole week now. Man, that is one phenomenal rig. When I play with it I can see what it could do. Impressive. I noticed MarkJoel60 was talking about creating a video tutorial on the rig. I unfortunately can’t deal with video tutorials. I am hearing and memory challenged to follow them. I can only learn from written tutorial. Not the ones that talk about hows, but also talk about hows but also whys.

After investing some 60 hours on studying your rig , I still can’t seem to understand why it does what it does. The only thing I can think of is I have not seen and documented some constraints. What I discovered and documented so far does not help me understand why it works the way it does.

Here is your phenomenal rig…The bones uses the color coding in your explanation rig to keep things consistent, I additionally added a Shoulder group in orange. The whole bone hierarchy with overlaid constraints that drive it is summarized. Do you think I managed to capture it all. Ah to be able to add this shoulder rig to my character I created a copy of your rig and giving the bones my naming conventions, and I documented the rig so I would be able to learn it and do it. Even in preparation stage and playing with the rig you provided stage I had run into a lot of questions. Sorry, I tend to analyze everything to their tiny little components to understand them. So there will be lots of questions on this rig. See I am not wanting to replicate what some great mind designed. I hope to be able to design some rigs myself one day.

From studying the rig for some 60+ hour now and documenting them to a T. I hope here are some of my questions and observations

I noticed arm IK, FK driven set up only goes as far as triggering the Shoulder movements. BiceptFK_L bone has MchShoulderIKTarget_L as one of its children. MchShoulderIKTarget_L is the IK target for the Bshoulder bone. However, I haven’t seen how arm movements are related to Clavicle and Scapula. They seemed to be disconnected from that setup. The only relationship I see is how the ElbowIKPole_L (was named to ELBOW in your original model) is driven by the last segment of Clavicle.]However by moving arms I can’t get him raise his shoulders. How would the character rotate his shoulders?

The setup between Clavicle and Scapula is pretty elaborate. It felt like it was based on the assumption that the movement of the Scapula is driven and coordinated by Clavicle. Since I have been reading up some on Shoulder anatomy I was not sure if that assumption reflected reality of movement or it was simply designed to make shoulder rigging workable. Might you know?
After tracing the chain of constraints to identify those bones (=controls) that would be main drivers for the animator. I could only see the Neck. The rotation of the Neck, triggers the rotation of the Sternum, which is one driver for the IK target for the Scapula, since LocScapulaIKTarget bone copies its Location and Rotation from Sternum. Sternum being the unconnected parent of ClavicleConrol and all Scapula internal control bones (The bones who are light green whose names start with MchScapula prefix)
Well moving the Neck around makes Lyra do interesting things. I was nicely entertained. Nonetheless I failed to see what other controls I could use to take advantage of the shoulder rig.
Her spine pieces could make her do a belly dance. Okay, enough about martial arts animation that I could not accomplish.

Coming back on earth…One missing piece for me in getting this rig working is defining the IPO constraint for my implementation… I could see IPO curve editor displaying a constraint curve that for negative value cutting input to half, for positives keeping input the same as before in your rig. I see you named your Constrain IPO “Conditonal_Scapula”. Could someone refer me to a WRITTEN tutorial on how to define IPO constrained bones please? Lots of info on IPO curves, one object driving another object, haven’t found anything one bone in an armature driving another bone.

Even though mch_scap_ik cannot be an animator controllable bone since so much was resting on its rotation, I picked it, The lpo curve x axis displayed angles. My! When I use the slider Lyra is doing incredible moves. Well, it looks like you might have used mch_scap_ik bone to generate your video clip. I see the same moves. Including rotation of the shoulders. I see ELBOW pole targets moving, clavicles stretching, arm bending and extending, how could they? I keep going over the rig, it behaves in ways I can’t explain, I must have missed something. What is it that am I missing? How come her arm are moving with the movement of her mch_scap_ik bone?

FeelGoodComics, as you had mentioned, certain poses bring about not very good looking Deltoit deformations. I have been playing around with Shoulder rigs, skinning, and deformations for a month now. I tend to keep versions of all my failed attempts as I go around circles in another couple of months and might attempt the same things that have failed. Anyhow, among my attempt and trials, a shoulder fan set up with one particular skin finally generated Deltoit that looked good as I raised his arm up. Better than what Lyra is doing with this marvelous rig. Which makes me think after playing with skinning weights and assignments, Deltoit deformations would improve with this rig too.

Then I get discouraged with each new character is it going to take weeks to figure out how to skin 'da rig to the mesh. There got to be an easier way to accomplish this?

By the way other than skinning section, and the IPO driver section I had written how to create this rig, step by step with lots of reference images, since the placement of bones in relationship to the mesh we are rigging is of utmost importance. Since 2/3of it are images, it ended up being merely 28 pages. 28 pages to create some 52 bones with a couple of dozen or so constraints. 26 bones on one side times 2 plus whatever spine bones one might have to attach shoulders to. I would give it a whirl the second I get my hands on IPO driver creation information and add that in.

Attachments


1 Like

duplicate copy. Can’t I just delete one of my posts?

However by moving arms I can’t get him raise his shoulders. How would the character rotate his shoulders?
The shoulders are raised by rotating the clavicle control bone. I did not find a way to setup an auto-clavicle like the tutorial I was following, so I left it out.

The setup between Clavicle and Scapula is pretty elaborate.
It’s pretty simple when you understand the basics of what is happening. Did you take a look at the simplified version using mancandy up-thread? That may help clear up the clutter for you. The realistic attempt has many more bones in it which deal more with deformation. Plus my naming conventions are pretty bad here, so don’t rely on them too heavily.

The basic idea is this:

  • The clavicle is duplicated, and a copy rotation is applied to it so it copies the rotations of the clavicle.
  • 3 bones are created at the end of the new clavicle bone. Two of them are parented to the first one, and the first one is parented to the duplicate clavicle.
  • One of the two bones will aim at a target bone in the center of the chest via an IK constraint, and the other will be moved upwards and serve as the pole target for the IK constraint on the other.
  • The scapula is then parented to the aiming bone, the one with the IK constraint on it. This dampens the rotation of the scapula, so it doesn’t swing out wide like it would in a direct parent relationship.
  • An additional detail that is optional is to drive the influence of the copy rotation constraint applied on the duplicate clavicle bone with the original clavicle bone. So that when the clavicle is rotated forward, the influence can be turned down, but when it is rotated backward the influence stays at 1.

The setup is not perfectly realistic, and is more intended for cartoon characters. It is meant to easily create the impression of proper movement.

I could see IPO curve editor displaying a constraint curve that for negative value cutting input to half, for positives keeping input the same as before in your rig. I see you named your Constrain IPO “Conditonal_Scapula”. Could someone refer me to a WRITTEN tutorial on how to define IPO constrained bones please? Lots of info on IPO curves, one object driving another object, haven’t found anything one bone in an armature driving another bone.
That is the constraint driver you found :slight_smile: The driver I mentioned above, which turns down the influence of the copy rotation constraint as the arm is rotated forward. Go to layer 5 in the shoulder explain file and you will find a 2 bone demonstration of what that driver does - just rotate the ‘host’ in Z. It is important to understand that this is not a bone driver, it is a constraint driver. You will not find a tutorial on Bone to bone drivers because they are not possible within the same armature in 2.49 (and though it technically is possible in 2.5, it is still a dependency cycle and should not be used).

Even though mch_scap_ik cannot be an animator controllable bone since so much was resting on its rotation, I picked it, The lpo curve x axis displayed angles. My! When I use the slider Lyra is doing incredible moves. Well, it looks like you might have used mch_scap_ik bone to generate your video clip.
No, the animation is on the control object which is the small red bone ‘Clav_L’ at the base of the clavicle.

This part is a little trickier to explain, and is likely why you are so confused :slight_smile: Again, check out the simplified mancandy version and make sure you understand that first. Then this section will be much easier to grasp.

There are 4 clavicle bones, plus an additional row of 5 :slight_smile: The first of the 5 bones is parented to the ‘Clav_L’ bone, and the rest are copying it’s rotation in local space using the copy rotation constraint. This is to simulate the curvature of the chest that appears to happen when the shoulders are rotated fully forward (it’s a cheat). The IK target is parented to the last of the 5 bones, making the ‘mch_scap_ik’ bone always point to the end of that chain. The ‘mch_scapfollowFK_L’ is copying the rotation of the IK bone (in the way I mentioned above). It is also copying the scale in Y from the skinny little bone called ‘mch_scapLength_L’. That skinny bone simply stretches to the end of the 5 bone chain, and shrinks when the chain bends. As it shrinks it scales ‘mch_scapfollowFK_L’ so it fits horizontally. This is a detail. This is all done to keep the scapula lagging behind the movements of the clavicle. The rest of the setup is as I explained above, just think of ‘mch_scapfollowFK_L’ as the duplicate clavicle bone, with the copy rotation applied to it.

There is also plenty of room for improvement on the deformations. I didn’t take this setup nearly as far as it can go :slight_smile:

I hope this explanation helps clear things up for you!

Thanks FeelGoodComics,

I tend to try most people’s patience with my orientation to detail and desire to understand why the things work the way they do.

Ah, yes thanks for setting host+local bone pair up. Your explanations in the .blend file have already referred to it. I have been playing with it. When I see one already set up in isolation it was one thing. I was trying to find it in the armature that was attached to the mesh, so I can try to figure out how it works within that setting and how to replicate it for my character and his rig.

Looks like I did not distinguish between bone driver vs constraint driver. Since in case of your host+local bones example. Moving host will move local. To me that implies one drives the other is driven. Parent->child relationhips would be one example. Parent bone is the driver for the child bone. When a constraint is specified, I think of the target bone as the driver done since, the movemement of target cause something to happen in the “driven bone” that tries to match its location, orientaion, scale, what not to the moving bone. (This is clearerest to see in IK constraints, all Copy constraints also do this) When we specify an IPO constrain we are changing the rules of the game. Not which bone drives which bone. just how the input (=driver bone’s one IPO/motion element) is changed to produce the desired output (=driven bone’s corresponding IPO/motion element).

On a side note, getting the movement of one bone, some other bone do something else in response have been possible since. v2.42a. Thanks the Tony Mullen’s excellent book I have learned about Action drivers. You can define a script in Action Editor for some driver bone(s) -one or more- an associate that script with the constraint of another driven bone. I have discovered Blender and started teaching myself 3d char modeling, rigging and animation, after dancing wih PovRay for a year. I have not had exposure to other tools and official usage of the terminology. My understanding is potentially colored with my bg, and probably is not correct.

All the explanations you had included were shown in the bone hierarchy and constraint diagram with bones using my names as opposed to yours. Did that diagram make sense to you at all? If someone gave you a bone hierarchy diagram with overlaid constraints and a picture of where bones are supposed to be within the mesh, could you build a rig? I was hoping that by showing you how much of the rig, I was able to understand, you could pinpoint what it is that I am missing!

About Clev_L. I renamed that to ClevicleControl_L. To understand and replicate the rig, I had to switch to Stick bone view so, I can precisely see where the bones started and ended, In pose view they will adopt the display handle the designer had chosen to give them. Good for animating, not good for understanding how to build it and how and why it works.

So, I studied your real rig not even the explanation rig, I needed to see where you placed all those bones, especially their end points, falcrum points on a mesh character. There were 4 bones overlapping:
ClavicleControl_L (=Clav_L)
MchScapulaIK_L (=mch_clav_ik_l)
MchScapulaLength_L(=mch_scal_len_l) , and
MchScapulaFollow_L(=mch_scal_follow_l) .
My diagram attempts to show how ClavicleControl parents 1st segment ClavicleA, which parents 2nd segment Clavicle B, and so on,the chain goes to ClavicleD. My diagram did show last three segments receiving
Copy Rotation(=Cp Rot) contraints from ClavicleControl, not the 1t segment. 1st segment was not a connected child of ClavicleControl.
I hoped even with my changed names of the bones, my diagram would show you how much of the rig I was able to understand and what it is that I am missing. Again what you described in your notes were
captured in the diagram. Despite that I still can’t see how moving ClavicleControl (=clav_L) could generate the movements we see. There is a disconnect between clavicle+scapula controls and arm+shoulder controls. I must not be seeing something… What, what, what? Except Clavile segment controling ELBOW IK pole target to drive Forearm_L IK constaint. Moving IK pole targets will not cause arms to move, unlike moving IK targets would they?
—>
I went back and played with ClavicleControl. Yes, she raised her whole shoulder and her arm. Then the missing link my brain was refusing to grasp fall into place. Duh! Of course
Since the last Clavicle segment owns ShoulderLoc_L bone from which hangs the arm bone hierarchy. Duh. That was the link I failed to see. Move is cartoony. I guess I could turn on Hinge option for ShoulderLoc_* bones and see I like the move?.

Okay, going back to all the trace of parent-child driven way of communicating control information through the rig and constraint driven way. Since I thought I had managed to show all that in the diagram I enclosed, I can trace it to see what bones are liable to move when we move MchScapleIK_L(=mch scap IK_L) bone. I still can’t see how moving mch_scap IK_L would generate all the moves I saw. That is troublesome. She moved her elbow back and trusted her palms forward. She looked good doing all that.
On a less troubling note, it does not feel intuitive that a character could be driven by a bone sitting on her clavicle? That is not a biggy. Since that bone can be parented to something that feels more intuitive. Anyway you already mentioned that one being part of the original tutorial.

Did the original tutorial explain the rational behind why the rig is designed the way it has. I tried to find a backcopy of it, I could not.
Would detailed step-by-step instructions on how to build this rig help anybody else besides myself. Anyhow I have it done, except IPO and skinning sections. I am trying to decide to go for it or not? I might just try playing with b-bone shoulder thingie first. Hope that with appropriate rigging, placement of shoulder joint, skinning, I will keep my good Deltoit deformations, while improving his bad armpits not compressing and stretching out nicely.

Ah on a side note. Has anyone tried using say a 4 segment b-bone for forearm to see whether it can help with forearm rotations without making it bendy flexible?

I did take a look at your diagram, but I’m afraid I’m not able to understand anything from it. I just don’t think that way. I know some people can read those diagrams and understand them, but I’m afraid I am not one of those people :slight_smile:

Looks like I did not distinguish between bone driver vs constraint driver. Since in case of your host+local bones example. Moving host will move local.

Yes, moving the host causes the local to move because of the copy rotation constraint. The driver simply turns the constraint on and off. So when the bone is rotated forward, the duplicate lags behind, and doesn’t copy the rotation fully.

To me that implies one drives the other is driven. Parent->child relationhips would be one example. Parent bone is the driver for the child bone.

Well the word ‘driver’ is often used loosely to describe any behaviour correlation between bones or objects. But I think a more strict definition, as I was intending, is to connect a transform/attribute of one bone directly into another. They then become linked in a 1:1 relationship. Constraints offer the ability to get many driven-like behaviours (and more) in alternate ways, by creating correlations between the transform channels without needing to connect them directly into eachother. Like a middle-man :slight_smile:

My understanding is potentially colored with my bg, and probably is not correct.

Well everyone’s understanding is colored by their background :slight_smile: Don’t buy into the idea that you need any special training to do this stuff. You just have to enjoy it, and want to figure it out (which you obviously do).

Ah on a side note. Has anyone tried using say a 4 segment b-bone for forearm to see whether it can help with forearm rotations without making it bendy flexible?

Yep. My current preferred method is to use a segmented B-Bone and another dummy bone to dampen the effect, and just balance the weights between the two until it looks good. It is the technique I used on this little guy. I don’t know how well it would work on a realistic rig, but as always, trial and error is the best way to find out :slight_smile:

Fair enough! If we had the same graphical expression lingo, then I would have hoped to rely on your expertise to make sure my understanding of the rig was correct before delving into it, and driving myself crazy chasing some more wild goose if I misinterpreted things.

Yes, same way we seem to use the Influence factor to dampen the effect of the “target =driver” whatnot, we seem to be using more fancy IPO relationships to define how we want that effect to be dampened. Not that I understood the reason why the rig designer chose to cut negative Z rotations in half.

Hey. Now, I like this term “Middle-man”. Hmmm. I might be creating a special bone layer for those. The way my mind works I see all bones that had mch_ prefix as middle-man. Their role is to offer internal control points for other mesh deforming and/or animator manipulatible bones.

Connecting transform/attribute of one bone directly to another 1:1? Say we connect bone X to bone Y this way you described. Do you mean, whatever transformations I apply bone X will be directly copied to bone Y. Like applying all three copy constraints in one step? Thinking too Blenderish? When you throw in attributes as well, it gets juicier. Make bone X sparkly blue, so will become bone Y. Now I see how life will become easier. Get teacher character say something, turn all student characters’ faces red. (Sorry at the expense of driving you crazy in this last example I assumed connecting transform/attribute of one bone to many bones. One student class bone to many student instance bones.)

I feel challenged by this stuff. I want to figure it out. I won’t let it defeat me I keep telling myself. But then I keep going around circles. It has been a long time since I started teaching myself 3d modeling and rigging, I still did not manage to create one finished story from end to end. I have poked around the things you had created by the way. I am impressed. What did it take you to get that good?

I wish I knew how to get unstuck. :wink:

I picture this fight between my realistic looking character and a more cartoony cutish one, they keep saying they want to be the Tai Chi masters and instructors’s helper for my Tai Chi series. In turns into a comic strip in my mind, entertaining me; as the banter between the two becomes the analogy of the internal dialog one goes thru during training.

I get entertained and tortured by all these ideas since I cannot bring them to life. When I see people like you who actually create things. I love to know what it is that had given you enough foundation upon which you can build stories, nuiances, body and facial expressions. The list goes on…

Hmm. One more thing to play with. :). I wonder if I should use dummy bones at both ends? One end for dampening the effects not to disturb the deformation of the elbows, the Other end for dampening the effects at the wrists?

1 Like

Now that I am halfway into adding the shoulder rig to my once simple rig, I am faced with skinning all the deforming bones in that rig. I wish I could skin half, adjust weights, vertex group boundaries until I am satisfied, and then mirror the vertex group to bone assignments for the other side. Yes I discovered a script that was supposed to do this, I could never get it working. Well I tried it under 2.46. More on that later…

This particular post is to report all skinning problems/challenges I had run into, in hopes they can be solved.

I like to start with default Bone heat weighted solution Blender would come up with. Turned out there was a way to get newly added 26 new bones on one side heat weighted. (Only mesh deforming ones) Here is one recommendation I discovered:

To weight new bones, select the bones you want in pose mode. Shift-RMB select the mesh. Hit Ctrl-TAB to go into weight paint mode. Do a W-key “Apply Bone Heat” command. This should work with only the selected bones.
To this date I have not been able to get Bone Heat Weighting find solutions for me. :frowning: It has kept complaining about failing to find solutions for one or more bones. It would not even offer me the solutions it found for whichever bones got lucky. SO I had to skin by selecting vertices of interest for each bone, using multitute of selection techniques available in the Mesh Edit mode, and assiging specific weights, paying attention to weight normalization.

Searching Blender archieves I discovered this discusion. Again none of
the recommendations there had worked for me this far. :frowning:
http://blenderartists.org/forum/showthread.php?t=130935

As for Mirror Vertex Group Script.
Since skinning proved to be such a long process for a humanoid character…
after working on one side, which required a lot of fine tuning of weights and vertices that ended up in each group for each bone until I got the deformations I was sort of content with.
I hoped I could use just one script to replicate my vertex group definitions (selection and weight wise) on the other side.

I tried to use the script contributed by ave at
http://blenderartists.org/forum/showthread.php?t=158273

I could not get it working. :frowning: I tired it under V2.46. Hasn’t attempted it yet under 2.49b. Within Blender installation, in its Scripts directory, there was a script called “Mirror Vertex Locations and Weight”, I thought may be it was Ave’s script packaged into the Blender image. Nope it did not mirror skinning of the selected bones of one side to the other side.

Could you offer recommendations, please?