Rigging a joint

Hi

First of all, I know there a threads where my issue is being discussed, but they are most of the time too far advanced for me, so I decided to make a basic thread:

So, I’m about to learn and understand the techniques of rigging an arm or a leg with bones and emties, and so far I’m advanced: In the attachment, you can see a fully operational piston with a fix point on the left side, there it´s not slidable, with the right empty, you can pull and push as much as you want, but distance limits are already set.So much for that, my actual aim is to connect the lower arm to the piston, emptybottom and emptyone should overlap, the same for the other two, but I can’t still figur out, how many emties and what constraints I have to set…

Greetings

Attachments


piston.blend (554 KB)

Little bit confused here.

my actual aim is to connect the lower arm to the piston, emptybottom and emptyone should overlap, the same for the other two, but I can’t still figur out, how many emties and what constraints I have to set…
I mean I get that you want to fit the cylinder into the arm, but the cylinder is about 2x as big. The distance between emptybottom and emptytop is about 2x the distance between emptyone and emptytwo. So if you want to connect the cylinder to the arm, you need to scale the arm up, or the cylinder down…

Anyhow, here’s how I would do it… I corrected the bone roll on the two bones you had, added in 4 more bones. 2 are named with the suffix ‘_anchor’ they are the parents of of piston & cylinder bones, and also serve as targets. ‘cylinder_anchor’ is the parent of ‘cylinder’, and the target for ‘piston’. Then once you get the cylinder & piston meshes scaled & positioned, just parent them to their bones.

Randy

Attachments

piston.blend (552 KB)

Thanks a lot Randy :smiley:

Hey, I have one further question, so what I have done is to Ctrl-P-Bone the Emptytop to the piston-anchor (after I overlapped the bones with the empties) so I can rotate the Forearm while the piston is being extended…so far so good, but I noticed, the arm rotates more than the limitations of Emptytop allow to, meaning the Forearm goes right through the piston…what other constraints are necessary?

Greetings

One thing you can do is get rid of all the empties, they really don’t offer any advantage over using bones. In the example rig I posted, that’s what the two anchor bones act as, they are for the location of the bones cylinder & piston, then just position the piston & cylinder meshes in the correct locations and parent the meshes to the bones cylinder & piston. Please note, when the armature is in pose or object mode, everything lines up correctly, but when you enter edit mode, bone’s shift just a bit - the cylinder & piston ones that is. The reason why is my ‘eye balling’ the alignment of those two bones isn’t as accurate at blender’s track-to constraint. So if the cylinder & piston meshes are parented to the bones, when you enter edit move for the armature, the piston and cylinder won’t line up correctly and the whole thing will appear broken. It’s no big deal, as you would never render the thing while the armature is in edit mode. Edit mode is only for working on the armature, not using it.

Anyway, as to your real question, yea those limits you set won’t do any good. You are looking at this arm as it actually exists in real life, the piston & cylinder define the movement & limits of movement based on their mechanical abilities & limits. In cg rigging, it’s sometimes easier to do the reverse of real life, like in this case. In the example I posted, the arm is what you would pose, the piston & cylinder are passive - they are just here for appearances. You pose the arm using the arm bones, where as in real life the arm would be posed by the piston & cylinder bone. It’s done this way because it’s easier to animate, you can position the arm precisely where you want it, where as posing the arm via the piston bone would be alot more tedious to get precise control. So to limit the rotation of the arm so it doesn’t go past the limits of the piston/cylinder, you’d use a limit rotation constraint on the lower arm bone. See attached .blend…

Take a close look at the constraint and how it’s set up, it limits the rot of the lower arm from 90 to 20 degrees. It 's also a good example of what I mean by the model moving when entering edit mode. With that said, I rarely even bother to limit things like this, only if it is necessary for some reason or effect. When animating it’s up to you not to move or rotate the parts in ways that it can’t be moved in. Good example - airplane rudder, without limiting the rotation of it, it would be possible to rotate the rudder 180 degrees so it backwards and inside the tail fin. In real life this could never happen, so when posing the rudder, just don’t pose it in such a way.

sorry for the wall of text,
Randy

Attachments

exampleArm.blend (319 KB)