Monday, June 25, 2012

Soft Feet {



I'm currently working on adding details to a quadruped rig from my senior thesis film "Gauntlet". I didn't get as much time as I wanted rigging him, so I decided I'd enhance a few parts. One part that bothered me about this character was his feet's interaction with the ground. So I set out to fix it by adding deformation to the foot to simulate the pads squishing on the ground. The animator can get the foot relatively realistic and with minimal clipping, but having a touch of deformation sells the impact.

The simple approach would have been to just create some NURB deformers and give the animator control of the squash and stretch of the foot. However this would add even more work to the poor animator who is tasked with a walk cycle of a quadruped. So I decided an automated/simulated solution was ideal in this scenario.

Now I needed to avoid the messiness and expense of making the entire body into an nCloth. The body mesh is quite high poly, and I only wanted to simulate the feet. Thus, I decided to only simulate the pads of the foot and use those as influences on the main mesh. The pads are extremely low poly, so they simulate almost real-time. And they also more correctly describe the foot of a lion (my inspiration for the feet). The one trick here is to make sure you check on "Use Components" in the skinCluster of the main mesh being influenced. This means it will use the components of the influence object and not just its transform.

Here is a quick video showing the deformation effect:




And here's one on a more bumpy surface (it is simulated after all):


So, to replicate, follow these steps:


  1. Start with a skinned mesh (MESH). Create NURB or polygonal deformers (DEFORMER). 
  2. Select each DEFORMER and make them into nCloth.
  3. Select each DEFORMER and create transform dynamic constraints (DYNCONSTRAINT).
  4. Parent or parent constrain the DYNCONSTRAINTs to the appropriate bones. This makes the DEFORMERs move with the animation rig.
  5. Tweak the nCloth parameters to get desired effect. In my case, the "Pressure" settings were important to getting my deformers to maintain volume when squashing. 
  6. Add the DEFORMERs to the skin of MESH using "Add Influence".
  7. Before painting weights for them, select MESH and go to the skinCluster attributes. Check "Use Components". 
  8. Paint weights for each DEFORMER. 
  9. Tweak weights and nCloth settings until desired effect is achieved. (Note: You can also tweak the "Thickness" parameter inside "Collisions" section of the nCloth in order to align the collision of the deformer with the actual mesh-ground collision.)
Hope this helps anyone wishing to add a little simulation to their rigs!


-K

No comments:

Post a Comment

Please be courteous and stay on topic. I will be happy to answer any question I can. And I am always open to discussion and respectful criticism. Thanks for commenting!