When Walt Disney Animation Studios’ Moana hit screens in 2016, it immediately connected with audiences of all ages. Directors Ron Clements and John Musker had found a story rich in Polynesian culture that was also daring, funny, dramatic and powerful.
Moana, which follows the ambitious plans of the titular young girl (voiced by Auli'i Cravalho) who leaves her island paradise in search of the demigod Maui (Dwayne Johnson) to help her in her quest to save her people, was heavily praised for its 3D animation and effects. Much of the film is set on the ocean, an environment that would need to be simulated in high detail - all the way from calm seas to more powerful storms, and even to appear as a watery character.
Other effects simulations would also be necessary to tell the film’s story, including those relating to the powerful volcanic demon Te Kā, and the eventual awakening of the goddess Te Fiti. In this article, members of the effects animation team from Walt Disney Animation Studios outline how they delivered the water and other effects requirements for Moana, using tools such as Houdini and other custom-made software.
Enabling an Effects Infrastructure
Faced with the various water simulation and effects challenges, Walt Disney Animation Studios set out to write its own in-house proprietary water solver. This became known as ‘Splash’ and was integrated directly into Houdini’s DOP context.
The studio also created a fully renderable library of effects assets - dubbed ‘Foundation Effects’ - designed to help manage the complex nature of the water requirements. “These effects assets were visible in a lightweight GL representation by all departments,” says head of effects animation Dale Mayeda.
“The assets could be dropped in and re-timed by layout, animation, effects and lighting, while being fully renderable by the pipeline. Houdini Pyro and Flip were used extensively to create a library of lava bursts, pyroclastic smoke plumes, steam clouds, splashes and many other effects assets.”
“The Foundation Effects library gave upstream departments accurate representations of effects to compose cameras and have characters perform in relation to these assets,” adds Mayeda. “This also allowed the effects artists to use effects assets as a compositional tool and give focus and bandwidth for the many custom shot specific effects needed for each shot.”
Simulating the Shoreline
An immediate challenge for the team lay in the shoreline water and effects surrounding the islands of the Pacific Islands depicted in the film. This would require simulations for waves crashing on beaches and reefs, foam, sand interaction, and wet sand map generation.
“A dedicated rig contained elements generated in SOPs, POPs, DOPs, and even COPs for the wet sand maps that were derived from the shoreline simulation,” explains lead effects animator Erin Ramos.
“To create decay and age maps for wet sand, constant shaded Mantra renders of the water simulation from a top-down orthographic camera were processed via a for-each loop in COPs,” says Ramos. “These decay and age maps were fed into the sand shader to create the appearance of a thin layer of water being absorbed into the sand.”
Breaking waves of various sizes, depending on the shot, were simulated in Houdini using the Splash solver within DOPs, or generated using a procedural method in SOPs with layers of Flip particles on top. Selling the right intensity of the breaking waves on the reef was crucial, as this is an early obstacle to Moana leaving her home island.
“We used Houdini to generate proxy geometry of waves of varying sizes breaking on the reef,” continues Ramos. “This geometry was given to the layout department to place in the shot and once we got director buy-off on the overall timing and composition of the waves, the animators animated the boat to this geometry. These proxy waves were not just throwaway geometry - they contained attributes like velocity and emission which allowed the effects artists to generate the foam, mist, boat splash, and other secondary elements necessary for the shot.”
The shoreline rig contained a number of custom Houdini Digital Assets. One of these, details Ramos, “did a quality control check on the final geometry before passing it on to the lighting team. Because there were so many attributes that were required in order for the geometry to shade properly, we needed to be able to quickly run sanity check renders which visualized the shoreline attributes.”
Building Boat Wakes
Once Moana sets sail on a previously hidden camakau, Walt Disney Animation Studios needed to deal with boat wake. “In order to handle the 350-plus shots of Moana out on the open ocean, two of our effects leads, David Hutchins and Blair Pierpont, developed an automated procedural boat wake rig,” states Mayeda.
“This could load published meta-data of the ocean expression from layout, run the full boat interaction simulation with white water, generate and process the levelsets and generate a levelset composite graph which would seamlessly blend the simulations with the ocean height fields. A custom rendertime levelset composite pipeline was also developed and integrated into our Houdini workflow.”
“We set out with the goal of creating a rig that would be fully automatic, triggered by upstream departments (layout or animation) publishing their work,” says Hutchins. The rig was authored in Houdini and distributed as a Houdini gallery, which meant that users could modify the networks if required.
Water surface and whitewater - made up of bubbles, foam and spray simulations were run using the automated rig. “The main water surface simulation used a Houdini implementation of our Splash solver,” says Hutchins, “and the whitewater used a Houdini POP solver.”
Some open ocean shots had close-up views of water interaction with the boat; for this, effects artists relied on a drips and sheeting water element on the surface or bubbles underwater. Effects animator Alex Moaveni explains how that worked.
“With VEX code in DOPs we directed how sheeting particles flowed over a collision surface and broke off as drips when they passed a parameterized density or velocity threshold. The bubbles effect was achieved similarly. We used VEX to efficiently isolate ocean particles with enough energy to birth bubbles and drive their flowing behavior around colliders. Using Wrangles, we crafted performant custom solutions and exposed only the controls we needed to fine-tune the desired effect.”
In a typical shot, the boat animation would be dealt with first, after which the water simulation would run. This process was reversed if the motion of the water needed to affect the animation (an example is when Moana is on the boat and a lava bomb hits the water nearby, pushing the water, and therefore needing the boat to react accordingly). In those instances, artists switched from the shot being ‘animation driven’ to ‘effects driven’.
“This meant,” explains effects animator Marie Tollec, “that the animator would do a first pass, then we would run quick iterations of a low resolution water simulation to give a rough idea of the general motion of the water. It would be approved and sent back to animation to adapt to the water motion. Then it would come back to effects to run the final high resolution simulation.”
Getting a Performance Out of…Water
Moana’s decision to leave the island is somewhat aided by a water character that had a distinctive personality (it had even greeted her in the shallows when she was a toddler).
This character was made possible via close collaboration between the animation and effects teams, after a character rig had been established for layout to place and pose in shots. Animation then worked on timing and shape language before effects would handle the dynamic components of the character.
The effects team dealt at first with the water character by creating smaller component setups. “We used Houdini galleries as our way of passing these rigs around,” says effects lead Ben Frost. “We chose to lean on galleries more than OTLs to minimise the propagation of workflow changes. The OTLs we did develop were on the smaller utility basis, preparing data for solvers or export conformance.”
Frost adds that a collection of rigs was developed for the water character. In calmer moments, for example, effects used a more procedural approach with noise functions and internal bubbles.
“In more active scenes,” he says, “the use of dynamic based rigs was more prevalent. One solution being a fluid simulation ran in a rest pose, and bound to the animation. This was then embellished by activating areas to inject into an additional simulation for interactive narratives and splashes. Moana high-fiving the water is an example of this. Typically we’d use this method whenever we required the character to break apart. The secondary simulation added a physically correct component to the character.”
The water character was, of course, connected to the wider ocean, and the effects team had to ensure it was not just a “tenticular form protruding from the water, but something that was part of the ocean as a whole,” notes Frost.
To make sure this occurred, the team followed a method developed for the boat wakes, which was to cut out the desired area of interest in the ocean and promote it to a dynamic context. Frost explains the process further: “Using the velocity of the ocean wave trains defined by the layout department, and mixing in forces that would suck water up into the shape of the character, we could achieve a naturalistic swell driven flow. Taking the resulting skirting simulation and blending the result into the main body of the character allowed for that.”
“A big challenge,” adds Frost, “was to have the ability to be modular yet make the individual elements blend together. A lot of time was spent finding techniques to make the seams of each component work together. Using procedural workflows with assumptions based on bounding boxes, cut out shapes, and uv position to automate positional blends we could get pretty far, although manual refinements were often required to minimise the visibility of the seams.”
Although geometry seams were able to be closely matched, Frost says separate surfaces were still apparent in renders. But, by converting meshes to VDBs, the team could rely on its proprietary levelset compositing workflow.
“This gave us the ability to to combine surfaces into a single mesh at render time,” recalls Frost. “We additionally provided blend fields to further smooth the component transition areas. Attributes were also provided as fields to be baked onto the mesh. This allowed the effects department to provide mattes for lighting to extract and manipulate post-render.”
Generating Water Walls
In a final confrontation with Te Kā, the ocean parts to form a massive water wall. The scene is reminiscent of an earlier one in which a wall is formed around Moana as a toddler. For the effects team, this involved two steps - the parting, and then the formation of the liquidy surfaced wall of water.
“We were provided various proxy geometries for target shapes of the water wall by the layout department,” explains effects artist Hiroaki Narita. “Then we analyzed animations for the shots and transformed the ocean from general wave water to a specific water wall without losing realistic fluid flow and behavior. We also had to come up with a very adaptable setup for the effects to meet various art direction to make the ocean’s intention readable.”
The toddler sequence was tackled first, and that generated a base set-up that could be adapted into the much larger scene. “Firstly,” says Narita, “we applied surface deforming animation to get the shape, speed and timing to meet the art direction. We modified the animation by using a controller made with the VOPs network. Then we generated custom attributes on the surface, and source points to use in simulation in DOPs and post-simulation.”
“We also took advantage of accessibility of attributes by VOPs in DOPs,” adds Narita. “We could apply certain behavior changes such as a parting ocean phase and water wall phase by looking up the custom attributes during the simulation. Each VOPs in DOP were treated as behavior modules so that we could organize and turn on/off particular behaviors on demand. In the post-simulation, we could modify simulation result and integrate with the rest of the ocean by Houdini’s point operations with the custom attributes. The additional detailed water and white water were done by secondary sim with POPs and white water DOPs.”
Bringing a Lava Monster to Life
The ocean parting sequence follows a large-scale battle sequence between the volcanic demon Te Kā as it attacks Maui and Moana. For over 100 shots, the effects team simulated masses of lava, fire, lightning and pyroclastic plumes on and around Te Kā.
Pre-simulated elements out of Houdini were built up as layers to generate the creature. “With our new Foundation Effects workflow,” outlines effects lead Ian Coony, “the team was able use python SOPs to script the creation of pipeline compliant element rigs that could span multiple departments and packages.”
Fire and flowing lava emanate constantly from Te Kā’s body - these effects were handled procedurally in Houdini, which meant they could generally be automated. “Using some of Houdini's built in contexts like CHOPs, our effects could automatically react to the character animator’s choices,” says effects animator Nathaniel Sims.
As an active volcanic demon, Te Kā also exhibits hints of lightning strikes, which also illuminate smoke plumes. Two variations of lightning were simulated by the effects team.
“Inner lightning occurred within the folds of the smoke itself,” describes effects animator Robert Bennett, “and outer lightning arced outwards from the smoke before heading back inwards. Using a POPs sim as the base for each strike, the lightning was generated in a procedural SOPs network and baked out to Foundation Effects, giving the lighter control over the amount used in each shot.”
What made the integration of lightning, smoke plumes, lava flows and pyroclastic clouds even more compelling was having them appear to be a part of Te Kā’s body and hair. That was made possible, says effects animator Andrea Scibetta, since procedural curves formed the basis of the character’s hair rig, “allowing us to groom the pyroclastic plumes into the desired shapes. These curves enabled artist friendly control over orientation, length, thickness, and more, in order to complement the animation of such a huge and dynamic character. In Houdini we used SOPs to pump attributes into large scale pyro simulations, making things much simpler to control.”
“The directors were very keen to see a lava monster covered in pyroclastic smoke, as if she were wearing a dress,” adds Scibetta. “We needed to create ad-hoc vector fields to help us constrain the smoke around her without looking either unnatural or forced. Classic Houdini tools were used in the creation and manipulation of these fields, which were painted and combed right on Te Kā’s mesh according to the look and shape we needed to achieve with our simulations.”
Then, for the smoke plumes, artists used custom Houdini Digital Assets in the effects rig. “This,” says effects lead Marc Bryant, “allowed the animators to previsualize the pyroclastics emanating from Te Kā’s body and helped with communication between animation and effects. Potential issues could be flagged before a shot entered the effects department.”
Effects lead Blair Pierpont also discusses the use of Digital Assets, saying, “we used HDAs as building blocks for the artistic aspects of our rigs, but also as specific pipeline tasks that when chained together described the delivery from start to finish. We then packaged these into galleries for artists to drag into their shots. We developed additional tools to ensure these galleries were self reliant. In the case of Te Kā, the rig could identify what geometry was required for collisions and emission, and import it into the rig procedurally.”
Te Fiti is Restored
Realising Te Kā is in fact the goddess Te Fiti, Moana restores the creature’s heart and transforms her back to normal. The actions lead to a sequence showing the healing of Te Fiti and the healing of the surrounding ocean and island environments, especially vegetation.
“For this sequence,” discusses effects lead John Kosnik, “we created animated splines that produced spreading Ptex maps for plant growth, particle emission, texture maps, and geometry creation. Since all the departments were stacked, the environments team was constantly changing the landscape based on art direction so a procedural workflow was a must.”
“We wanted to create a growth effect that filled space and felt organic,” continues Kosnik. “Effects animator Jesse Erickson created the suite of digital assets that created vine growth, and branching space colonization effects.”
Erickson adds that the space colonization tools centered around an open venation algorithm based on a 2005 paper from the Journal of Algorithmic Botany. “The solver iterates on two geometry sets; veins and attractors, and relies on feedback between the two. Attractors pull the vein tips and cause branching into new attractor neighborhoods, while the veins kill attractor points that they come into contact with.”
The DOPs framework in Houdini was used here, and was built to be compatible with existing solvers to take advantage of native particle and RBD collisions, relying on POP grains for constraints.
Says Erickson: “We used this method to grow vine-like geometry along surfaces which could be rendered or be used to initiate animated growth maps for both the shader and the particle emission. Once we had those maps the vegetation pipeline was able to use them for the growth and decay of plants and materials masks. Simulations for the space colonization solver were close to real time and gave us quick turnarounds for review.”
Reflecting on the complex work his team was responsible for in the film, Dale Mayeda says, “the story of Moana presented our most epic effects film to date at Walt Disney Animation Studios.”
But perhaps the most striking aspect of all the effects simulations that were carried out is that they each serveD to take the story forward. And what a story it is.