[Maya] - Rigging a quadrilateral challenge

rigging
maya

#1

Hi everyone! (Long-time lurker, first-time poster here)

I’m a bit stumped with a rigging problem (in Maya) that I have, and was looking for some direction/help from the wonderful minds out there.

The setup I’m looking to create is something like this…

All the coloured members are of fixed length; the bottom point is constrained to a single position (like a ball joint), the top point will be free moving (it will move up/down and left/right along the plane that I’ve drawn, and its movement in/out of the plane would cause the whole plane to move with it…hopefully that makes sense?); and the other joints are all hinges with axes that will always remain perpendicular to the plane.

I’ve tried a number of solutions using combinations of a couple IK systems, but I always seem to end up with a circular reference…which sort of makes sense (in my mind) because both of the centre pieces (blue and green) affect each other’s movement.

Even though I haven’t found a working solution yet, the aim is to find a solution that can be easily reproducible with code, as I have a few of these setups that vary slightly, and will vary with newer versions.

Has anyone rigged something like this before, or have any ideas for a setup I should try?

Thanks in advance!


#2

What is this joint being used on?


#3

Hey, it’s actually mimicking a real-life mechanism that is going to be manufactured. This is just part of a previsualisation stage.


#4

you should go curves setup, and use some tangent constraint and point constraint to maintain some angle.

You need to drive the cvs of the curves, attach some locator to the curve, and set tagent constraint to get it perpendicular, locator can drive root joint systems.

This gives you a parallel system that can maintain angles wihtout cycles.


#5

Thanks for the response, ssky. I’m not sure I follow the setup you are suggesting though - would you be able to describe it in more detail, and expand on what you mean by “maintaining angles”? (that just confuses me because the setup I was trying to describe had variable angles)


#6

Ok, so just to be sure, wich angle needs to always stay perpendicular?


#7

Sorry, I might have been a bit confusing in my description. The axes of the hinged joints are always perpendicular to the page - it’s probably simpler just to look at the rotation indicators I’ve drawn on the diagram.

edit: I now realise that the image got heavily compressed when uploading, and that it isn’t very clear. The four joints in the centre of the diagram that look like they are circled…they are actually circles with arrows on them - I was trying to show how they were able to rotate.


#8

Hoo, ok, that completely change the problem ^^. If you don’t have any constant angle then i don’t know how to maintain bone’s length :s; sorry.

Just by curiosity, can you post the original reference for this rig??? Are you sure your analyse of the mechanic is true?


#9

One way you can approach this is to use e a simple IK on the orange-green lines, then parent or position constraint the red line to the end of green as shown. The angle between green and red then needs to be updated using trigonometry, either through an expression or some other mechanism in maya.

This can be done if you solve the missing line (vector) of the triangle formed by red-blue lines (the imaginary line between the point where blue meets orange, and the point where red and green meet). With that vector you can solve the angle between red and green.

I have little experience rigging in maya, but hopefully this helps you get on your way.


#10

No worries ssky.
I can’t show you the original reference, but it’s just an augmentation of a four bar linkage, which is a pretty common engineering mechanism.

Four bar linkages


#11

Thanks CLR. That’s a great suggestion - I’ll definitely give that a go; I wonder if there may still be a problem because the mechanism isn’t being driven from the point where the green meets the red, but from the end of the red bar instead?
I’ll report back though!