Turning an Illustration of a Cute Girl with a Lollipop Into a 3D Model
Katja Diaz-Granados shared the workflow behind the Lollipop Girl project, explaining how she used Texturing XYZ to model the face, how she made the clothes, and how she used NURBS to create the hair.
Introduction
Hi! My name is Katja Diaz-Granados, and I'm currently studying 3D character art at Think Tank Training Centre. I first discovered 3D modeling while working as a research scientist in a materials science lab, where I started to play around with creating simple 3D illustrations to use in publications and conference presentations.
I loved seeing how the 3D modeling pipeline incorporated this complex mix of technical and artistic know-how. Over the last couple of years, I've gradually expanded from working on replicating experimental setups to recreating 2D illustrations. I particularly love taking inspiration from illustrations that have a children's storybook feel.
For a personal project to explore creating a very stylized groom, I chose an adorable illustration of a girl holding a lollipop by a concept artist from Uowls Jinan Studio. I had been wanting to try starting a groom from polygonal geometry instead of jumping straight into guide work, and the really clear forms of the hairstyle of this lollipop girl felt perfect for this.
Modeling
I knew I wanted to use some of the micro-skin detail from Texturing XYZ's VFace, so even though I was working on a very stylized character, I opted to use the head base mesh provided by Texturing XYZ. Working first in symmetry in ZBrush, I sculpted the primary forms of the head to match the general feel of the concept art. Since I wasn't aiming for a perfect one-to-one replica, I allowed myself to deviate from the concept where necessary.
Clothing Workflow
To create a base for the clothing, I used quad draw and other simple modeling tools in Maya to build each of the individual clothing pieces around the body. Once I had some simple topology laid out, I brought the clothing models back into ZBrush.
I had always had trouble with geometry clipping while sculpting on a thin mesh in ZBrush, so I opted to sculpt the clothing while it was still a single plane. When I was happy with all of the sculpted folds, I deleted the lower subdivisions and used Panel Loops to add thickness. Since my ultimate goal was to have a low-poly clothing mesh to UV unwrap and eventually render with a Displacement map, I went ahead and reconstructed some lower subdivisions.
ZBrush divides geometry by splitting each edge in half, so calculating how many panel loop edges to include means taking 2 to the power of the number of desired subdivision levels. The actual Panel Loop tool sets a cap of 25 edges, so to create a mesh with 4 or more subdivisions, you would have to use 16 panel loop edges.
Texturing
All of the texturing for this project was done in Substance 3D Painter, where I took advantage of the path tool. This is one of my favorite features of the texturing software. With the path tool, you can draw an editable Bezier curve that can carry information about where you want color or superimposed relief. This proved really useful for drawing the stitches along the girl's overalls, as well as mapping out the stripes on her shirt.
Hair Workflow
While I usually would approach grooming by hand sculpting guides, I had seen a post from Chloe Worthy about creating Xgen guides from a tube mesh. Given the clearly distinguished locks of hair in the concept art, it seemed like this technique would lend itself really well to this project. The premise is that you can use the Surface-to-Curves tool in Xgen Core to automatically generate curves along a NURBS surface.
For this to work, you can directly create the NURBS surface in Maya, or if you have an existing polygonal mesh, you can use the convert feature under the Modify menu to convert your mesh to a NURBS surface. Since there isn't a direct Polygon-to-NURBS option, you need to first convert your mesh to a Subdiv surface. Then go directly back to the convert dropdown and choose Subdiv-to-NURBS.
From there, you can jump into your Xgen Core description and under Utilities choose Surface-to-Curves. Depending on which way you want the curves to traverse the surface (either across or along the surface), you can set the curves to start at V=0 or U=0, since NURBS surfaces have defined u and v-directions. Finally, you can adjust the NumCurves slider to control the density of guides.
As a side note, this idea of using NURBS surfaces to create hair guides that conform to a stylized shape is also the basis for the hair plug-in Ahoge, which is a really artist-friendly tool that takes this concept even further. While a basic NURBS workflow was really effective for creating the cap of hair leading to the character's ponytail, the Surface-to-Curves tool in Xgen only creates guides along the outside of the shape. For the ponytail and bangs, I wanted to create guides that would fill up the shapes as well.
I had come across a tutorial from Rebelway by Isaac Ramirez that talked about using Houdini to solve exactly this problem. The full tutorial goes much more in depth (and is a really great watch), but the basic idea is to create cross-section slices every so often along the length of a single hair tube, populate these slices with points that have individual IDs and finally connect the points that share the same ID to create curves that span the length of the hair tube and capture its shape. You can then work with those curves directly in Houdini, or import them into Maya to use as Xgen guides.
Given that my goal was just to create a handful of curves that I could export out of Houdini and bring back into Maya, I used an abbreviated version of the node tree built in the tutorial.
I had so much fun experimenting with this process, thanks to the flexibility inherent in Houdini's procedural nature. I was able to create a bunch of different iterations of the hair shapes from the concept art and easily control the number of curves and their resolution.
Look-Development and Rendering
Most of the shaders and lighting for this project were relatively straightforward. I did, however, veer away from physical accuracy at a few points to achieve the stylized look. In particular, for the hair, I wasn't quite happy with the red hair I was able to get with just the melanin and melanin redness sliders, so I ended up plugging in a red color to both the base color and the diffuse (which I left at a very low value). I also wanted her eyes to really pop, so I created area lights that I specifically "light-linked" to illuminate only the bottom half of her irises. I thought this gave a really nice exaggerated effect.
Conclusion
The CG pipeline can be incredibly daunting, especially since any one task can be approached in multiple ways. One thing that has helped me stay engaged in the learning process is picking a single new thing that I'd like to understand with each personal project I take on. Diving into the creation of stylized hair using polygonal geometry gave me the chance to try out some of the different ways this look can be achieved, and in the process, I picked up additional familiarity with the capabilities of both Maya and Houdini. I'm really happy with the final result and look forward to taking everything I learned from this project and applying it to my next pieces. Thanks for reading!
Katja Diaz-Granados, 3D Modeling Artist
Don't forget to subscribe to our Newsletter, join our 80 Level Talent platform, follow us on Twitter, LinkedIn, Telegram, and Instagram, where we share breakdowns, the latest news, awesome artworks, and more.
Are you a fan of what we do here at 80 Level? Then make sure to set us as a Preferred Source on Google to see more of our content in your feed.