Project Overview: Nina from Black Swan
Hugo Guerra captured the grace and beauty of Natalie Portman's Oscar-winning performance in his latest piece.
Nina was the final exercise in my ZBrush Foundation class at Odd School, Portugal. For this exercise we were given the assignment of reproducing a full character illustration with ZBrush of a movie or game character. I wanted to pick a graceful female figure and to that end, the character Nina from Black Swan seemed like a great choice.
For this image, I picked a pose you can't really see during the movie but that is pretty common in ballet. I used a cosplay picture I found on the internet and sketched over it a bit over to understand the gesture of the ballerina. Since the body types of the cosplayer and Natalie Portman in the movie were very different, that was about all I could use that image for. The lack of reference material definitely caused the biggest challenges in this image.
As usual, I started with ZSpheres and tried to keep the sculpt symmetrical for as long as possible. I always try to get the shape right with the least number of polygons possible.
Based on the previous lazy gesture study, I started working on the main volumes and overall direction of the muscles. The arms and hands provided the biggest challenge, being stretched back and relaxed in a graceful pose at the same time. Understanding the flow of the body is vital, especially in such an image where the pose is so important.
Her body proved to be a challenge too, thanks to her very slender, yet muscular build. Finding the right balance was really hard, but probably the most rewarding challenge in the whole process.
I mostly used the Clay, Clay Buildup, Damian Standard and Pinch brushes for the organic forms.
Since the character is really young and the image was planned to be 2k pixels tall maximum, I didn't waste much time on small details such as wrinkles and pores. I just added a little noise to slightly break up the uniformity of the skin.
For the hair, I simply sculpted over the head in another layer and used a sphere SubTool to sculpt the hair rolled up in the back of her head.
I also used a bit of fibermesh for some of the loose hairs on the back of her neck and head so they could be illuminated by an already-planned back light, but they ended up being too small to even be noticeable.
Since the whole dress was extremely complex and I had a close deadline, I decided to change it a lot and ended up making it quite stylized. For the clothing I used the same brushes as before, but also the Dynamic Trim brush for the more stretched and angular parts.
The corset was done by just extracting the equivalent bit of her body, then sculpting some seams in tension folds and bigger folds in the back where her back arches. Again, since I was betting on a low detail approach, I avoided over-detailing this piece to keep the image coherent.
The top of the corset, the more decorated part, was also extracted from the body SubTool. I used a flower pattern as a mask using Spotlight and inflated the unmasked part using the Deformations panel. After that I used the Standard and Pinch brushes to clean it up a bit.
After looking at the Black Swan film poster, I noticed that Nina had some small gems in her tiara and across her dress. Using 3ds Max (though this would have been possible in ZBrush by sculpting something similar using the Dynamic Trim brush) I modeled a small gem and made an insert mesh brush with it. I populated the tiara and the top part of the corset with the small gems with said brush.
For the feathers in the chest I followed painzang's tutorial on YouTube. It was very helpful!
For the multi-layered skirt, I used the top of a cylinder. This can be done using a cylinder primitive, and using masks and polygroups to isolate the top part section. Then I used radial symmetry to give it that classic, folded look.
I sculpted over it a bit to make it less repetitive, then copied and rotated the SubTool slightly to give it more layers.
For the top layer, I used an edge loop and isolated the section to give it that solid fabric edge. For the rest of the top layer, I lowered the division level and used fibermesh using a small structure of crossed cylinders to simulate a thin net.
The shoes were done by extracting their various elements and giving them some quick folds using the same tools as before.
As the feathers around the waist were the part of the dress that reflected the character the most, I really didn't want to take any shortcuts, but duplicating and editing the fibermesh feathers would have been a huge pain.
I came up with the following solution. I isolated one of the chest feathers and rendered it out in Photoshop. Then, in Photoshop, I made sure that only the background was 100% black (as you know, ZBrush interprets pure black in textures as transparent) and used fibermesh with that texture. To counter its flatness I gave it a basic material with a bit of color bump so ZBrush would use the color information in the feather texture to give it some detail.
For the tiara, I used a lot of DynaMesh. Extracting a small halo from Nina's head, I pulled out small parts of the crown using the Move and Snake Hook brushes. I gave it that faceted look by using Clay Polish on the whole SubTool.
I used the same method for the eye lashes as I'd used for the feathers. I modeled a small strip of polygons in 3ds Max (again, this could be easily done with the Topology tool in ZBrush, but GoZ makes it so easy to do in Max too) and used the following settings for the fibermesh for the lashes. After, I used the Move brush to adjust them slightly.
After collapsing all the layers in the body SubTool (layers and PolyPainting don't go well together), I painted the skin very quickly with the Standard brush in RGB mode using Spray. I painted the make-up using both Spotlight and the Standard brush.
For the clothing I took advantage of the masking options in ZBrush. I used masking by Occlusion and Cavity to give it that wear and tear look quickly, and to great effect. The tiara was mostly hand-painted.
For the posing I used Transpose Master to avoid any problems with the fibermesh SubTools. I mainly just transposed the leg and moved some of the other body parts like the head and arms to avoid symmetry.
I kept it really simple with the materials, since I knew I was going to do most of the work in post-production. Most SubTools got basic material 2, except for the fibermesh, which got basic material 1 with some extra specularity, and the body, for which I used skin shader 4.
Render and Post-Production
To render the image, I used a simple three-point light setup, and started taking out passes.
First I took a render pass with the main light and no shadows. That's the base I usually work on. If I think some parts are too dark in that render, I also take a pass with just the fill light. I just used the skin shader 4 and basic materials for this one, mostly.
Then I rendered the image with each light, this time with Shadows on and took only the shadow pass of each one.
Next, I turned off the PolyPaint in the whole sculpt, gave all the SubTools a Blinn material and, in the material settings, I took Ambient and Diffuse all the way down to 0 and gave it a low specular value. This way, I only got the specular passes with specular lighting and all the rest was pure black.
The next step was to make masks. I like to have masks of everything as it makes my life way easier in post-production. I gave each SubTool a flat material with a different color, contrasting as much as possible with the surrounding SubTools, and rendered that.
Finally, I gave all the SubTools a sketch MatCap or other shader that easily gave me a cavity pass, and took the chance to turn on Ambient Occlusion, ZDepth and SSS. I took all those images and moved on to Photoshop.
In both images I took out a lot more passes that only concerned some materials I'd made and wanted to keep in the final image. I would consider them exceptions. Those below are, I think, the ones that matter most.
In Photoshop, I used the basic render pass as the base and started applying the shadow passes. I used them as both shadow and light information, so one set was with Multiply and very low opacity, and the other was with Screen or Soft Light.
The next step was to give it some SSS, so I just filled a layer with a dark red color, used the SSS pass as a layer mask and gave the layer very low opacity on Overlay to give it that subtle reddish translucency near the edges.
Remember that most of the character's clothes didn't have SSS, so I used the masks pass to mask out parts I didn't want SSS on. I prefer this method over making materials with actual SSS, especially when you're on a tight schedule. However, it might not always work well and in that case, it's better to make a decent skin material.
Next came the specular passes. I just placed all the layers on Screen mode and gave them all very low opacity. It was at this time that I looked at some reference because it would have been very easy to overdo it. I just exaggerated a bit in the rim light because I was going for a more pin-up style of render.
Then I used the AO pass with Multiply to enhance some of the volumes of the model, followed by the cavity pass with some Level adjustments so I didn't darken the image too much. I used it with Multiply mode to make those details pop out. Again, I used low opacity, as I find it's easy to overdo it.
For Nina, I also ended up using the SSS pass as a mask for another lighting layer (a light blue-filled layer) to give her a more ethereal look.
At this stage I also repeated some specular layers for some specific SubTools, such as the tiara and the gems in her dress, using the masks I'd done.
Some Levels, saturation and color adjustments later, I ended up with this image.
After this I just kept on adjusting small things and putting detail where it was needed.
For the floor, I used gradients and some painting to give it a sense of depth, and blurred the floor shadow I took from the main shadow pass.
All this process tends to over saturate the reds, so I just used a Cooling filter to balance the shadows a bit.
Finally I just used a Lens Blur using the ZDepth pass to get that nice DOF effect on the image, added a bit of noise and called it a day.
I hope you enjoyed and took something out of this. All this resulted from a fair bit of experimentation and was mostly a learning process. This might not be the best method for rendering in ZBrush out there, but it worked well for me when I was close to the deadline.
Anyway, they say the Devil's in the details and that holds true in both ways. It can be what makes an image and what wrecks it, if unbalanced. Probably the main lesson I took from this experience was to take my time in the gesture and proportions, and to not overdo details for the sake of both aesthetic coherence and time.