First off, what is file referencing and why is it so valuable?
Referencing allows you work on temporary assets that can be updated in your existing file throughout the project pipeline. This process can blur the point where one artist's work is done and the next can start, as in the model is finished and is now ready to rig. In this write up, I'll be referring to Character Rigs being the file that's referenced, however you can also reference environments, light setups and many other files.
How referencing applies to an animation pipeline.
You've just received a new character rig and are assigned a new animation shot. So you open the rig file, start setting keys and crafting your animation. A few hours pass when you realize that neck control doesn't work,the right fingers are not bound to the joints, and the UVs are all goofed. So now, to save your animation, you'll have to fix a rig that has been animated and manipulated out of base pose in order to move forward. Not to mention, you'll need to redo these changes or strip out the animation to set the rig back to default, to prevent having to redo these changes on the next animation. A cleaner way of working in this situation is to use File Referencing. With the rig referenced into the animation file, you can save your existing animation, go fix the rig in its own file, reopen your animation and the changes apply themselves.
How referencing can save time.
Once a character model is approved or even their proportions are approved, an Animation rig can be created using that base mesh. This will not be the final rig with all the bells and whisles but will be enough to allow the animator to start previs or blocking in animations. Now you have three different facets of the pipeline working at the same time, instead of "one ends, the other begins". While the model is being finalized, textured, and so on, the rig can be updated accordingly with secondary elements, all while the animation is being created. Once the model is updated in the rig, the next time the animator opens their animation, the latest rig and model will already be there. This sort of overlap can last all the way through a project. Facial animation, mesh swapping on existing rigs, spot fixes on the bind, and other updates can be seen on existing animations all with out transferring the animation to a new rig or having to go in and fix individual files. All and all, this gives the modeler more time to work on the model and see how it's being used, allows the setup artist to build to the animator's need and work within a clean, non animated rig file, and lastly gets rigs to the animators faster to produce initial work and test the setups the technical artists are creating. Along with allowing more artists to work sooner, referencing saves time by creating smaller file sizes, thus reducing save/load times. Since the rig file is not actually in the animation file, the size of the animation file is very small. You are no longer saving the rig in each file over and over, even more beneficial if the scene has more then one character. This same process is great for a heavy environment. Since the animator will probably only need to know the ground plane and the objects the character interacts with, having tons of buildings and set dressing will only slow down the playback and bloat the file size.
The importance of a clean Rig file that's being referenced.
Before you start referencing, it's best to have a clean file that's brought into the animation scenes. Here are some general guide lines to touch up a rig file to make it as solid as possible to prevent errors and breaking.
Making updates seemless in the pipeline.
Now that you have a clean Rig file that's ready to be referenced, it's time to make sure that any updates you do will allows go to the animator's file. The easiest way to make this possible is by only having a single Rig file per character, named accordingly. The rig file, "Ogre_Character_Rig.ma" should be your master rig file naming scheme. Though it may be tempting to start putting version numbers on the rig's file name as its been updated, this will actually cause more headache then its worth. Heres why:
How to setup a File Reference.
As your about to start an animation, you should have a character rig file as a seperate file, for this write we'll call the rig file "Ogre_Character_Rig.ma". So, to create a reference:
So what have we done and why.
By resetting the options, this clears any custom settings that might have been set. Once you get familiar with this process you will no longer need to do this. However, for this example this makes sure we're all using the same settings. Next we resolved all conflicting nodes with a string instead of the file name. There are a number of reasons for this, such as:
The Reference is Set, let Animation begin.
At this point, animation can start and whatever changes are made to the asset in the mean time will be seen as the rig is updated. Some more details to keep in mind:
Some final notes and work arounds for Referencing.
Rig File > Animation File > Lighting File
Having the files get deeper then this, errors start occuring with the sheer number of prefixes and layers of edit seen in each file. In this case, less is more, so try to work as clean and optimal as possible.
Closing thoughts.
As seen above, referencing can seem to be a daunting task, but I assure you, it will make your life easier. Having a smooth pipeline and allowing artists longer to work and adjust as the project calls is worth the time spent at the beginning. A stitch in time, so to speak.
Source ... Kiel Figgins !
Click here for his post