This is my blog for my Spring 2019 senior project! I'll be posting my progress through the production here.
My first step was to test the feasibility of the composition/concept by doing a hair & water interaction test. I'm working with Houdini 17 and Houdini's Vellum solver.
This is my first pass at hair simulation in water, with a small ocean. Because I'm still learning dynamics and effects, this was a really interesting challenge and I still have some changes I'd like to make.
Inside the Vellum simulation, I used the ocean as a mask field to alter the drag, gravity, and buoyancy forces when the hair enters the water. However, the water doesn't appear to have any surface tension, and the ocean wind speed seems to be much faster than the hair wind speed.
I'm planning to lookdev a mermaid/water nymph character in a lake. I'm creating her groom and will be handling the water & hair dynamics as well.
Below is a concept sketch I made, inspired by some of the images from the mood board I put together. The emphasis will likely be on her hair and shoulders-up; we may not see her tail beneath the surface of the water for the scope of this project.
Vellum test, first pass. Hair floats in water
Second pass, exploring ways to straighten the hair out when it hits the water. Thinking of using an approach driven by dynamics instead to avoid the flipping/flashing caused by changing groom attributes.
I am super excited to jump straight into the groom for this project. My plan is to create and sculpt the guides in XGen, convert them to curves, and then bring them into Houdini as Alembics to simulate and generate the hair. (I tested the Maya to Houdini grooming/curves abc workflow previously while grooming for Wander.)
I'm working with Core/Legacy XGen in Maya, adding and shaping the guides. Here are some in-progress screenshots.
I'd like to have her hair pulled back in one simple braid/twist (a Khaleesi-level braided hairstyle may be too complicated for the mermaid) and I'm excited to get it figured out & working so I can bring it into Houdini.
Hair groomed with interactive XGen (yellow guides are Core XGen)
As I progress further through the hair, I'm working more with the XGen Interactive Groom Editor for the longer, straighter layers of hair. I'm using Core XGen for the bangs and pinned-back pieces because it has a simpler utility for switching the guides into editable nurbs curves.
Though the hair is still not quite there yet, especially the front parts, I've likely done enough work in XGen to convert the guides to curves, make any necessary modifications, and then bring them into Houdini for more grooming work/hair generation and clumping as well as the simulation.
XGen render in Arnold for Maya
I ultimately created 14 different descriptions/groups of curves to transfer from Maya to Houdini as Alembic objects.
I imported them into guide grooms objects in Houdini and merged them into 3 separate hairgens - one for the back, one for the front/shoulders, and one for her bangs and forehead hairs.
The 3 distinct sections will have to be simulated separately, which isn't necessarily ideal. But it means I have more control over the simulation behavior of each individual section.
My next step is to find or create a model for the mermaid. Because we probably won't see her tail or fins, I decided to find a low-poly human base mesh for free from CGTrader and modify it as needed.
I used Maya's sculpting brushes to change her facial features a little bit.
Though I initially wanted to go for a more realistic look, like the in-progress image below, I ultimately decided to go for more stylized facial proportions and bigger, more cartoony eyes for the mermaid.
Model modified in Maya vs. base mesh
original tail concept/drawover
This is a compilation of the work I've done so far on the project, including my previs sequence for the "film." The camera moves and timing aren't really final, and I may change the staging & placement of some of the lily pads too.
I'd like to include some more items, such as cattails, reeds, water lilies, or other aquatic plants. However, my focus is on the lookdev and groom, and I'd like to avoid too much modeling work.
Second iteration of the previs, with revolutionary changes to the animation. After playing around extensively with the hair simulation, I couldn't quite figure out how to get the hair to straighten out after hitting the water (changing the simulation attributes on an animated attribute/group of points using vellum constraints). I decided to keep her static so I can focus on the lookdev and won't have to worry as much about the simulation.
I'm lucky to have some really fantastic sound design by SCAD grad student Annie Taylor, as well!
Flipped composition of shot 1 and simulated hair for all 3 shots!
I've been hand-painting the textures for the mermaid's skin in Substance Painter, which I think is fun.
I haven't done any displacement or bump detail yet on the skin, so she is still looking a little smooth and doll-like. Since we only see her face up close in one shot, I'll have to focus on that later once I get the animation and water working.
Early iteration of skin textures
I made the guides for her upper eyelashes in Core XGen and exported them as curves into Houdini, but I made the lower eyelashes and eyebrows entirely in Houdini.
Her iris textures were made from a photograph in Photoshop.
The whites of her eyes could also use some more detail/veins or variation, but that's another detail I will have to save for later once I get everything else working.
rigging & animation
I was able to make a quick rig and avoided painting too many skin weights thanks to heat mapping in skin bind and delta mush.
In test renders of Shot 3, my mermaid looked a little dead inside as she was floating in the water unblinking and completely still. So I needed to animate her blinking and subtly moving her arms as she floats/treads in the water to give her some more life.
I'm rigging and animating her in Maya and then exporting the animation as an Alembic to Houdini.
Second pass at animation for arms and blink