Community
Maya Animation and Rigging
Welcome to Autodesk’s Maya Forums. Share your knowledge, ask questions, and explore popular Maya animation topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Polevector hates me :(

6 REPLIES 6
SOLVED
Reply
Message 1 of 7
exsulator
2038 Views, 6 Replies

Polevector hates me :(

maya_rigging_IK_doesnt_point_at_PoleVector.gif

 

The "star" in the center is a pole vector to the IK arm. As you can see, the elbow refuses to point at the pole vector accurately. Instead, it beginds rotating and twisting the mesh in an odd fashion

 

Any idea why?

6 REPLIES 6
Message 2 of 7
dinofiguera
in reply to: exsulator

If the star control of the pole vector is located at the elbow position, this is the mistake.
Imagine the pole vector control as a point your elbow is pointing at.  The more far away is the point from your elbow, the more the elbow will be stable. So if you want the elbow to point towards the back of the character, you have to offset the pole vector position more to the back.
poleVector.jpg

Message 3 of 7
exsulator
in reply to: dinofiguera

maya_rigging_IK_doesnt_point_at_PoleVector2.gifThere is lots of space but still the same problem...

 

 

Message 4 of 7
stephenkmann
in reply to: exsulator

It looks as though the local rotation axis or the preferred angle has not been set correctly, 

 

 Show the joints local rotation axis using Display --> Transform --> local rotation axis

 one of the axis, usually X , should point down the joint chain, If that is not that case, the orientation of the joint has gotten off. You'll want to delete the ikhandle, and orient the joint.. display of local rotation axisdisplay of local rotation axis

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if the joint's orientation is correct, it could be that the preferred angle has been set incorrectly. 

 

 The preferred angle determines the direction the joint will bend when being affected by the IKHandle.  It should only be in 1 axis.  To check the value,   delete or turn off the ikHandle's influence. select the joint, set it to 0 0 0 rotations, and then using the skeleton menu, choose "assume preferred angle"   if the resulting rotation gives values in more than one axis, this will lead to poor results.   Zero out the joint again, and then rotate the joint in 1 axis in the desired bend direction. Amount of rotation doesn't matter, just if it's positive or negative..  Then set the preferred angle using Skeleton -->  Set Preferred Angle. 

Now remake the ikhandle, and just by moving it you should see the correct motion of the joint chain. Pressing "t" will allow you to also affect and move the poleVector . Note that the poleVector X Y & Z channels are in parent space to the root of the affected joint chain. 

NOTE the white triangle that shows the direction of the poleVector as determined by the preferred angle.

 

 

poleVector placement using "t"poleVector placement using "t"

 

 

A third posibility is that there are non zero values in the twist.  as this will twist the bend away from the poleVector

 

hth

-=s

 

 

 

 

 

 

Message 5 of 7
exsulator
in reply to: stephenkmann

Thanks for the tips! I tried all of them but still couldn't make it work.

 

I've provided the elbow in case someone wants to take a look.

Edit: forum doesn't allow the 77 kb .ma file, so here:

https://drive.google.com/open?id=1e4eTCdO9O2BJYqQQWfTmpkClvZXeS76Z

 

Also, I've noticed that the elbow acts in the same manner even without the pole vector connected.

I know that I could make it work instantly if I aligned all the joints on two axises, but I placed the joints to fit the mesh (the arm was kind of skewed). So I think I'll redo joint positions in a safe way along one axis, then group joints and pole vector and rotate as a whole to ensure it's an exact match.

Message 6 of 7
dinofiguera
in reply to: exsulator

In your scene, the pole vector was completely misaligned with the rotating plane of the elbow.
Before to create the pole vector constraint you have to be sure what is the axes you want the elbow to rotate around.
If you choose (like in your case) the Z axes,
the pole vector controller needs to be perfectly aligned with an imaginary triangle that has the elbow, the shoulder and the pole vector controller as vertices.
This triangle is the rotating plane of your elbow.  (The plane in which the elbow moves while rotating the arm.)
Animating the pole vector controller means rotating that plane around, and therefore rotating the arm.
Check my scene, I created a transparent rotate plane, to help you figure it out.

Cheers,

D

Message 7 of 7

thanx for the solution

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report