Lesson 3 : Optimize rigging scene
In this course, we will learn how to optimize a rigging scene to make it as efficient and optimal as possible. This is especially crucial when dealing with scenes that have a large number of meshes and intricate rigging details, as optimization becomes essential.
Table of Contents
1. Why optimize a rigging scene ?
2. Performance optimization.
3. Ergonomic optimization.
4. Sources
1.Why optimize a rigging scene ?
Optimizing a rigging scene is really important. It needs to be optimized for good performance so that the animator can work under optimal conditions. This will ensure the smooth progress of the film production.
​
​
Of course, the more organized and neatly arranged a scene is,
the easier it will be for you to navigate within it, and it will also
be easier for others. In this course, we will specifically focus on
rigging in Maya.
​
Optimizing rigging scenes is crucial for ensuring fast and stable
performance. Here are some tips to help you optimize your scenes
when publishing your scene after you have validated everything in it:
2. Performance optimization
Use lightweight constraints: When attaching objects to controllers in your rig, opt for lightweight constraints. Avoid using more complex constraints like Maya's native constraints.
Indeed, Maya's constraints are quite old and resource-intensive. I recommend creating your own matrix constraints using nodes. This will be 100 times more optimized than Maya's constraints.
don't do this
do this
the weight of 'target[1]' is 0.5
Max deformers.
Limit the number of deformers: Deformers are powerful tools for animating characters, but they can also slow down performance. Restrict the use of deformers in your rig and opt for lighter-weight deformers whenever possible.
Max influence
Use optimized skin weights: When creating skin weights for your character, make sure to optimize these weights to reduce the number of influences per vertex. The fewer influences there are, the faster the performance will be.
don't do this
do this
Delete Unused Nodes
Delete unused elements. Go through your scene and remove any objects, materials, or lights that are not being used. This will help reduce the size of your scene and improve performance.
​
For example, in Maya, there is a button in the toolbar to do this. If you go to the Hyper Shade and click on "Delete Unused Nodes", Maya will automatically remove all unused materials and DAG nodes from the scene.
However, Maya will not automatically remove any non-DAG nodes. You will need to either use a script or manually go through and check if any nodes are still useful to you or not.
In Maya, if you have empty nodes lingering around or elements like "Locator" or "Shape" nodes that are completely unnecessary, delete them. Of course, make sure that these elements are truly not needed
Delete empty nodes
One thing to also know in Maya is that for every created element, there's a corresponding node. Maya must compute or interact with each one, so the fewer nodes you have, the more optimized the scene will be.
For instance, if you create 3 consecutive transforms, Maya will have to calculate three transforms instead of just one. This also applies to meshes; the more meshes you combine, the faster Maya will be able to compute, as it won't need to calculate the transform node associated with each shape.
​
For example, if we have 15 meshes, Maya will have to load 15 transforms and 15 shapes. However, if we merge these 15 meshes, Maya should only have to load one transform and 15 shapes. Of course, it's important not to overdo it, as having all the shapes in a single transform can sometimes be restrictive for rigging.
don't do this
do this
One thing you can do is create controller joints/bones. Essentially, to do this, you need to instance a shape into a joint/bone. This allows you to bypass the need for a transform node for the shape of a controller.
To do this, you will need to use a script.
Use Unbind Skin
One important thing to be very careful about is when you create skin clusters. If you want to unbind your skin cluster, it is imperative to use the "Unbind Skin" option and not delete the history or anything else. Because if you don't go through the "Unbind Skin" process, Maya will create an intermediate shape between your base shape and your deformed shape. This can lead to significant issues in your rigging scenes, especially if you are working with references.
​
If you don't unbind properly, when you reload your reference, your rig won't be modified correctly. Instead of your referenced shape serving as a reference for your skin cluster, it will be the shape that you deleted the history on, which is your old deformed shape and is not referenced in the scene. This shape will be the reference for your skin cluster.
​
So, you can reload as many times as you want, but your skin cluster will not be updated with the new reference because it will be using an intermediate chain that you created by deleting the history.
don't do this
do this
Import References
What you'll also need to do is, if you have referenced scenes in your main scene at the time of publishing, you'll either need to import them or remove them if they're not needed. This is because a referenced scene includes all the nodes from that scene. So, if in the referenced scene, there are unnecessary nodes or groups, they will also be present in your final scene. Therefore, it is imperative to either import your referenced scene or delete it if not needed. Importing referenced scenes is often the first thing to do when cleaning a scene during the publishing process.
don't do this
do this
3. Ergonomic optimization
A well-optimized scene is not only about performance; it's also about how you organize and name it. Indeed, a poorly organized scene will be much more difficult to use than a well-named scene with all the elements properly renamed. It's important to remember that each element in your scene should have its own distinct name. Avoid using the same names exactly, as this can create issues when exporting as Alembic, for example.
​
For instance, in Maya and other software, locators will have the prefix "loc_" and the group's name, while joints will have the prefix "jnt_" and for surfaces, "surf_" etc.
don't do this
do this
delete Namespace.
You'll also need to remove the "namespaces." This is more relevant to Maya. When you import something into Maya, it will automatically create a "namespace" (you can also create your own "namespaces"). They are very useful to prevent breaking your Maya scene. However, when it comes to publishing a modeling scene or similar, you should remove them to keep everything as clean as possible.
don't do this
do this
name scene
Something not directly related to optimization but still worth mentioning is the importance of doing incremental saves. Creating multiple versions of your scene allows you to backup and maintain a history of everything you've done, making it easier to revert if what you've done doesn't work out. And of course, it's crucial to name your scenes appropriately, avoiding accents, spaces, and using underscores "_" instead.
don't do this
do this
Conclusion
I've listed quite a few things for you that will help you optimize your scenes properly. Of course, there are other ways to optimize even further. It's important to remember that this course is here to introduce you and provide the basics of optimization in your scenes, as this is crucial for effective work.
I hope this lesson has served you well !