Speed Up Your Dynamics Simulations with Proxy Objects
Dynamics are used to add real-world physics to CG objects. You can use dynamics to have objects fall realistically or for a character's clothing to fold in natural ways, and even to simulate jiggle effects on pliable surfaces like skin. However, since complex algorithms are used to compute this behavior, it can often take a lengthy amount of time (all dependent upon the complexity of your scene) for your system to complete the solve. The good news is that there are ways to trim away time during these simulations. Let's have a look at a few ways you can accomplish this for both rigid and soft body types.
Proxies for Rigid Dynamics
For active rigid types, e.g., simulated hard-surface objects like rocks or metal, you can apply dynamics to stand-in objects, or proxies. These stand-in objects match the form of the objects that you'd like to simulate. Since the stand-in object typically has a lower poly count, it will simulate faster than its high-res counterpart. Making the use of stand-ins a practical solution for long simulation times. After refining the dynamic properties of the stand-in object, you'd then want to attach your hi-res object to follow the transformations of the proxy. This can be achieved a few ways:
1. The hi-res object can be parented to the proxy. 2. You can constrain the hi-res to the proxy object.
With option two, the use of constraints is a bit more flexible because you can disable the constraint at any time. This gives you complete control over the transformations of the hi-res model and more so, the constraint's weight property is keyable. The constraint's weight property regulates the amount of influence the constraint has over an object. Which means that you get to decide the length of time the hi-res follows your stand-in object.
If the trajectory of the hi-res object must change, you can always key the constraint's weight at the moment when the object should no longer follow the proxy object's path. You have not such control with option one. While parenting definitely has its place, when it comes to attaching a high-res model to the proxies transformations, option two gives you much more flexibility. So now that you have an idea of how proxy objects can help you save time when simulating hard-surface dynamics, let's learn how this same concept can be used for flexible objects that should bend and fold realistically.
Proxies for Soft Dynamics
The workflow for setting up stand-in objects for soft or pliable surfaces like clothing or skin is similar to the setup process for hard-surface dynamics, yet there are a few noteworthy differences. Since soft dynamics influence the shape of an object (unlike rigid dynamics that influence an object's transform node), you need to consider how the soft surface will conform to the shape of an underlining object known as the base mesh. This base mesh can be as simple as a table and as complex as a deforming character. Let's focus this section on the more difficult of the two: a character.
Character models tend to have high poly counts, which is due to the amount of detail needed across the model in order for it to look as natural and as appealing as possible. Because of this high poly count, simulating clothing on geometry like this can be very time-intensive. Since the software has to evaluate each vertex on both the character and clothing, along with several other important properties that have been set in order for the clothing to deform naturally across the character.
Thankfully, proxies can be utilized here, as well, to cut down your simulation time significantly! Let's break down the process for setting up a proxy system for clothing using the scenario above.
First, you'd create a proxy mesh, or low-res version of your model for your clothing to interact with, so it can simulate along a form that is nearly identical to our your hi-res mesh while allowing us to save time as the clothing is solved since there are fewer vertices to evaluate. You could then skin the proxy geometry to deform with the character's skeleton so that the proxy can produce the same shape changes as the high-res model.
This is necessary to create the illusion that the clothing is being influenced by the hi-res geometry. You could even take it a step further and create a proxy cage for the hi-res clothing, which can improve performance if setup properly. With this workflow, the proxy would be simulated and the hi-res clothing would be "wrapped" to follow the deformations of its proxy counterpart.
Do keep in mind that these techniques can work wonderfully for animated sequences that have full-body camera angles. However, for medium or closeup shots, where much detail is shown, it might be best to run your cloth simulation directly on the hi-res geometry in order for the simulation to produce the most natural results possible.
Using proxies in this example might cause the clothing to appear slightly detached from the character model, thus breaking the illusion that the cloth sim is intended to convey. With that said, you might find that the implementation of this proxy method will help you save a lot of time for a majority of your shots, and because of that, it should always be considered. Even if it can't be used for "hero" shots, it might just come in handy for background elements that require cloth sims.
Without ClothWith Cloth
So, to bring it home, remember that proxy objects can be used to help trim a lot of time from both rigid and soft body simulations. Also, remember for closeup camera angles, it might be best to apply dynamics directly to your hi-res models in order for your simulations to have the greatest quality. However, for all other shots, consider implementing the proxy workflow, because in the end, it can help you save a lot of time and effort! To learn more about cloth dynamics, check out nCloth Techniques for Characters in Maya.