Blacsmith bellows moved by a handle. Newbie rig, suggestions needed

Hey folks, I have a relatively simple thing I’d like to make. A Blacksmith bellow rig. The bellows themselves correctly subtract when I move the bottom bone of the bellows, but how would I expand and subtract them with a top handle used? I’m quite new to rigging, and I can’t seem to find a correct approach to this. Any suggestions to get on track would be appreciated.

Hello, and welcome to the forum!

Well, off the top of my head, I would suggest using an IK constraint. I would extrude out a new bone from the base of the top bone, the tip of this new bone would meet the tip of the vertical bone that you move in the video. Then extrude a small bone from the one just made, this will be an IK target bone. On the vertical bone, you’d add an IK constraint targeting the IK target bone. Then you’d have to setup the IK constraint as needed.

One problem you most definitely will encounter will be a cyclic dependency error. When using an IK constraint, the target bone cannot be a child of any bone affected by the IK constraint. Generally, when you have this error, bones will flip around in crazy, uncontrollable ways. To check for this, and other errors, check the console or run blender from a terminal window, depending upon your OS.

When seeking help around here, it’s always best to add your .blend file. That allows one to see what your really have going on and can get you better help.

From your video, I noticed the top handle is a child of some bottom bone, because it moves when you work the bellows. So I know you will encounter the above mentioned error. But I don’t know what other problems you might encounter, because I can’t see ‘under the hood’ of your file.

Good luck!

Randy

Far be it for me to contradict my friend Randy… :smiley: but you don’t actually need the bone to connect the IK target to the arm:


You can just parent the IK target to Arm in Edit Mode (Select IK, SHIFT+Select Arm, key CTRLP => “Keep Offset”) and it will turn with Arm:


Parent Arm & Bellow to Root => “Keep Offset” again - this makes sure you don’t get any pesky Cyclic Loops. You don’t need to make continuous lines of bones, just have either a head, or tail in the right place. The Arm bone doesn’t have to be as long as the mesh arm, either - it works just as well if it is much shorter and it doesn’t clog up your 3D view. The IK chain length is 2 by the way.

Cheers, Clock.

EDIT:

This is a little extreme, but it shows that a single bone with parented IK targets works just as well as a connected line of bones, in fact I would argue it is better because it is less complicated:


@clockmender - contradict away, I won’t be offended by the intelligent sharing of ideas. You are 110% correct in that there doesn’t need to be a bone connecting the ik target to the arm bone.

clockmender’s solution and provided examples are the way to go. It’s the same idea as mine, minus 1 bone. As clock’s signature says “K.I.S.S.” - Keep It Simple Stupid.

Randy

@Randy - Great minds think alike my friend^^

Very large bones can be a problem - oh shit, I shouldn’t have said that here… :eek:

But, there are ways to use bones so you don’t have to have massive bones on your rig that obliterate the model, take this below:


Bone “tail” is parented with offset to bone “head” - same applies to bones “link-h” and “link-t”. These pairs of bones then effectively become one bone, but are very small on your screen. I then did the same with “crank” and “IK” - then I added an IK constraint to “link-t” - chain length is 4 to get back to the head of “head” bone. Then to stop the links bending I locked the axes of bones “link-t” and “tail” in the IK properties box as you can see in the image above.

Here is the mechanism with “crank” rotated:


So, the crank is quite a large diameter, If I just move bone “IK” I get a smaller effective crank diameter thus:


…without having to change anything in the armature, I moved bone “IK” in Pose Mode by the way…:wink:

So don’t get into problems by having a big bone spoil your model, just use two small ones! :smiley:

Cheers Clock. :slight_smile: