by Curtis Andrus
24 September 2019
Fluffy Fur Dynamics on Pikachu
This talk was originally submitted for consideration at Siggraph 2019.
Curtis Andrus (MPC R&D)
Anika Mahmud (MPC R&D)
Suwen Wang (MPC R&D)
MPC Film’s work on Detective Pikachu involved hundreds of shots of Pikachu. To maintain a soft, fluffy look, Pikachu’s fur was made fairly long. The fluffy look became a challenge to maintain while Pikachu is moving. Natural long fur exhibits interesting effects, such as a noticeable pattern of separation when the animal’s skin stretches. Interactions between long fur and other objects is also more obvious. Even shots with Pikachu sitting with arms at his
sides required special care, due to the interaction between the arm and the belly fur.
In order to achieve these effects on a large number of shots, MPC Film developed new tools and workflows to build these behaviours into Pikachu’s procedural grooms without the need for costly physical simulation. Our approach allowed artists to quickly iterate on different groom styles during shot work.
Typically, creating CG grooms for fluffy characters with long fur has been a challenge for several reasons. A few of these are:
- Fur separation / clumping in response to deformation in the underlying skin (we referred to this as a “slashing” pattern –
see image below).
- Interactions within the groom itself and with other geometry become more obvious at longer length
Getting the right amount of details for these effects is either too complex or too computationally intensive with our typical workflows of sparse guide curve simulation.
The challenge is further complicated due to the cross-site nature of MPC Film. Shot work for Detective Pikachu was done in Vancouver and Montreal, while building the assets (including Grooming) was done in London. This made iterations between our Technical Animators and our Groom artists particularly time-consuming.
Dynamic Groom Operations
Since simulation is too costly, we decided to build these effects directly into the grooms. MPC Film uses our in-house tool Furtility, which procedurally generates hair curves at render-time.
To build dynamic effects into the groom, artists first identify the geometry operators that will deform the groom into the desired shape (effectively building the effect on a static pose).
At render-time the influences of these operators are dynamically driven by sampling animated per-vertex attributes on the underlying surface mesh. Using surface mesh attributes allowed us to take advantage of our existing attribute generation pipeline. These attributes can be built into rig assets and shared on every shot, or created on shot-by-shot basis by TechAnim department. This also showcased the flexibility and versatility of Furtility System.
This section explains in detail how we applied this approach to achieve specific effects on Pikachu’s fur.
To make fur respond to interaction with other objects in the scene, we re-used an existing geometry operator in Furtility called the “Surface Flow” Operator, which pushes hair along the surface. TechAnim artists generated proximity primvars to indicate whether a given point on the surface is getting close to another object (like a hat) or another patch of the same surface. Higher proximity will give the Surface Flow Operator more influence. The resulting effect is that fur is pushed back towards the surface whenever objects gets too close.
Regular clumping in Furtility is done by attracting groom curves to a set of sparse clump curves, where each clump curve controls the overall shape of that clump. However, this method was proven difficult to achieve the natural striped patterns observed in animal fur, so we needed to develop something more generic.
We implemented what we called a “textured clump” operator that bunches curves together in an artist-definable slashing pattern.
Curves follow the gradient vectors of the pattern texture, which guarantees that nearby hairs behave similarly. This means that this clumping does not introduce any self-intersections or crossing of hairs.
We drive the influence of this operator dynamically through attributes indicating the stretch/compression of Pikachu’s skin. So whenever Pikachu does actions like stretching his arms, the slashing effect becomes more apparent.
Shot-Based Grooming Workflows
Shot work for Detective Pikachu happened at a separate site from asset work. To avoid the need to go back and forth between the different sites, TechAnim artists made heavy use of the patching mechanism described in [Andrus 2018] to build customized groom operators into shots as required. Most of the intersection effects was done this way. For effects that were present in every shot, TechAnim used patches to quickly iterate on their approach. Once they achieved the desired look, the operators were built into the base groom and applied to all shots.
These tools and workflows proved to be extremely powerful, and enabled us to achieve the fluffy look we wanted on Pikachu. Without it, artists would have to manually sculpt guide curves in certain shots, or simply push the look towards shorter hair. Artists worked more efficiently in general as they wouldn’t need to wait for simulation results.
TechAnim artists are just starting to learn what they can achieve with these tools, and are excited to see novel and creative use cases in the future.
The authors would like to thank Eve Levasseur-Marineau, Marlene Chazot and Mollie Connor for their input, as well as MPC Film’s Groom department.
Curtis Andrus. 2018. Layering Changes in a Procedural Grooming Pipeline. In Proceedings of the 8th Annual Digital Production Symposium (DigiPro ’18). ACM, New York, NY, USA, Article 4, 3 pages. https://doi.org/10.1145/3233085.3233094