Modeling Optimized Characters
Manual     Reference     Scripting   
Unity Manual > Advanced > Optimizing Graphics Performance > Modeling Optimized Characters

This document is unofficially translated by users.Please see the original document here.

Please send e-mail to here, when you have any question about the translation.

Modeling Optimized Characters

Use one Skinned Mesh Renderer

Your character should use only a single Skinned Mesh Renderer. There is usually no reason to use multiple meshes for a character. Unity also has optimizations related to visibility culling and bounding volume updating which only kick in if you use one animation component and one skinned mesh renderer in conjunction. If you care about performance, multiple skinned meshes per character is not an option. If you use two skinned mesh renderers for one character instead of one, the time spent on rendering the character will most likely double!

Don't use many Materials

You also want to keep the number of Materials on that Mesh as low as possible. There is only one reason why you might want to have more than one material on the character: when you need to use a different shader (e.g. if you want to use a special shader for the eyes). However 2-3 Materials per character should be sufficient in almost all cases. If your character is carrying a gun, it might be useful to have the gun a separate object, simply because it might get detached.

Reduce amount of bones

Medium games use bone hierarchies with 15-60 bones. The fewer bones you use the faster it will run and with 30 bones you can do fairly good quality. Unless you really have to, we strongly recommend you use around 30 bones per character.

Polygon count

How many polygons you should use depends on the quality you are going after. Anything between 500-6000 triangles is reasonable. If you want lots of characters on screen, you will have to sacrifice in polycount per character, if you want it to run on old machines, you will have to use less polygons per character. As an example: Half Life 2 characters used 2500-5000 triangles per character. Next-gen AAA games running on PS3 or Xbox 360 usually have characters with 5000-7000 triangles.

Separate out IK and FK

Separate out Inverse Kinematics (IK) and Forward Kinematics (FK). When animations are imported the IK nodes are baked into FK, thus Unity doesn't need the IK nodes at all. You can either kill the GameObjects in Unity or the nodes in the modelling tool. By removing them, the IK nodes don't need to be animated every frame anymore. For this reason it is a very bad idea to intermix IK and FK hierarchies. Instead you should create two hierarchies: one strictly for IK and one for FK. This way you can very easily select the whole IK hierarchy and delete it.

Use reusable rigs

Create a rig which you can reuse. This allows you to share animations between different characters.

Name bones correctly

Name bones correctly (left hip, left ankle, left foot etc.). Especially with characters, naming your bones correctly is very important. For example if you want to turn a character into a Ragdoll you will have to find the right bones for each body part. If they are not named correctly, finding all the body parts will take much longer.