Home Technical Talk

Maya - Pole Vector Elbow trouble

KGreenblatt
polycounter lvl 3
Offline / Send Message
KGreenblatt polycounter lvl 3
I ran into a rigging snafu I've never seen before and I could really use some help.


I am trying to set up a pole vector on an IK Arm I am creating. The model was *not modeled in T-Pose so the bone for the arm travels through multiple planes. Obviously this makes making a pole vector difficult, but I found a workaround that has never failed me before, until now.

Work around: Use the Create Poly tool and snap to the shoulder, wrist, and elbow. Then, grab the vert attached to the elbow, change move settings to Normal, and drag it out. Then make the poly live, snap your elbow controller to the dragged out vert, then select the IK Handle, the Elbow controller, and create a Pole Vector. (the purpose of the poly tool is to ensure you created 1 solid plane for the PV, and snapping the elbow controller sets up the solid plane for the PV)

The elbow control does move the elbow, but when I drag the IK Hand up through tY, the elbow seems to fall off and doesn't truly aim at the controller. I have used the create poly method to ensure a solid plane for the PV in the past, and it's worked 100% of the time - I have to rig a lot of models that aren't truly in T-Pose.

I don't think I need a no flip setup, as I opened up some older rigs I made using this method and they work perfectly; As I drag the arm up the elbow always faces the PV control, as it should. This rig is throwing me for an absolute loop, I simply don't understand why the elbow won't stay locked onto the direction of the PV control. It tries, but it starts to bend in the wrong directions. After orienting the IK rig I grabbed the arm and set preferred angle, but I'm not sure if that helps (or hurts).

Any help would be greatly appreciated.

-Kenny

Replies

  • Denny
    Options
    Offline / Send Message
    Denny polycounter lvl 14
    You need to check the orientations of the shoulder and elbow joint. Note that the orientations must match the same plane as the one you create with the poly tool to place the pole vector.

    This can either be done by creating the joint chain flat on one axis, or by manually matching to a custom plane you made. I usually add a square polygon plane, similar to what you have, then I manually orient the shoulder and elbow joints so that one of the axis' on the Rotation Gizmo (rotate tool) aligns to the plane. For example, if Z-axis is where you bend your elbow, the blue circle in rotate mode should lie flat on the plane. Then I make sure to zero out the Rotate Axis values on each joint. (see Attribute Editor)

    You can do so either by freezing the joint or do these steps.

    Unparent each joint to world. Set value on Rotate Axis to 0,0,0. Then parent back.

    If you don't unparent, you will affect the placement of the child joints when zeroing out the rotate axis. Also note that any values on the Rotate Axis will affect the local transform on the joint. You can see this if you have the Move Tool set to Local. Even if you change the joint orientation manually, the local axis on the move tool will not match the orientation of the joint. But it will after you reset the Rotate Axis.

    This is a big problem when exporting to UDK/UE4, because these engines will not care about the Rotate Axis. So you may end up with situations where the preview of the joint orientations does not match what you get in the engine.

    So rule of thumb: Always zero out Rotate Axis values.
Sign In or Register to comment.