Elbow is squeezed.

Hello, I am having a problem rigging my character’s elbow.
When I bend the elbow it ends up looking like this:

but the result I want is this:



I check the Preserve Volume in the Armature modifier and it got better, but it is still not perfect.


I tried making a shape key for this and it worked… sort of. This is what it looks like with the shape key at 100%:

but the problem is when it is only 50% applied. I expected it to be like a normal 45 degree bend, but it looks deformed:

Plus, I would prefer it to be in the rig and not as a shape key.


Forget the Shape key thing. I need to be able do this to the legs too and using shape key would make animating a pain.


Anyway, you want your forearm bone to have 100% control over the forearm mesh, and you want the upper arm bone to have 0% control over the forearm mesh. Blender is designed to blend those influences for more realistic deformations. Get it? Blender? So of course Blender’s tools aren’t really working for you.

Select the upper arm bone and remove all weight from the forearm mesh, and you should get the results you are looking for.


I figured Minecraft would be an easy way to start.

This is the result:

The problem is this:
The vertices in the middle of the arm need to rotate 45 degrees and the verts at the end of the arm need to rotate 90 degrees, but they both rotate 90.


Wait, I just realized that for the verts in the middle of the arm, they don’t need to rotate, but the front verts need to move up and the back verts need to move down. With my original setup they were ROTATING 45 degrees, but I need one side to move up and the other to move down, not rotating. I don’t know how to do this except through shape keys. Is there any way to link a shape key to a bone or any other way to do this in blender?


I found a system that works flawlessly, but it is a pain to do.
I made a shape key that by itself does not appear to do anything, but what it does is move the front verts up and the back verts down.
The forearm bone has 100% control over the bottom verts and the upper arm bone has control over the top and middle verts.
So if I want to rotate the arm 45 degrees I first rotate the forearm bone 45 degrees, then I apply the shape key by 50%.
For 90 I rotate the forearm bone 90 degrees the apply the shape key 100%.
However, this isn’t good because it is a long process just to rotate the arm.
Is there any way that I can link the forearm’s x rotation with the shape key, such as:
shape key = forearmXRotation/90?

Here’s what you can try: set up a two bone armature, with a two block mesh. Basically just a joint in an arm or a leg. Then use vertex groups rather than automatic weights to get the bones to move the mesh. Experiment with the two bones to see what effect the various weighting schemes have on the mesh deformations.

You can write scripts to connect bone rotations to shape keys, but that gets to be a real pain as well, and another source of errors and buggy rigging.

If you aren’t wedded to Minecraft, which, as you can see, doesn’t have a style that plays nicely with Blender, why not head over to BlendSwap and download a rigged character and start animating with that? Or do a search for Blender Rigged Characters, and choose from one of the many available for download. Or check out Blender Cookies tutorials on animation or character modeling.

Minecraft’s style is not a particularly easy one to emulate in Blender.

BTW, it looks like the forearm is working just the way you want it to. But the upper arm is not. So you have to ‘fix’ the upper arm the same way you fixed the forearm: remove the influence of the other bone from its mesh.

Thanks, but I found a simpler solution. I made a shape key the moves the front middle verts up and the back middle verts down so that thy make a 45 degrees slant. Then I used the forearm’s x rotation as a driver for the shape key. This achieves the effect perfectly at all angles plus all I have to do is move the bone. I would have posted this sooner, but I didn’t get a chance.

Cool. Keep an eye out in the forum for other Minecrafters, they have had and will have similar problems. Pass along what you learned to them :smiley: