View Full Version : Engine Rig -- help

Mental Ray
05 May 2010, 05:11 PM
Evening all,

Im having a bit of a nightmare at the moment, Im rigging up an engine for a project and have hit a brickwall with the pistons. I thought it would be pretty straight forward but its a lot trickier than you'd think.
I've broken each piston down into piston shaft and piston head. The head only moves on one axis and the end of the shaft is attached to this. In my current setup I have the base of the piston shaft, which is offset on the crankshaft aiming at the center of the piston head and the piston head point constrained to the end of the shaft in the one axis. This does work except there is a cycle error which means when i re-open the scene all the connections are broken.

Does anyone have any suggestions or links to piston rigs tutorials?

Any help would be very much appreciated.

Will :D

05 May 2010, 08:17 PM
there is a lack of some information here.

How are you doing the rigging? re you using... Bones, Parented Objects, SDKs, Expressions.. ..

I can think of serveral different ways to rig a piston setup, just not sure what you are doing with yours and what stage your at, etc...

If I was going to go the simple and fast route to this. I might go with a Object Parented Method and use SDKs with Pre and Post Infinite loops. This would allow me to control the speed and direction of the Pistons. So that I could speed up, slow Down or reverse on demand.

Again just one setup and One idea. Without knowing your current setup its all just theory.

Mental Ray
05 May 2010, 08:41 PM
thanks darksuit, SDk was my next port of call. Currently I'm using constraints locators and groups. I have one group as the piston head and one group as the shaft of the piston aiming at the head. Then Im using a simple expression to drive the crankshaft which the shafts are point constrained to, that way i can easily control the speed and offset.

Im trying to figure out how i could use joints and IK but keep coming back round to the same problem of cycle errors.

05 May 2010, 08:55 PM
Without seeing what is going I can't tell where the cyclic error might be occuring.

That said, About a month or two ago, I did a sample Mechanical Rig. You might want to take a look at that. It might hold some use for you.

Expressions in this case may be making things more complicated than they really need to be. The piston and Crank Shaft, is a relatively simple mechanical Model of engineering. If you follow the mechanics of the Piston it should almost rig itself. Then again I am not sure what application you are putting this forward to.

05 May 2010, 02:03 PM
wouldn't u be better off using orient constraints so the they always point at the angle you need so all ur doing is rotating the shaft. jus a thought

05 May 2010, 03:25 PM
wouldn't ypu be better off using orient constraints so that they always point at the angle you need so all you're doing is rotating the shaft. just a thought (edited for spelling)

From the Maya Character Setup book, Maya 2.0 Edition. Page 459-460.

Understanding Orient Constraints

An orient constraint matches the orientation of one object to one or more other objects. This Constraint is useful for making several objects orient simultaneously. For expample, you can make a group of characters all look in the same direction at the same time by animating one characters head and then constraining all the other character's heads to the head you've just animated.

An Orient constraint does not point. What it does do is effect the orientation X,Y,Z axis of multiple objects to align them with a base object to move in sync.

There are ways that an orient constraint would be useful in this situtation, but there are better and cleaner solutions. Such as creating the asset once then saving it out, setting up a new scene then referencing in multiple copies.

CGTalk Moderation
05 May 2010, 03:25 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.