Mechanical rigging, tips and tricks?


#1

Okay guys, i’m new here, let me present myself.

I have been trying to design a car suspension system for a while. Before, i was using solidworks, but i got frustrated by the limitations offered by it in order to design and study the kinematics of the suspension geometry (how everything moves together and the impact of each motion) Basicly, when it comes to motion - while concepting, i felt kind of stuck, having my sketches and constraints breaking all the time.

Eventually, time passed, and being a 3D artist, and having switched to Maya about last year, i started learning how to rig - something that i never did before. After a few character rigs tutorials, came to me the idea to try to design my suspension system in Maya.

What i am trying to create is a “double wishbone” suspension system. Now, there are a few tutorials out there explaining how to rig a car’s suspension, but none of them seem to do it the way i’d like it to be done. Most of them use some parallel “wishbones”, and their rotation is within a plane. What i have in mind is something a bit more complicated than this, beceause my wishbones are absolutely not parallel, and have different rotation axis.

I will try to illustrate a bit better what i have in mind, but overall, i feel stuck on some “concepts” that i can’t seem to grasp. Here is a picture that i hope will illustrate well enough what i’m trying to achieve :

The grey mesh represent the car’s frame on wich are attached the wishbones. In red is the upper wishbone, and yellow is the lower wishbone. Each wishbone is supposed to be totally rigid within itself (a piece of steel).
In blue is the knuckle, wich is attached to the upper and lower wishbones by ball joints.

So, each wishbone is supposed to rotate from the axis defined by the two attach points on the chassis. For example, for the upper wishbone, the rotation axis is supposed to be a line between “UpFront” & “UpBack”. Same thing for the lower wishbone (yellow). Up to there, it would have been kind of easy to just have one bone per wishbone and aligning the rotation axis to the desired axis. But the problem is that each tip of the wishbones is supposed to be attached to the knuckle (blue). So, when i rotate one wishbone, the other would need to be driven by the first. The problem is that using an ik seems to screw the rotation axis of the first wishbone, and since the pole vector would need to be dynamic an move relative to it’s own bones rotation, it gets so complicated that i don’t even know what i’m doing anymore.

In the end, this seems like a very specific issue, but i’d like to create this rig quite flexible, to be able to move each attach points (locators in the picture) to be able to analyse the effects of moving them on the overall geometry.

I became quite obsessed with this and would like to find a solution, even if i realise using rigging for suspension geometry is probably not the best option, but i’d like to be able to create mechanisms, as much as complex than simple. But some seemingly easy things looks so complex… If anyone would have time to explain me some things on how to setup stuff like “perpendicular” constraint, or having a locator constrained between two other locators (like point constraint of one locator between two locators but instead of having it in the middle, being able to have it in a position perpendicular to a 4th locator?), & stuff like that.

I know i am vague, but i have to say i’m quite lost haha.


#2

Cool, you’re me! :smiley:
I specialise in mechanical stuff, and I’ve experienced a lot of the same frustrations. The most important thing to work out about any rigged system is the behaviour you want out of the end of it - if that behaviour is simple (like here, correct me if I’m wrong but the desire is for the blue output to always remain vertical as it translates up and down?), your life can be much easier.

For your “perpendicular constraint”, the easiest answer is often just an orient constraint. Orient and point constraints affecting only one axis were my bread and butter for a long time, especially when combined with rotating drivers or parent groups - you can produce very sophisticated skewing behaviour with not many nodes. The handy and frustrating thing about mechanical systems is that you don’t need to connect the motion methodically from part to part - if there’s another component that shares the characteristics you need, just use it as a source and fill in the rest.

Sorry if it’s a bit incoherent, but going completely forwards-first through these things is rarely the best or easiest way - treat them more like sudoku.