IK with pole vector problems. Maya

personally then, i’ll always attempt to get the mid joint as in-line with the other two as possible, if its seriously knackered, not able to alter the relax pose of the mesh for whatever reason, and typical IK setups aren’t working i’ll resort to creating a separate controlling IK chain and constrain (with offset) the bindable IK chain to that.
and tbh i’ll often position my joints as and where they need to (preference to only use rotate and scale for chains) and re-create the joint chain with snapping, that’ll get main axis perfect and I can do the other(s) by eye.

In my case, I had already placed the IK handle from the shoulder(armRoot) to the wristjoint. Then when I placed the pole vector after having snapped the ctrl, and moved it back in one axis and FT, the arm shifted slightly up. All the joints were aligned, as far as I knew. I even drew a plane (create polygon)from the 3 points(shoulder, elbow, wrist) and it all seemed fine.
My fix was:

I went into the node editor and created a link from the poleV_ctrl(pole vector control)'s y, to the twist of the ikhandle. I then created a multiply/divide node and entered 100 into the multiplier. This still allows me to move the elbow and it doesn’t move the arm’s joint at all.

I have been using a little script to keep all of my IK joints in a perfect plane. Much like ldunham1, I use a little bit of vector math to convert three locators (without orientation) into three joints that are properly oriented to each other to create a perfect place. it does a good job keeping everything nice and neat. Ive also have a second bit of python to figure out the correct pole location on that new “plane” i used for the bones. Together it works pretty good but it definitely needs to be something you use from the initial bone creation. If your interested in it let me know and ill put it up… it very short

You may find this reference useful.

short story is maya joint orient doesn’t work if the joints aren’t planar with a world axis. You can’t specify a normal that isn’t a world axis. There are ways around this.

Option 1. Build the legs in the 2D viewport and then rotate into final position (don’t translate). Then freeze.
Option 2. Align each joint by hand (I use an aim constraint which does take any up axis you want). Then freeze transforms.

Generally in my case joint move from its original position while applying polevector constraint because of following reason :
a) joint not oriented properly
b)joints are not in single plane

to cross check just make sure child joints are having translation values in single axis like if your parent joint are aiming to x axis all related child joints should be moved in X Axis itself it should not have translation values in other axis(Y Or Z).