Hi, I was trying to rig a very buff character and i’ve been having trouble with the shoulders. Is there a special way to rig a character with very thick arms. No matter how hard I try, I can’t seem to get complete mobility with his arms without some kind of irregularity in the mesh. I’ve tried weight painting and didn’t really have any luck with that either. Should I add extra bones? Please help, as this character is nearly perfect except when he raises his arms over his head.
Shoulders are a common problem area because of the range of movement. Actually, a real human can only lift their upper arm only so high, like to a t-pose, from there on out, the scapula moves to raise your arm any higher than that.
Basics first, you need to have good mesh topology and careful weight painting, that should get you to about 90% of what you want. Once you have that, but it’s not quite perfect, then you need to look for other solutions to help out. As to what solution you should use would depend upon the model and what problems you are having.
To decide how to fix the problem, really look at what is happening. If you pose the character with its arms at its side, then you want pose the character with its arms raised above its head, then take a look at how you do that yourself. Watch yourself in a mirror, as you raise your arms, it’s all upper arm movement until your arms are in a t-pose. From a t-pose to arms above the head, it’s your scapula that moves.
Generally, people rig spine bones, from one of the spine bone, you have a shoulder bone that extends from a spine bone out to the upper arm bone. So as you rotate the upper arm bone from a t-pose to it’s arms above it’s head, are you also rotating the shoulder bone upwards as well? Note that when you look at yourself in a mirror, as you rotate your arms upward, the point where your character’s upper arm bone connects to the shoulder bone should be rotated as well. Are you posing the shoulder bone as well? I used to think that I should be able to rotate the upper arm bone only and raise the characters arms above the head with no problem. But in real life, that’s not how the human body works.
So, if you are posing the character realistically and still have problems, you could look to several methods to fix it. Corrective shape keys is one way. Pose the model, create a shape key, edit the mesh to correct problems, add a driver to the shape key triggered by a bone’s rotation. That’s a bit of work. Another way is to use the mesh deform modifier. It’s great for fat characters, and I would think a ‘very buff character’ would would be the same. The mesh deform modifier requires you to create a 2nd low poly mesh around the outside of the character mesh. The low poly mesh needs to be controlled by the armature, and once it’s bound to the character mesh it will deform the mesh. How the mesh is deformed depends upon how close the low poly mesh cage is to the real mesh. You can set this up on just part of a character, via vertex groups. Yea, more work than shape keys…
Yea, maybe extra bones would help. ‘Fan bones’ as they are commonly called, move and rotate as needed when main control bones are moved, can fix problems as well. Action and Transformation constraints can be used to control these fan bones, as well as drivers. And yes, that’s a bit of work…
just my thoughts,
Rigging shoulders becomes infinitely easier when you have the correct topology for the muscles. Most people without a good deal of topology training model arms extruded straight out of the torso, so the face loops across the chest and back follow straight down the length of the arm instead of wrapping around the upper arm in the triceps area. Fox-Handler, would you care to show a shot of your mesh? That would make it easier to advise you on either where to place helper bones or how to fix the mesh, as appropriate.
I wasn’t aware it was that complicated. Here is the blend file itself so you can take a better look at it.
@revolt randy I’ll take the time to look over what you said as well to better assess the problem
It’s not necessarily complicated. The shoulder rig needn’t be terribly complicated if the topology is good, unless you want more subtle muscle effects. The complexity of the solution depends on the exact situation.
So, to your specific situation: there are a few issues with the rig that are easy to fix, and the topology does have the shoulder flow error I outlined above. But none of these problems are bad enough to make the solutions too difficult.
First, you have two armature modifiers. I suspect you have attempted to rig this more than once. Go to the modifier panel and just get rid of the first one, the one with nothing assigned in the Object field.
Now, you’re actually using the Rigify addon incorrectly. The metarig object is intended to be a template for the program scripts to create a more complex and capable armature with animator-friendly features like Inverse Kinematics and such. The Rigify addon provides you with a Generate button in the rigify section of your armature data buttons. If you put the armature in Object mode and push this button, it will create the rigify armature for you. This is the one you are meant to parent your mesh to and generate weights from, not the Metarig. So in order to do this correctly you’ll want to delete that second armature modifier, un-parent the mesh from the metarig, and delete all of its vertex groups.
With all that out of the way, I think you can get good deformation without any helper bones. The topology here is technically incorrect, but it’s good enough in general, and there are enough faces to play with that I think you can get good deformation simply by doing a bit of manual weight painting. Your mesh is already triangulated, and appears to have been imported from a .obj. I’m guessing it’s a model imported from some game or something?
Anyway I converted tris to quads to get a clearer look at the quad topology and it does have face loops traveling down the arm from the chest instead of around the upper arm, but there’s enough geometry following the major muscle shapes that this isn’t as much of a big deal as it can be in some models. I don’t think you necessarily need to do any retopology unless you just want the practice. Correcting the automatic weight painting should be a sufficient solution. When you parent with automatic weights you rarely get a good enough weighting solve to use unaltered. Some manual correction is pretty much always necessary, in your case perhaps a little more than usual.
If you drop the upper arm, you’ll see that the shoulder pretty much maintains its volume. The ugly deformation is just from the upper arm having influence too far back along the shoulder. If you do some weight paint correction by hand you’ll be able to minimize that influence. There is also some ugly deformation happening on the torso, again because the upper arm bone has influence where it should not. You’ll want to just remove that entirely.
By the way, when you generate the proper armature, Rigify hides its deformation bones on a hidden layer. Either find them, or just use the vertex group menu. When you’re in Weight Paint mode you can select either a deform bone or its corresponding vertex group in order to paint that group’s influence. I’d just go to the menu personally, but if you want to track down the deform bones it’s not too difficult and will teach you a bit more about how the rigify armature works.
I’m far from an expert on rigging, but it looks like two main issues to me. The weight painting of the upper arm bone extends too far into the torso. Also, it looks like your shoulder joints are a bit wider than they should be, causing things to get stretched. Try moving them closer to the centerline.
I like cheating. Making corrective shapes and automating them is a great way to do that. But it’s also a good idea to get the most by making sure your topology is set up right, as much as possible for your character.
Corrective shape keys are certainly an option, but in this case they would be more useful for defining some of the details of muscle movement than for fixing this problem. This problem can be fixed entirely by proper use of Rigify and better weight painting.