using one animated rig for multiple meshes


i am wondering if it is possible to set up a template animation to animate a number of different meshes.

for example - i have a number of meshes - all of which need to be animated the same way. i would like to set up a master animation - but i am not sure how to best approach this. is it possible to animate with a single rig and import various meshes that have the same vertex groups?

is it even possible to have a number of different meshes in the same file using the one rig and swap them out? sorry for my ignorance but i would like to set this up correctly from the start.

i would greatly appreciate any advice / suggestions.

thank you.

Two ideas come to mind: (I’ve put food-for-thought search-keywords in bold.)

(1) Yes, you can parent more than one mesh to the same armature. (Or use constraints to do the same thing.)

(2) If the meshes in question truly are identical, you can define linked-duplicates to the one … and since they are, indeed, linked, it’s just like one thing being in more than one place at one time, motions and all. (See e.g. “dupligroup.”)

(3) You can also use proxies to create duplicates of things which can nonetheless be individually controlled.

Another thing to look into is “Actions” and the “NLA Editor.” You can define the various moves as actions, then apply them, perhaps with some variations, to multiple proxies of the same thing.

Look into some of the techniques used to do “massive animations,” say of a crowd of people or a flock of birds, where the objective is to have a large number of instances of things running around, all of them perhaps doing slightly-different things, all of them referencing a small set of definition-data that is ultimately defined only once.

Lots of possibilities here … Lots of ways, in addition to and including “using one rig for multiple meshes,” to achieve this effect.

thanks sundial - from the looks of it I think dupligroup is the better option as all the meshes will have exactly the same VGroups. i have done a search on dupligroup but am still at a loss as to how to set up the initial file as i cannot find any information relating to using it with rigs and different meshes.

do i set up an empty rig - animate it and then link the mesh i want to render?

or is it possible to link the rig to each mesh and any change i make to the rig updates the mesh files?

if anyone knows of a good tutorial relating to this i would be very grateful.

thanks again.

oh - i just did it. i just imported a different mesh into my animation - hid the mesh that was there and applied the armature to the new mesh and the new mesh is now animated.

actually that is not quite perfect - seems the mesh is imported, not linked - so any change i make to the mesh in the original file is not updated.

i then tried to ‘link’ the mesh as an object but unfortunately it does not allow me to add the armature modifier. is there a way to do this?

feel like i am getting there, but still missing something; probably obvious.


Tutorials that talk about “libraries and linking” also talk about groups. Basically try this:

(1) Select each object, armature, etc. that’s associated with a particular object and Add to Group. (Use any meaningful-to-you group name.) Notice the “Dupli Visibility” and “Set Offset” controls here.

(2) Now you can “Add…Group Instance” to easily add another group instance. If you take a closer look, you’ll see that it’s an Empty, with Duplication set to Group and the specified group-name entered into the selection-box.

Now, personally, I’d be careful about sharing literal armatures. It might work well but it might box you into a bit of a project-management corner later down the line. Take a look at “Actions” and “NLA Editor” at various places and explore those possibilities. Experiment with, for instance, physically-different armatures with identically-named bones, with actions that reference those bones being applied to them.

As programmers of a certain language are fond of saying “TMTOWTDI = There’s More Than One Way To Do It,” so spend some time exploring what’s the best way that works for you. (And, as other Blenderheads weigh-in on this thread. I’m hardly “the authority” here.) :slight_smile:

i think i need to do a short course on blender - i find it really difficult to understand the process i need to make this work. whilst i know my way around many aspects of blender quite well - such as texturing, meshes and even animation - i just don’t seem to be able to understand how linking rigs to external meshes work. as you say in point 2 - i can add group instance - but i just don’t get how this applies. it is the sort of thing that would ‘click’ if i was shown in a tutorial or short course.

but anyway - i have actually found a workaround for now. i have simply imported numerous meshes and applied the armature modifier to each. i can easily get away with modifying the various meshes in this one file as they are quite simple - just slight mesh variations and different UV Maps.

now, when i want to render a certain mesh, i simply hide / disable the other meshes and render. any changes i make to the animation to the rig is reflected on all meshes.

i know this is a hack, but it is actually quite effective.

i appreciate the help to at least get me to a workable solution.

i guess i have taken TMTOWTDI to a new level sundial. it’s probably the equivalent to repairing a leaking gearbox with a banana and some gaffa tape :wink:

thank you.