Authors
Curtis Andrus (MPC R&D)
Koichi Tamura (MPC R&D)
Abstract
In order to enable the simulation of flesh dynamics, and simplify the process of intersection cleanup for the numerous CG characters in Detective Pikachu, MPC R&D developed a new tool called Sumo.
This allowed us to automatically handle effects on a large volume of shots that would have previously required hours of artist work.
Background
MPC Film’s work on consisted of many shots with a large number of fully CG characters. TechAnim artists would have spent several hours per-shot cleaning up the character geometry (e.g. self-intersections and intersections with external geometry). To achieve the right level of realism, we also needed to simulate secondary motion coming from muscle and fat.
To solve this problem, MPC’s R&D team began developing a new tool called Sumo. For seamless adaptation, Sumo needs to fit into our existing rigs.
Rigging artists already had their own tools for muscle simulation and a deformer to simulate skin details such as wrinkles. So we focused our efforts on building a dynamic fatty layer in between.
Implementation
We implemented Sumo as a Maya deformer operating on a tetrahedral mesh generated from the input surface. We chose to represent this as a non-manifold mesh in Maya, so they could be manipulated with existing Rigging tools.
At each simulation step, constraints are resolved by an iterative process consisting of a local and global step. In the local step, constraint energies are minimized independently and in parallel. The global step consists of solving a pre-factored sparse matrix equation in the position variables.
We implemented the following constraints in our local step:
- Strain Limiting and Volume Preservation
- Vertex Pinning
- Attraction to an Input Mesh
We found that the local step worked very well for soft constraints. Constraint stiffness could be painted to vary over the geometry.
To handle collision and other hard constraints, we implemented the Uzawa CG method to resolve some constraints in the global step. This was critical for resolving self-intersections in relatively few iterations.
Sumo also simulates friction by applying a post-process to reduce the velocity of any particles in contact with a collision object.
Animated Input Geometry
To fit in with our existing rigging tools, Sumo needed to support animated input shapes. Current rigs focus on deforming the surface, so they won’t support tetrahedral meshes out of the box.
We found that we could run solver iterations with zero momentum, pinning the surface vertices to the animated surface, and only applying strain to the interior vertices. We ran this independently of the main simulation. Animated collision objects were handled similarly, applying our “relaxation” step whenever the mesh was updated.
Whenever the rest configuration of the tetrahedral mesh changed, we simply rebuild the system matrix. We found that rest shape changed infrequently, so the implementation simplicity outweighed the performance hit.
Production Results
To integrate Sumo into our rigs, Rigging artists first built a model describing the rough volume of the character. We then tetrahedralized this mesh, and passed the result to Sumo. Other meshes such as muscles were connected into the deformer via pinning or input attraction, so they could drive the overall animation of the sumo mesh. Once that’s done, the final skin geometry was bounded to the Sumo mesh using our skin deformer, which also handled simulation of wrinkles.
TechAnim artists would also build Sumo deformers into their scenes to handle collisions with external geometry.
This setup proved to be very stable in practice, successfully removing collisions without any manual intervention on hundreds of shots. Sumo has been proven very helpful for other shows as well, and adaptation of the tool has quickly spread.
Future Work
Given the overall success of the tool, we definitely intend to develop it further.
On the usability side, we would like to provide setup helpers that make it more straightforward to apply Sumo to a new character.
We also found it difficult to handle conflicting hard constraints, especially collisions interacting with our input attraction constraints, where sometimes we saw jittering. We’re actively looking into improvements for these.
Finally, we want to explore applications of ADMM in other areas, such as fur, cloth, and potentially as an improved version of our existing skin simulation tools.
Acknowledgements
The authors would like to thank Eve Levasseur-Marineau, MPC Film’s Rigging and TechAnim departments, as well as Gagandeep Singh for their input and assistance.
References
Ben Cole. 2011. Kali: High Quality FEM Destruction in Zack Snyder’s Sucker Punch. In ACM SIGGRAPH 2011 Talks (SIGGRAPH ’11). ACM, New York, NY, USA, Article 40, 1 pages. https://doi.org/10.1145/2037826.2037879
David Minor. 2018. Making Space for Cloth Simulations Using Energy Minimization.
In ACM SIGGRAPH 2018 Talks (SIGGRAPH ’18). ACM, New York, NY, USA, Article 41, 2 pages. https://doi.org/10.1145/3214745.3214764
David Minor and David Corral. 2018. Smeat: ADMM based tools for character deformation. In SIGGRAPH Asia 2018 Technical Briefs, Tokyo, Japan, December 04-07, 2018. 2:1–2:4. https://doi.org/10.1145/3283254.3283279
Rahul Narain, Matthew Overby, and George E. Brown. 2016. ADMM &Supe; Projective Dynamics: Fast Simulation of General Constitutive Models. In Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation.
(SCA ’16). Eurographics Association, Goslar Germany, Germany, 21–28.
http://dl.acm.org/citation.cfm?id=2982818.2982822
Matthew Overby, George E. Brown, Jie Li, and Rahul Narain. 2017. ADMM Projective Dynamics: Fast Simulation of Hyperelastic Models with Dynamic Constraints.
Transactions on Visualization and Computer Graphics 23, 10 (Oct 2017), 2222–2234. https://doi.org/10.1109/TVCG.2017.2730875
Jun Saito and Simon Yuen. 2017. Efficient and Robust Skin Slide Simulation. In Proceedings of the ACM SIGGRAPH Digital Production Symposium (DigiPro ’17). ACM, New York, NY, USA, Article 10, 6 pages. https://doi.org/10.1145/3105692.3105701