Home Website Youtube GitHub

Leg_3jnt_01 Guide Builds Incorrectly When Root Rotated

Hello! I’m on v4.0.9 and having a problem with the 3-joint IK Leg guide. I’m working on a frog-like creature where it’s necessary to have the legs rotated about 30-45 degrees out from the sides of its body. Doing this with any of the 2-joint leg guides works fine, but for the 3-joint one, the heel joints and animation controls build in the wrong place and the IK solves incorrectly. I’ve made a simple demonstration by modifying the Quadruped sample template. You can see the difference between the results of no rotation (top) and rotated leg_3jnt_01 guide roots (bottom)

Currently I’m able to get around this bug by building the rotated leg guide how I want it, then counter-rotating it back to its original rotation before building the rig, and then counter-counter rotating the built animation control back to where it should be before skinning. This is not ideal in the long-run, though.

Also I’m handy with python and character TD in general so I’m happy to modify code and try things to help debug.

Thanks for any help!

1 Like

Have you tried the 2 different solvers? I know, I used this component for a character last year, and it is very touchy, and wants to be oriented very specifically.

If you’re brave, you could dig into the component and see if there are improvements to be made.

Also, have you tested leg_3jnt_02? It uses a helper joint inspired by Morgan Loomis’ setup. There is also this thread where @Aerys shared some great math for solving it , but I don’t know whether this was what inspired that component or not:



Hi Chris, thanks for that link! Really interesting math/concepts in there! Forgive my ignorance, but I can’t find leg_3jnt_02 anywhere. It’s not part of the 4.0.9 components list and I couldn’t find it on github, just this mention of it here https://github.com/mgear-dev/shifter_classic_components/issues/84


oh man sorry. That was super misleading! To me as well. I made that custom component, because I was trying to follow the math and implement it as a component. I never finished. :sob:


But in leg_3jnt_01, did you try turning it to “Rotation Plane” solver? It’s a bit more stable, but I am not sure it quite gets the same intended results.

1 Like

No worries! I just tried changing the leg settings to Rotation Plane, and that seems to have solved the problem! Thanks so much!