Rigging an exosuit - Looking for technical tips

Rigging an exosuit - Looking for technical tips

Anonymous
Not applicable
1,902 Views
8 Replies
Message 1 of 9

Rigging an exosuit - Looking for technical tips

Anonymous
Not applicable

Hello everyone, I am currently working on an exosuit model that I have to rig and animate with a simple walk animation.
The thing is despite different approaches, I am struggling a lot in making practical IK legs.

To help you understand what i am dealing with, here is a video of the kind of model I am working with :
https://www.youtube.com/watch?v=u8cS5PMeuQo&feature=youtu.be

As you can see, each element can only rotate on one axis (Y in my case), and all modules have different shapes that may adapt to the movement of the human inside.

Here is a quick draw of the shapes and different bones axis

halp.jpg


My issue is that I cannot find how to make a clean IK for this kind of leg setup.

My last try was with driven keys between a simple IK leg with 3 bones, that would drive the rotations of my 5 joint leg. It looked fine when I tried the rig but was finally a mess when I tried to animate the walk of my model, with clipping elements, frame by frame movements and so on.

Definitively not the right option.

So if anyone have advices or tips to deal with this kind of setup I would be grateful !
Otherwise I may go for a FK rig and I guess the walk animation will be a purge to do but I really wish I could make a practical IK rig for this model, I just miss some ressources.

Thank you in advance !

0 Likes
1,903 Views
8 Replies
Replies (8)
Message 2 of 9

mcw0
Advisor
Advisor

Does your drawing correctly represent your model?  The first thing I see is the knee...the seam is at 30 degrees!  How is that going to work?  Can you also show how your 3 leg joints relate to the drawing?

0 Likes
Message 3 of 9

mcw0
Advisor
Advisor

Sorry, I just watched the video link.  That's very interesting the knee is at an angle like that.  But I would start testing with an FK leg.  If it works for the FK leg, then it will work for the IK as well.

0 Likes
Message 4 of 9

jmreinhart
Advisor
Advisor

jonahrnhrt_1-1595920721108.png

So, I was doing some testing with simple geometry and I think that since you have a twist above and below the strange knee you could use the angled knee bend to bend the leg to point the lower leg in the direction required and then just use the twist above and below the knee to make the orientation line up without intersection (not a simple thing to do but very possible). But for that to work you would need to make sure that the knee cross section is a circle. An angled cross section of a cylinder would be an ellipse and ellipse couldn't twist without disconnecting.

0 Likes
Message 5 of 9

Anonymous
Not applicable

Thanks for your time @jmreinhart  & @mcw0

I didn't update the post since but already succeed in doing a nice looking IK driving as you can see here :


I simply made IK drivers and connected them to my skeleton with orient constraints with some adjustments in the nodeEditor.


However I am still facing a major issues, if you have any advice about it :

I am struggling to avoid the arched movement of the leg by compensating the rotation of the 1st joint (from top) with the rotation of the 2nd. 

But the struggle comes from :
- the fact that the 2nd joint have to compensate the 1st one up to a certain angle then return to its initial rotation, and I cannot find which node I could do that with. (I have been working with node editor until now but if you have any proposal using expression or any other way I am fine with it)

- and the fact that the 3rd joint rotation breaks if I modify the 2nd joint rotation parameters as it is driven by the X rotation of the IK driver, so any modification proportionaly shifts the knee.

I hope my explanations are clear, english isn't my native language.

Thank you again for your time 🙂

0 Likes
Message 6 of 9

mcw0
Advisor
Advisor

If I understand the problem, the legs should be rotating on the YZ plane, but they aren't...correct?  It's hard to debug something like this without actually playing with the file.  But to answer your question about how to control "the 2nd joint have to compensate the 1st one up to a certain angle then return to its initial rotation", you can use the condition node to achieve this result.  It's pretty self-explanatory.  

 

Looks like you are controlling the geo with the joints.   Again, hard to advise without the file, but you might use single chain ik handles for each of those joints and parent them to your ik joints.  Then parent a locator or a null under your joints to control the geo.  This way, at least the joints will follow the ik joints.

 

Great job with the knee.  I love watching it.  It's like watching a mechanical watch.

 

 

Message 7 of 9

jmreinhart
Advisor
Advisor

It look like you've got a really interesting system going on there, but it looks like the controls doesn't have precise control over the position of the ankle.

 

I did a very simple mockup of a simpler setup which may or may not work for you. In that example file I've set up the relationship between the angle of the knee and the twist of the knee sections using set-driven-keys but looking at the shape of the graph those manual keys make, there's definitely a more exact mathematical relationship going on between them. If/when I sort that out I'll add it here,

 

Message 8 of 9

Anonymous
Not applicable
// Sorry for the previous answer, apparently the website didn't take my line flyback into account. Unable to delete my previous message, I give it a second try, so that you can read it more clearly. @mcw0 That's it, I would like a rotation of the leg on the YZ plane knowing that each module can only rotate on its Y axis. I already tried to play with the condition node but I may need several of them to achieve what I am trying to do here. As the only options of the condition node are equal / not equal / greater than / lesser than while I would need a "between this and this value", so I will dig a little deeper into this. Also I parented geo to joints indeed to earn performances as the animation will take place in a VR game. I may share the file in private if that's possible ? Anyway thanks for your suggestions 🙂 @jmreinhart Thank you very much for this test file, it is interesting to see a different approach even if it isn't the most mathematical one. But yes, I'd rather avoid using driven keys for this kind of complex motion, but it is a good lead to get around the dependancy between the joints. I am looking forward if you find anything else and will also keep you informed if I find something new ! But yeah, this rig is particulary rigid and even if I am sure that I can get something better with it, I don't know if I will achieve a real IK setup as there is no real ankle on the model and the foot can only rotate on one axis. On an other hand, I started thinking about making an inversed IK (from foot to hips) where the movement of the leg would drive the orientation of the hips to give it more freedom.. I continue my research and will keep you informed of my progress.
Message 9 of 9

jmreinhart
Advisor
Advisor
As the only options of the condition node are equal / not equal / greater than / lesser than while I would need a "between this and this value",

Set-driven keys are essentially an easy way of accomplishing that behavior instead of using several condition node.

 

so I will dig a little deeper into this. Also I parented geo to joints indeed to earn performances as the animation will take place in a VR game

None of the game engines I'm familiar with allow for the geo to be parented to the geo. They need actual skin data, but my experience in that field is limited so I may be wrong.

0 Likes