May 2013
1 / 3
May 2013
May 2013

Hi guys!
I am here to share my last two tutorials for maya.
They are about how to correctly place a polevector in maya in a way that when you create the polevector constraint your chain wont move , also it will be possible to offset the locator and so on.
Everything is done by doing some vector math and using python!
comment and critique are welcome!
If you want to stay up to date with the releases of tutorial/scripts and plugin just subscribe to the newsletter or follow me on vimeo :

70http://www.marcogiordanotd.com/newsletter.php70

here the tutorials :
pt1 : 114https://vimeo.com/66015036114

pt2 : 39https://vimeo.com/6626299439

  • created

    May '13
  • last reply

    May '13
  • 2

    replies

  • 3.0k

    views

  • 1

    user

  • 1

    like

  • 3

    links

Cool tutorial site. What I'd be more interested in, as it is something I didn't clearly figure out in the past, is to do this for a joint chain with more than 3 joints, that are arbitrarily placed but not placed within a single plane

Also I am curious to why you do the rotation part (I do read through the code and didn't really have 40 minutes to spare for the long version... so could be you explain it all very clearly) for as far as I know rotations don't matter for polevectors, seeing as vectors are points and not matrices...

Inverse kinematics* is a underconstrained problem that is there are many ways to solve the problem at hand. So if you have to joints with fixed length (at any given time) then you have a infinite number of solutions. One way to constrain the problem better is to say that yes these lengths have to be on a known plane (3 points are always on one plane). this then leaves you with 2 solutions. So the you can add more constrains to pin down which of the two you want.

Anyway this works well for humans arm where you have a ball and a hinge joint (more or less).

seeing as vectors are points and not matrices

No vectors are vectors. Points are a separate concepts when it comes to affine matrices. The vectors may indeed be defind form points mathematically they behave differently.

for as far as I know rotations don't matter for polevectors

Pole vectors are rotations of sort, in this case its just a alternate way of defining rotations or as it may the plane equation. Like axis angles, but since the result is plane it does not need to have the extra angle the axis alone is enough (all the rotations around the angle produce the same plane). Same applies to the matrix for the plane equation all perpendicular secondary match the plane (besides with apole you have 2 vectors alonga and polse so making amtrix is trivial).  Alternatively one angle would be enough.

Its just that fixing the rotation is a bit problematic in some cases, the vector provides a reference that is more understandable. (That is most wont understand it but the alternative sucks more.)

to do this for a joint chain with more than 3 joints

When you add more joints your problem escalates you now have more infinities to solve thus you need more constraints that make the solution unambiguous.  Unambiguous things can not be computed, but you can device ways to ensure you  pick the same solution form the set of infinities.

Like before you could say that the joints are again on one plane, and then distribute the reaching distance among the joints evenly, or by some other ratio**. Anther way is to take one of the joints out of the IK solution and force its position based on angle, thus reverting again to the 2 bone chain problem. This is often done n robots where you want to define end position more precisely. Animators know this as the reverse foot rig.

But technically the way animators use pole constraints is not optimal, that's because these solvers do not ensure the shortest path so robots use different time position based solution schemes (find path at each instant based on where you are now). However for a animator a solver like this i bad beaus you can not anticipate the path at the animation stage because its a simulation that depends on previous position (so it only works playing forward one step at a time).

There are several universal solutions for IK available in scientific lore that define the constraints differently.

*yes, I'm a mechanical engineer, kinematics is what I am formally taught to do.

** even if they are not on the same plane the joint NOT on the plane can be reduced to one that is.

Suggested Topics

Want to read more? Browse other topics in Maya or view latest topics.