by Adnan Hussain
In this lesson I’ll go over a streamlined process to create animation models, and even include a script for 3DS Max that can help automate the process for you.
Why create an animation model?
So you just finished creating that amazing new character, with 600 million polygons, muscle rigging and every bell and whistle under the sun. You render it and it looks amazing. Try animating it and watch it chug. When doing character animation, it is best to have a simple, low resolution model with a fast performance rig. You can animate with the light animation rig and then load that animation on the heavier render rig in a separate scene file for where you do all your lighting and rendering. No one likes doing extra work, so let’s see how we can minimize the extra work up front and still reap all the benefits in performance. Trust me, the bit of extra prep work really pays off when you start animating. Even better, you can use this same method to prototype models in the design stage to see if your character design works the way you want in 3D. See if the proportions look good in performance. It is also a great way to test out an animation rig before your character model is finished.
Simplify your Rig
I won’t get into this in this lesson, as it is specific to your rig, but your first step should be to remove any extra bits on your rig that you don’t need for animation. If you have a lot of expression driven parts that are only for deformations, you can get rid of that and possibly speed up the performance of your rig during animation. (The above is just an illustration to show the idea. I actually did not use any complex deformations on this character beyond skinning. I’ve used Brad Noble’s excellent rig, which you can download and purchase a resizing script for here).
Simplify your Model
Start with the lowest resolution model that matches the shape of your final model. If you have a cage that is subdivided at render time, you can use that or use polygon reduction tools like the multires modifier to get a simple model that gives you the right volume and shape, without all that extra overhead. Try and keep enough resolution so the model can be broken up into parts for each joint in your skeleton. You can even attach objects, like the eyebrows, modeled hair, nails into one object.
Slice it up
You can manually break the model into parts and parent them to their corresponding bones in your rig to get a pretty light weight setup that is perfect for animating. Without all those complex deformations, in most cases it should play in real time in your viewport, which is perfect for animating.
Boo extra work, Yay MG Slicer Maxscript!
(Download maxscript mg_slicer_v01.zip)
Now that you get the basic concept, let’s use a script to automate the process. As I’m building up the pipeline for my next film, I decided to write a script to help automate this tedious process of breaking up a character model, naming each part and parenting it to the corresponding bone. Here I’ll go over how to use the Mg Slicer maxscript to help you automate the process in 3DS Max.
Behold, the MG Slicer script interface:
Depending on how you work, you don’t have to use all of these buttons, but I’ll go over what they do.
This first set of buttons sets some variables, or gives the script information it needs to work its magic.
Char String: Type in a name or code. For example, if your character is named Monkeytastic, you can write something like mks and hit <enter>. This will be used later for naming an optional slice file and for naming the sliced parts.
Set Variables: This is a button I use internally. Most people can skip over this one. If you know a little scripting, you can customize the function in the script code to predefine the variables set in the next two buttons with this button.
Set Slicer Objects: Select the objects that will define how slices are cut (in most cases this would be the bones in your rig), then click the button.
Set Objects to Slice: Select the objects you want to slice (this can be the body, clothes etc), then click the button.
Attach Parts: In case you need to attach multiple objects into one. Select the main object, then ctrl select additional parts to attach to it. For example, I selected the character body, then control selected eyebrows, hair and nails, then clicked the button. This attached the parts to the character body. If you use this, after attaching select your objects to slice and click Set Slicer Objects after attaching them.
Create Material: Creates a multimaterial based off the number of Slicer Objects you have set. This will be applied to the parts once they are sliced, so click this before continuing.
These buttons are for breaking the model into parts.
Create Slices: Click this button, to take your Objects to Slice and divide them by assigning material ids to faces based off the closest Slicer Object. This can take a minute or longer, depending on how many polygons the models have.
Once slices are created, you should see different colors for regions defined by different matIDs. The automatic process does its best, but you’ll probably want to do a little editing to get it just right.
The next two buttons will help you edit matID assignments before you actually break the models up.
Get MatID: Select a single face and click this button to store the current matID number.
Save MatID: Click to assign the Get MatID saved material ID to the selected faces.
Save Slices: Saves the matID slices/id assignments to a text file which can be loaded.
Load Slices: Loads a presaved matID file.
Break Slices: Once your matIDs are set the way you want, click this button to break the model into pieces based off Material IDs and parent them to their corresponding Slicer Object (bone).
There you have it. You should now have a light weight rig with a model broken up into parts for fast animation performance.
I hope you found this lesson helpful. Feel free to leave a comment below or send me an email with your thoughts and suggestions.
The idea for this material ID based approach to cutting up the model came from a page by the very talented Kai Stavginski. He wrote a similar tool according to the page, but as far as I know he never released it to the public, so I wrote my own. I don’t pretend to have written a better tool by any means. I just needed it for my own use, and so here it is available to all of you as well.