Rigging Relationship Problem

Hey all.

I am trying to set up a rig with certain relationships between the bones, and having real problems working it out. Any assistance appreciated!

I am (still) using 2.49b.

I have attached a .blend file to illustrate the concept (I am aware that the model itself is not great). There is no rig in this .blend, because all of my attempts so far have been less than successful.

What I would like to acheive is a rig where the front plate would be flat against the larger cube, with the arms inside the cube. Moving a bone outward to open the plate so that it opens in a way that it is hinged on top (to result in a position like that in the .blend file) would also cause the Upper arms attached to it to slide along the groove in the Lower arms, until the pin in those grooves that is attached to the Upper arms reaches the end of the groove in the lower arms, at which point the Lower arms also slide out (again resulting in a position like that given in the .blend file).

I hope I haven’t made it sound more complicated than it is: hopefully you can open the .blend file and see what I am talking about.

Again, if anyone has the time and inclination to give me any clues about how to rig this, I will be forever grateful. Thanks in advance.

Attachments

ArmsTest.blend (1020 KB)

I haven’t looked at the file, but I strongly suggest you not use 2.49b for this project. It is a very good version, I’ve done a lot of work with it, but the changes made in the newer versions in the area of bone constraints are huge, and can make this kind of linkage between bones a lot simpler.

I appreciate what you’re saying chipmasque, and I definitely plan on getting up to speed with the newer versions of Blender in the future. Unfortunately, this particularly rigging issue is part of a larger project that was begun over 2 years ago, and learning the ins-and-outs of the changes since 2.49b as well as making sure that all of the work that’s been completed so far can be continued in the newest builds without any issues is just not an option at this time :frowning:

I am holding out hope that someone can provide me with some direction about how to acheive the desired effect in 2.49b. If not, unless I have a brainstorm (and I’m not exactly an expert rigger), I suppose I could always laboriously manually keyframe the movements that are needed… but I’d rather avoid that if at all possible.

I understand your dilemma, I had the same concern with finishing Kata, and even had similar rigging issues. I used a lot of bones driving bones for that rig, and it was a complete and total pain in the rear to do (using scripted drivers), but afaik the ONLY way to do what I wanted in 2.49b. After moving to 2.5 and up, I found that 95% of my problematic driver issues had been solved with new constraints and a new approach to drivers. But because of other upward compatibilty issues (the API changes broke all my scripting!), I finished the short off in 2.49b.

I’ll look over your file and see if I can suggest anything.

A question about your mechanism: The upper arms seem to be attached to the plate via a half-circle-shaped device that could be a swivel/hinge or could be a rigid connection. Which is it supposed to be?

Whichever is “easier”, although I suppose that having a definite answer might be “easiest”, regardless of what it is. It probably makes the most sense physically if the half-circles don’t move themselves but the Upper arms can slide along the surface of the half-circles, as if the half-circles had a little gap running down the centre of their curved sides into which the Upper arms have some sort of protuberance that holds them against the half-circles but not in place - although none of that is explicitly modelled in this quick test mesh.

Thanks for taking the time to look at this. Really. It’s 3am here (I’m in Australia) and I’ve got to get up in a few hours, so if I am absent from this thread for the next little while that’s why - but I’ll be back!

Here’s a solution, at least as I understand how you want it to work. Turns out 2.49b had more constraint options than I thought, which is good.

I assumed you won’t be opening the box any farther than in the example file. If you want to, I think the same design idea will work, you’ll just have to adjust a lot of the structure and constraint parameters.

The whole rig works by activating the bone that hinges the box lid. I animated the box lid opening and closing so you can see the action of the arms & slider more easily.

ArmsTest-Rev1.blend (1010 KB)

Let me know if a blow-by-blow description is needed.

P.S. Some of the limits used in the rig reference only World Space, so it may not be transformable as a unit and still work properly. But the same principles should work in Local Space as well, with some tweaking, if you want to be able to reorient the whole shebang.

chipmasque, I really have to thank you. To be honest, I was picturing in my head (and trying to acheive) something slightly different in the way the arms behaved where the upper arm meets the lower arm, but seeing this in action the way that you have done it, it’s absolutely perfect. I should be able to reverse-engineer what you have done here without a problem: thank you again. Just exactly what was needed. You are legend.

You’re very welcome, and thanks for the compliment, however mis-directed :wink: If you have any ?s about the rig, just ask, I’ll do my best to clarify.

Well, I am clearly missing something obvious. My apologies for the newbishness of having to ask for some more assistance with this thing (you can tell that I don’t have much experience with rigging). If you are still out there, can you please have a look at the attached file of the armature as adapted from your solution, and let me know what I have missed? It clearly isn’t quite working properly. I hope that you are still out there and are still willing to devote a little bit more of your time to a stranger’s incompetence.

Attachments

ArmsTest2.blend (125 KB)

The transition from World Space to Local Space operation required a bit more than just “tweaking,” it turns out. After screwing around with various kinds of constraints and having things act in very bizarre fashion (including Blender vomiting up a dependency cycle warning based on an IK Constraint that did not exist!), I finally resorted to my favorite constraint, Transformation. It’s sometimes tricky to use because it always works within ranges of values that can be difficult to establish, but it always seems to work properly, also.

In any case, now the rig is transformable. In the rebuild, I cleared the scale & location in order to be working with as few variables as possible, but you should be able to adjust as needed if you treat the Armature as an Object. I added in dummy objects that represent the parts of your mechanism that need to move.

ArmsTest2-Rev1.blend (142 KB)

I guess the upshot is that there is never really a single solution to a rigging problem; every time a parameter changes (such as World Space-> Local Space) it becomes a new problem and needs a new solution.

Thank you chipmasque… I should have provided the actual objects in their actual original position the first time… I apologize that you had to basically figure this out for me twice. I really appreciate your efforts though. If you’re ever in Newcastle, NSW, I’ll buy the first round.

I doubt I’ll make it down under, but you can just buy a round in my name instead (heh). Actually, it was a good learning experience. I enjoy rigging because it combines mechanical aspects (left brain happy) with being able to pose and animate my characters (right bran happy), so all in all, my brain’s more or less at peace with itself, which does help to get through the day.