Rigging an ankle with multiple points of rotation (a robot)

Hi there,

I decided to have an ankle that would rotate horizontally higher up the joint, sideways down a bit, and then forward/back at the bottom of the ankle.

I’ll be the first to admit I’m a bit rusty with my rigging. Perhaps something that would have been an obvious solution is skipping my head at the moment.

Can anyone post their concept of how it would occur to them to do this? Definitely not asking for a step-by-step. I have spent ~5 hours trying different ways but feel like I’m missing obvious things and the trouble starts when the leg moves from the pelvis rather than the ankle. I assume there’s some sort of specific IK handle setup that would help with this.

Here is an image illustrating what I mean:


depending on how the robot actually looks this method can vary,

i would build the ik chain in reverse, duplicate the chain and make the joints for the different rotations, direct connect from the first chain only the rotations you want to drive on the second one
if the hip is a simple ball joint with all rotations in one place then the rest will solve itself easy with a aimconstraint to the hip if not, then the solution will be more tricky and will involve a lot of math

Thanks for the response.

There’s a couple things I don’t quite understand. First, if I direct connect the rotation of the first chain’s ankle’s Rotate Y to the correct chain (the one that rotates on Y), how do I ensure that that joint also moves where it should when the leg moves? Currently the mesh will break if it’s only copying rotations.

For example, if the lowest joint is the forward/back rotation, the middle is the sideways, and the top is the horizontal twist and the first chain ankle is placed at the top (the horizontal twist), when the body moves backwards, the middle chain ankle will need to move as if parent constrained to the horizontal twist, while only the lowest chain (forward/back) should actually be rotating independently.

I have a feeling the aim constraint to the hip comes in here, but I actually have no idea what you’re saying to do with it. What gets aim constrained to the hip?

Cheers

One tip when working with setups like that- axis order is real important.

You should make the axis order happen in the same order that the mechanical joints move on your model. So if the joint moves sideways first (z), up/down second (x) and twists (y) last, the axis order should be zxy when you’re extracting the rotations to power other stuff.