Parenting Armature to Seperate Objects (blend. file included)

Normally when I animate a character its all one mesh, so I would just ctrl + P to Parent the armature to the mesh, but when doing this robot, its a bunch of seperate objects or meshes. So how do I parents all these seperate objects to the armature?

Also is there a way to make good robot hinges so that when I animate this it looks like a strict hinge bending and not a gradual or soft bend.

Heres the file and thanks.

Attachments

alien human 83 armature POST.blend (704 KB)


You have a number of options:

  1. More than one object can be made a child of the same Armature
  2. Join all the objects into a single object and make that a child of the Armature
  3. Make each part an child of the Armature as an Object, then put an Armature modifier in the stack for each object and specify the same Armature for each

I recommend #3 because it’s perhaps the most flexible. You’ll need to create Vertex Groups in each body part. For rigid parts moved (deformed) by a single bone, this can be the entire mesh as a Vertex Group. Name the VGs according to the bones in the Armature. I don’t recommend using any of the “automatic” weighting options (like Bone Heat) because that distributes the weighting in a way that might not be right for the more rigid robotic look you seem to want.

For the rigid parts, just assign a weight of 1.0 to the entire Vertex Group, named for whatever bone is to control that part. With no other weighting, that bone will move the part as a rigid body. But be careful of the parts intersecting as they move under armature control – you may have to do some re-modeling to account for this.

If you have any parts that should flex (like tubes and such), they can be weight-painted after being given the appropriate Vertex Groups.

Parenting the Armature to a body part “as an Object” is one of the options that pops up when creating the Parent/Child link. Pretty sure you’ll need it for when the entire Armature moves, so the parts will follow.

you can parent the mesh to the armature the same way you did with the single object, just do it to all of the objects.
Select name groups, then create a vertex group for each mesh with the same name as the bone that will control it. Then assign every vert in the mesh to a weight of 1 in that vertex group.

EDIT chipmasque beat me to it :slight_smile: but another option would be to be in pose mode for the armature, then select an object hold shift and select the bone you want to controll it and parent it. Any of the above mentioned methods would work.

Duh, I forgot the best one :o Asano’s right, that’s a good approach for the fully rigid parts also, maybe simpler than those I listed.

Wow! Great advice. Works great (rigid parenting…) but still a problem. Im going to put it in another thread here. Thanks to both of you.

Hey,

it’s sort of off-topic but I have the exact opposite problem. I need to define different bones in an armature as a separate object and have them deform the same mesh.

I guess that from a designer point of view this doesn’t not make much sense. I need to use a script to assign positions to each bone over time, so they move rather independently from each other; I just want to take advantage of how easy it is to deform a mesh with armatures.

I’m sort of a noob, so I can use all the advice you’ve got :stuck_out_tongue:

Well, You could do it with a mess of armature modifiers. Just make each bone its own armature. That’s the only way to make them seperate objects if that’s what’s required for your script. Then just add an armature modifier on the object for each armature that you create.

thanks Asano!

I had been using Ctrl+P to make parents. do you know of a good tutorial that I can use to add armatures as mesh modifiers like you said in a more or less automatic way (as in bone heat)?

Unless you write a script, I don’t think there is a way to automatically generate armature modifiers. You’ll have to add them in one by one.

If you mean automatically skin them to the mesh, then yes, in a way. Armature modifiers default to having envelopes activated. It depends entirely upon what your object/scene is as to weather that will be useful or not. Envelopes usually are pretty useless, but not in all cases.

Yes, exactly, I meant automatic skinning. The model is a human - a woman, actually - and bone heat worked rather well, I just had to make a few adjustments. Do you know if there’s a way to use this option after changing envelopes to vertex groups in armature modifiers?

thanks for all yor help :slight_smile: