beau:
You’ve basically got it. However, exactly how it works depends on exactly how you end up importing/appending via LINK and how you’ve structured elvis and his clothes.
The key words here are APPEND and LINK. When you do the File->Append or SHIFT-F1 action, you have a choice to add the models by either APPENDing them or LINKing them (see the buttons at the bottom of the window that appears when you do this). If you APPEND, the items you append are copied from the source .blend file into the current .blend file. They then only change if you APPEND them again.
If you LINK the items from the source file (elvis.blend) into your current file (memphis.blend), only a reference to those items are made in mempis.blend. They will change to the form they are in their file (elvis.blend) when you read your file (memphis.blend).
Another way to think about this in blender terms is that APPEND is like doing SHIFT-D, i.e. a duplicate by making a complete copy of the Object. LINK is like doing an ALT-D, i.e. a duplicate by just making a new Object refer to the same data (mesh, armature, etc.) as the original Object.
For example, lets say you modeled your elvis with a jumpsuit on and imported the elvis via a LINK into memphis.blend. If you then later edited elvis.blend and changed the jumpsuit into a smoking jacket, then the next time you loaded memphis.blend, elvis would be wearing his smoking jacket.
However, how this actually happens depends on how you actually do this and there are quite a few options, not all of which I’ve explored. In elvis.blend, you’re likely to have an Elvis Object which has as its child a Mesh called Elvis. Its important to understand what is associated with Obejcts and what is associated with Meshes, Armatures and other blender primitives.
An Empty is an Object without data/a primitive associated with it. When you add a Mesh to your scene, what you’re really doing is adding an Object that has a Mesh associated with it. When you add an Armature to your scene, you’re adding an Object that has an Armature associated with it. Certain attributes are associated with the Objects and other attributes are associated with the data/primitives.
The exact procedure you use to add Elvis from elvis.blend to memphis.blend makes a difference in how you can use elvis and what is actually LINKed vs what is APPENDed. Also, I suspect, but haven’t played with it that some of the user preferences affect this also.
My procedure for doing this is as follows. I SHIFT-F1 and select the file I want to get the model from. I then go into the Object “directory” of the .blend file I’m importing from and select the armature(s) and mesh Objects I want to import. I then import these via APPEND. Now this actually copies all of the items in their entirety into my current .blend file, but we’re not done yet.
I then rename the Datablocks for those imported objects by adding an X to the names. This is the left most name pull down menu under F9. Check the tooltip, it says Datablock in it. This might not be necessary, but I seem to have fewer crashes when I include this step.
Then I SHIFT-F1 and pick the elvis.blend file again, but this time I click on the LINK button. Rather than importing from the Object “directory” in the elvis.blend file, I now import from the Mesh and Armature “directories”. This only brings in the Datablocks/primitives, i.e. the actual meshes and/or armatures and not the Objects they are associated with. When you do this, you won’t see anything added to your 3D windows as the data you just imported isn’t associated with any Objects yet.
Once those datablocks/primitives are LINKed into my memphis.blend, I then select my armature and in the Editing (F9) panel, in the datablock pull down I switch the armature associated with the object to the one I just imported via a LINK. I then do this to the remaining armature and mesh objects. When I’m done with this, I have new Objects in my file that are copies of those objects from the elvis.blend file, however, the actual meshes and armatures are linked and changes I make to those in the elvis.blend file will be propogated to memphis.blend the next time I open it.
Why such a convoluted way of doing things ? Well, it has to do with how blender manages the data and how it works when you import via LINK vs. APPEND. Importing by APPENDing objects allows you to make any changes to those object you want. This makes sense as afterall, they were simply copied from the elvis.blend file into memphis.blend file and there is no longer any relationship between the two.
Importing objects by LINKing them causes all changes to propogate, however you can’t even move the object or change the actions on the armatures. Pretty useless in most situations.
If you understand how blender actually manages the data its working with, you can get to a middle ground where most of the changes you make in elvis.blend propogate to memphis.blend. However, I haven’t been able to get absolutely everything to propogate because of where certain attributes actually connect.
Remember when you added the Evlis mesh to elvis.blend ? If you started with a plane, you ended up adding an Object called Plane that had connected to it a Mesh called Plane. If you wanted both to be named Elvis (as I would), you had to edit both those name fields in the Editing (F9) window and change Plane to Elvis twice. Well, the left most name there is the name of the mesh. The name just to the right of that is the name of the Object.
Remember that an Empty is just an Object without a datablock (mesh, armature, etc.) associated with it. What can you change on an Empty ? You can rotate, scale, translate, change layers and maybe a few other operations on an Empty. All of that data is stored directly in the Object.
When you have a Mesh in a scene, it actually has an Object that contains those attributes above as well as a datablock that is a Mesh. The Mesh actually contains the vertices and some other data. This is actually part of the problem. Some of the stuff that should probably be associated with the Mesh, like vertex groups, are actually sort of associated with the Object. When you import a Mesh and not its associated Object, you don’t get the vertex groups. That why you have to APPEND the Mesh’s Object before you LINK the Mesh itself and then connect the LINKed Mesh to the APPENDed Object. The same holds true for constraints on Armatures.
That’s why that “extra” step above where I APPENDED the Objects first is needed. If you have no constraints on your armatures and no vertex groups in your meshes, you wouldn’t have to do that step.
Other attributes like materials seem to suffer a bit from the same issue about what they are associated with. So, if Evlis had a blue jump suit and a blue smoking jacket, i.e. the exact same material, you’d be ok. But if Elvis had a blue jumpsuit and a green smoking jacket, you’d have to APPEND the Elvis object again and then LINK the elvis mesh and connect them together. ALternativelyl, you could import via APPEND or LINK the new material and then apply it, but that starts to defeat the whole purpose of doing this.
These aren’t concepts that everyone will grasp easily and blender could handle them better than it does. I hope my attempt to explain this has made it clearer, but I’m afraid I may have just muddied the waters more than cleared them, :).