As an Update, I decided to experiment with joining all the meshes into a single mesh. The vertex group naming was very tedious, but perhaps it will still be worth it.
I have met another problem, however. As I have wrestled with the very capricious nature of limits, stiffness, etc. for IK chained bones, I have found that armatures in Blender seem to behave in a very inconsistent nature. But before I go pointing fingers, I need to ask what I might be doing wrong.
Here is an example of one problem I am experiencing:
In the first image, the relevant bones of the armature are displayed on the robot. I have limited the X rotation of the left “foot” bone, as shown by the red arc.
The second image shows the same foot at the side view, with the red arc.
In the third image, I have moved the IK target beyond the limit of this arc. But, as you can see, the foot bone still follows the IK target beyond its limit.
It seems like that should be so simple a concept, and yet it’s not. The only explanation I can think of is that perhaps the Y axis (twisting) rotation of the hip bone offsets the foot’s x axis rotation, but as you can see the arc already compensates for that.
Other problems I have been experiencing include:
-Any setting of the “stiffness” of bones tends to be completely ignored (I try the stiffness in various bones in the chain at 0 and .990 with no change in behavior. So, for example, the hip bone shown above readily twists along its Y axis despite the fact that I have its stiffness for the Y axis set at .990. Do I misunderstand the purpose of stiffness, or is this a genuine inconsistency?
-Some bones, such as in the arm IK chains, do follow their limits, but for reasons unexplained will breach their limits when the IK target is moved to certain areas. This happens when I experiment moving the sword IK bone from the front (numpad 1) view: the shoulder ought to move only a little bit (like, 10 square degrees or something), but it sometimes “dislocates” itself.
-As my robot has no natural lego pieces that allow fluid leg movement, I am using b-bone segments to “bend” the bricks. The b-bone segments seem to be working fine for the “hips,” but for some reason they stopped working for the “foot.” The “foot” brick used to bend when its respective bone was rotated, but stopped doing so after I made some changes to the rig. The above images show the bone rotated in the same way, except the “foot” brick area is just rotating, not bending. Is this something that requires vertex painting, or is it in my armature? I didn’t have to use vertex paint to get it working the first time.
I have attached the .blend file containing just the armature. Please note that the armature is still under development and some parts, such as head movement, have not yet been implemented. Also note that I have moved irrelevant bones to other layers of the armature, so if you think some bones are missing, toggle between layers 1, 2, and 3. (sorted by relevance: 1 - IK bones; 2 - major segment bones; 3 - brick by brick bones).
Attachments
visor_rig_problem.blend (164 KB)