Arm bending the wrong direction in pose mode

Welcome,

I’m quite new to rigging in blender so plz note that thanks.
So I have found some other posts including similiar problems but they never explained how does the process work. I have a problem with a character model with armature and IK bones. The legs work fine, knees bend the right way. However whenever I want to move my arm chain using the arm IK bone They bend under an angle. I found out that doing some adjustments (like changing bone roll of some arm bones in edit mode or playing with the pole angle) fixes this problem but the effects are not “clean”, not perfect. (For instance, the arm is all twisted and back is a bit deflated)

I also tried moving the “Knee” bone and “elbow” bone to change the potential extent to which the arms bend. Is the position of these bones important? Can I place them anywhere on the X axis (maintaining the Y and Z coordinates to keep the extent)?

On the pictures I hid leg bones to make them seem more clear.

First image shows my settings for the Constraint
Second image shows the arm lifted only on the Z axis (vertically) using the IK arm bone
Third image shows the arm lifted even more (over the IK target which is called “elbow”)

Just to be clear: my problem is with the arm bending under a weird angle. I would want it to bend in line of the (vertical) Z axis.

I would like to attach a blender file but apparantely its impossible for “new users”

I would really appreciate some help with this as fine tuning the bones manually takes some time and doesnt even guarantee perfect results.

Thanks (in advance) for any support.

Just some observations from what I can see, First off I know you are new but do a bit of research and get the Naming conventions down…it will save you a lot of grief in the long run! For instance, stomach is not a bone name, If you ever try to import a BVH animation you will be pulling your hair out as to why it doesn’t work. Basic rigging tutorial I found that helped a lot is HERE and it includes a full armature with bonus features…all free.
I was going to say check rotations, but you did that…I do see that like the shoulder is too far in, needs to be right out near the edge of the mesh, and the elbow is a bit far down into the forearm.
? Did you weight paint your mesh ?
You can always send the blend to Google Drive ie: a cloud storage and provide the link!

For “perfect” pole targets, make them from a copy of the thigh/upper arm bones, moved in “normal” (local bone space) orientation in X or Z, then your pole angle will be an even multiple of 90 degrees (depending on roll.)

Or, you can edit the roll after the fact. For a pole angle of 90, select your pole target, snap cursor to selected. Select your thigh/upper arm in edit mode, hit ctrl-n, choose cursor.

For the rest of your problems, what you want to check out are IK angle limits. Select a bone and look (in 2.79) at properties/bone/Inverse Kinematics. This has options for limiting angles or straight up locking rotation in any particular (local) axis. If you want these to be in global axes, then orient your bone in the global axes so that your local axes are the same as the global axes. Your bones’ local orientations don’t matter for deformation, and they don’t need to be connected to use IK. They can point anywhere you want.

Note that if you make crazy long IK chains or use crazy angles, the use of IK angle limits can lead to snapping when interpolating between positions. The best way to use Blender IK is a two bone chain, the parent X or Z locked, the child limited to 0-180 (or minus 180-0) in X or Z. This gives you a single solution for every position of the IK chain, meaning no interpolation problems. (But if you want to leave the parent X and Z unlocked, that’s basically fine.)

Note that arm and legs are often used with twist bones. I don’t personally include the twist bones in the chain. Instead, I create a non-deforming IK chain, then let my deform bones damped track/locked track various markers. But maybe non-deforming IK chains are sort of advanced, I dunno.

The (signed) axis of the angle between bones in an IK chain is important. A chicken leg will behave differently under IK than a human leg. The precise angle between them is not important. At least, for the ideal two-bone chain. For longer chains, I think it might use the relative angles to determine how to weight solutions.

Thanks for the answer!

I will definitely check out this tutorial. [edit: You sure its totally free? Allegedly I need a subscription]
I didn’t do weight painting yet (at least not manually). I chose the automatic option for weight paint.
So for now I do not care about the shoulder being too far in thats okay for me :))

Just a quick question by the way: Can I weight paint both sides of mesh at the same time? I know I can do that using a simple mirror modifier but then it also affects my mesh. Is it possible for the modifier to affect only the vertex groups (I mean the weight put on the mesh)?

I will provide a link to the .blend file here:

Also very much thanks for the answer!

So I tried what you said:

And This seems to work - My pole angle is now set to 90 degrees and its not twisted. Very nice

I knew about the limits before, was even gonna add them but I thought the limitations didnt interfere with my problem with wrong bending (I still think they dont) so I wanted to sort out the elbow case first.

I will try them out though as previously I used the constraint option for limiting angles. Thanks.

Tried setting the parent (upper arm) to limit at X axis and child (forearm) to limit at Z (0 - 180) All of that is performed on the bones local axes. It seems that the limitations change the way the chain behaves although the elbow still bends to the side.

I am quite confused about this part, not sure if I understand it correctly:

I dont think I used twist bones for arms.

For the last part, do you mean this angle?

Anyway thanks again for the quick response.

I just mean, if you’re dead set on using global axes for angle limits and maintaing different local axes, it doesn’t really matter where your IK bones’ tails are-- it will invisibly calculate the IK as if each bone’s tail was at the location of its child’s head:

No matter what you do, the arm is going to bend in the axis you built into the bones. The angle you modelled. It bends predominantly in the global Y axis, because you modelled it with a bend predominantly in the global Y axis. If you don’t like that angle, change the model so you can change the bones.

Yup.

1 Like

Sorry I have a subscription for so long I forgot! You can still get the rig and also slow down the speed of the time lapse to see what they do, as well as get the PDF guide and Armature.
No you need to rotate and paint Mirror modifier won’t work for weight painting ( I don’t think, as I have never used it so I might be wrong there) I mostly use the faces and x-ray to get things even and it goes really fast and not a problem on such a low poly model like yours.
Here you can use this U-TUBE
or this one HERE

Ok just looked at your blend file… sometimes it is better to go ahead and apply your modifiers. I could not see why pulling the elbow causes it to rotate as it moves… after getting rid of most you modifiers/ applying it still does it, it is better if the 1k is rotated to the front but that should not have anything to do with it. So I just made a new armature so you can physically see how it was placed and positioned… and use as much as you want… No Fingers and there aren’t any…Re-Built.blend (885.0 KB) Make sure to de-select load UI as I have a VERY modified set-up when you load the blend.

1 Like

Real thanks guys.

So the problems seems to be in the mesh itself not the bones/armature settings. I think that’s all. If anyone from blender community has the same problem I recommend to compare the two models posted here to see the difference for themselves.

*sorry for late response, took a day to train some parkour :stuck_out_tongue: