I am having a problem figuring out how to model characters to account for swappable meshes (changing shirts / armor) in the most efficient way. To start I am using blender to model my characters and have no problem modeling the base mesh or modeling the clothing or animating the model if it is one object. However, how do I model in such a way that I can reuse a lot of assets. I know it is possible to model every combination as a whole and rig and animate that but that seams incredibly inefficient (10 types of tops 10 types of bottoms is what 100 models wit there own animations). I have looked at the way that the character customization tutorial models there character and they have one rig the swappable pieces in their own object and one set of animations for that rig. I am just now sure how they where able to animate with each mesh as its own object and not have a seam. If anyone has any advice on how to accomplish this I would appreciate it.
Blender now has a way to do this (2.66 and greater I think, I am using 2.67b). There is a tool in the weight painting section called transfer weights.
- Select your mesh that has the weights you want to copy (for me its my base human mesh)
- Shift+click the object you want to transfer the weights to (like a shirt, be sure the item is on the object where it should be to transfer the weights correctly)
- Go into weight painting mode.
- Click on face selection mask (its right next to the mode transfer button (object, edit, etc…) and looks like a cube with a red and white checkered face)
- Press a to select all (the selected faces are the only ones that will get weights applied to them so deselect some if you don’t want to transfer weights to that face)
- Click Transfer Weights (Its in the menu where you can select your brushes for weight painting scroll down some and you will find it, left side of the screen for a default setup)
- At the bottom of the menu where the Transfer Weights button is there should now be Transfer Weights options visible.
- Change group to all (this will paint all vertex groups, the other option is if you only want to paint some)
- And now you weights should be painted, cycle through the vertex groups to verify what has been painted where (you may at first see all blue, that is because you have a vertex group selected that didn’t transfer any weight, just click through them and you will see the weights)
- Finally add a Armature modifier to your object with its new weights and set the target to your armature.
There everything should be good to go!
The following is my old answer, not nearly as good but just incase it helps anyone:
Not sure if this is the best way, but it at least works.
How I was doing it (the wrong way)
- Modeling base mesh - Separating the areas (Head, chest, legs, etc...) that I wanted to be swappable into different objects. - Rigging the objects - Trying to animate The above workflow causes all kinds of issues
The way that appears to be working
- Model the base mesh - Rig the base mesh - Animate - Separate the areas I want to be swappable into a different object - Use the objects I just broke the base mesh down into for creating the other meshes, like clothes
I am by no means a great modeler / animator so if there are better ways pleas let me know.