Hi, I’m working on an excavator. I got the mesh done and now I want to rig it like pistons with constraints, since its almost all rigid bodies and piston driven.
There’s two parts I want to achieve:
getting the parenting, empties, and Damped Track constraints (or other constraints) working in proper order to move the arm, and have the top (plus the arm) rotate.
have the connector cables bend while staying attached to the moving joint locations. (I do not have a clue how to do this).
I tried an excavator video tutorial but it was short and relied on bones and only moved one piston (and deformed it by stretching, rather than tracking it). I was not able to find another tutorial with multiple pistons and joints, except one in German.
I have labeled the joints with arrows. The green circle implies total rotation along the z axis (nothing special there as long as the parenting holds). The red arrows represent the main joints which wouldn’t be a problem except the pistons are supposed to slide along tracks between them, and ive never done this many joints and have it work correctly.
The violet circle represents four joints that have to somehow interlock to move the bucket and contract the piston. I do not know how to make this portion work at all. The violet arrows represent the cables that are supposed to bend, and I don’t know how to warp them outside of an animation in response to the other rigid bodies.
I use two damped track constraints for the piston, with a fairly simple parenting scheme for all the parts. I locked the yz axes on the arm to keep it from going wonky. That seems to be all that’s required
Pay attention to the structure of the parenting of the parts. The piston rod and shaft are parented to their pins, which are parented to the orange base and arm that hold them. The arm is parented to the base, which is the main object. The piston rod and shaft track each other’s pin.
I haven’t added any Limit Rotation constraints to stop the arm from rotating too far. You will only need that on the arm itself.
Hi Shintashi,
I banged together a quick draft of how I’d approach it. It’s mainly damped tracks and a deform cage. If you’re already belong this point then carry on.
EDIT: I just read back over you’re post. It sounds like you want to use empties rather than an armature? I’d use an armature.
I hope you don’t mind me sticking my nose in here, but I noticed a slight problem with your demo and it’s a common issue that I see a lot, so I thought I’d point it out.
The “problem” is a slight lag of the pistons. If you rotate Arm1 you can see a slight lag or pop while the Damped Track Constraints finalize there positions. This is due to a dependency loop. If there are two bones and each is depending on one another, you will see issues like this. One bone is moving, the next is trying to point at it, in turn the other bone is trying to point at the other and so on…
There is a very simple and quick fix to this. Duplicate all of the bones with a Damped Track, (I re-sized mine by scaling individual origins) then clear all constraints from the duplicates. Next, change the damped track constraints to point at these new bones. This breaks the dependency loop.
You might think that this is nit-picky and you’d be right to some extent. The issue will only become a problem at render time if you use a render farm or several machines to render your animation. Also, if you use motion blur you can get some oddities at render time.
I hope that helps.
Good luck!
P.S.
O.P., please follow SkpFX’s advice and use an armature. I won’t go into my usual rant on how armatures and bones are better then empties and how there is nothing that an empty can do that a bone cannot, but there are plenty of things a bone can do that an empty cannot…
i noticed this bone armature has green bones and yellow bones. It looks like it works fine, but I don’t understand how it was made. Is there a video tutorial that I can use to learn about these odd colored bones, and how to make them myself?
Green means there is a constraint on the bone. Yellow means there is an IK constraint. Humane Rigging is a good place to start your rigging education. The course goes through mainly creature rigging, but it all applies to mechanical rigging as well.
The main things you need to understand in every rig are, bone placement and axes orientation, transform locks, parenting, and constraints and the constraint stack. This will all be covered in Humane Rigging.
The “problem” is a slight lag of the pistons. If you rotate Arm1 you can see a slight lag or pop while the Damped Track Constraints finalize there positions
I noticed this too. I’ll finish parenting the rig before I see if how to correct the errors are here, but its kinda sorta working so far. The arm joints work well, but I’m not able to make the bucket move, like all my bones are fused in that area. I haven’t rigged since '14, but the Humane Rigging demo was familiar - at least the bouncing ball part.
the download button is in the top middle of the screen (first time I’ve uploaded a zip in google drive).
I tried uploading it as an attachment but couldn’t get it to work.
Edit: 9:18PM 4/20/16
I managed to get the knuckle part working (the four point mess at the bucket).
Once I get the bendable tubes working right, I’ll start on that duplicate delete step by Danpro