PDA

View Full Version : IK ignores joint


DizzyJ
05-15-2009, 01:20 AM
I'm just starting to put IK onto my skeleton and when I placed an IK solver connecting the hip and ankle, it ignores the knee when I move the IK handle. If I translate the handle up the Y axis, in a way that would require the leg to bend, nothing happens. If I rotate the joints manually, as soon as I move the IK handle, the leg pop straight out.

The exception is that the I set up the knew to allow 3º of forward rotation. Sometimes the leg will bend forward when moving around, but never backwards (where it has 160º of rotation).

An IK solver connecting the shoulder to the wrist works as expected using the same settings for the IK joint tool. I have no idea what to do to fix this. Any suggestions? I've attached the skeleton/IK with all the geometry stripped out.

mlefevre
05-15-2009, 10:00 AM
The knee joint is inverse, to what would be the normal angle.

http://img199.imageshack.us/img199/555/kneejoints.th.jpg (http://img199.imageshack.us/my.php?image=kneejoints.jpg)

You could get around this by:
Selecting and deleting the current IK
Rotating the knee joint an arbitrary amount in the positive Z
Holding down the Right Mouse Button and selecting 'Set Preferred Angle'
Re-applying an IK

The leg will bend as it should, but you'll get some rotations on the Hip joint after applying the IK which you won't want if the mesh is bound to the joint already.

Perhaps to get around this you can:
Select the mesh, go to Skin > Detach Skin > Options
Make sure 'Keep History' is on and Apply
Reposition the knee joint, bring it infront of the hip (world +Z direction)
Then goto Skin > Smooth Bind.

Hope that helps,

Good luck!

DizzyJ
05-15-2009, 03:36 PM
Thanks Matt. That should help. Fortunately, I decided to get the IK set up before binding, so I won't lose any weight painting work.

Should I go back through my skeleton and check for any joint that moves forward along a negative vector? I adjusted each of the rotation axes to be consistent with it's neighbors, but didn't ensure that positive rotation resulted in forward movement.

Thanks again.

Edit: at first I didn't understand your response, but I've worked it out: the joints have to have a bend that the IK cross, creating a triangle.

CGTalk Moderation
05-15-2009, 03:36 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.