Why does this pole target setup work?

Warning: I did only very sparse research prior to this post, so consider me to be a complete noob when it comes to pole targets and/or complex IK chains in Blender.

I could never get a simple pole target setup [1] (2 arm bones + 1 IK target + 1 pole target) to work.
Every time I try to set up something like that either

  1. the elbow is moving 90° perpendicular to the pole target or
  2. if I fix the 90° in some way (e.g. manually fixing the bone roll) it deforms the mesh in the rest position by 90° (the pole target forces the arm to rotate 90° in rest position). Changing the “pole Offset” does the same thing.

This is how I actually created the rig
http://www.pasteall.org/blend/700
http://imagebin.org/64659

The attached rig actually behaves like I want it to:
If I move the elbow IK bone (ArmElbowIK.L) the elbow/upper arm/lower arm bends toward it and the upper arm rotates to match this.´
The main difference to a “normal” pole target setup seems to be that I have a second IK target for the upper arm and the Pole target is actually integrated into the arm.

But I’m a little confused as to why it actually works - this “working” rig is just the result of some try&error with the pole target setup.
Also: How would one set up the same rig without the IK target for the upper arm?
Can anyone enlighten me here?

Thanks & best regards,
Martin

[1] http://www.blender.org/development/release-logs/blender-246/inverse-kinematics/

I actually did a new test with the pole target setup and managed to get it to work.
http://www.pasteall.org/blend/701

Altough I had to modify the rest position of the bones for the whole arm in order to get it to work - I’m not sure how easy this will be to do with a fully modelled character :-/
I still need to test the rig with something more realistic.

Martin

Hi pontiac,

It took me a minute to unravel the confusion about the file. I’ve boiled it down to 2 things.

First, it’s important to know which way the elbow bends. And I don’t mean that in a condescending way either, with anything in rigging it is important to refer to an anatomical reference of one kind or another. For humans you can usually use yourself and a mirror… which way does your elbow bend? Towards your pinky if you’re built like me :slight_smile: since your palm is facing forward that would place the elbow target below the arm not behind it… but this is exactly why rigs are always made with the palm facing downwards because that is the natural resting position of the hand, and because the elbow then bends backwards.

So it is a good idea to rotate the hand bones in edit mode so the palm faces down. You can do that easily by snapping the cursor to the wrist joint, then setting the manipulator to ‘cursor’ by pressing period and rotating along the x-axis 90 degrees. Comma will set the manipulator back.

Second, the arm doesn’t know which way to bend because the joint chain is perfectly straight. So it is picking a direction, and that direction isn’t working very well overall. In edit mode move the elbow joint backward just slightly to set the preferred angle towards the back. Once the pole target is added the offset value needed to be 180 for this scenario, and it should work fine :slight_smile:

I’ve attached the result.

Attachments

biped_rig_05_poleFix.blend (185 KB)

That actually depends how your lower arm is rotated in relation to the upper arm (I guess ulna and radius simulation is a pain to animate anyway;-)), but in case of rigging a “relaxed” pose you are right of course :smiley:

Ohhhhhh. So there basically needs to be a pre-defined bend of the IK chain in order for pole-targets to work correctly? That is very good to know.

I just reproduced your changes in the most recent rig and it works flawlessly now :smiley:

Many thanks,
Martin