Michael Barrington explained how he usually builds beautiful low-poly assets for his personal projects.
Michael Barrington explained how he usually builds beautiful low-poly assets for his personal projects.
Introduction
My name is Michael Barrington and I am a lead 3d modeler creating content for serious games and machinima/simulations for training purposes. In my free time I tend to create more whimsical fantasy artwork based on games I love as well as my own personal creations. Game development is something I had always been interested in but in the early 2000’s I wasn’t really sure how to pursue it. Around the time I was getting ready to graduate high school I decided that was the career path I wanted to follow after all so I enrolled in a technical school. After a time I was able to get my current job where I have been for the past seven years.
Peculiarities of game assets
When it comes to game assets you really need to keep in mind the limitations of the engine you’re working within as well as the target hardware. This is incredibly important when modeling as well because final texture resolution can have an impact on detail creation. When modeling, I try to embrace low poly shapes into the environment’s design. Making shapes more box-like or simple can have a certain charm and appeal if you embrace it instead of fighting against it.
If I am sculpting details in ZBrush I have to ask myself, “How will this detail look on a 512 map? What if it’s a 256?” Sometimes that requires exaggerating the size or deciding if the detail will even be seen on the final. Just because you can create great looking 4K textures doesn’t mean it will carry over if your end goal hardware is severely limited.
Stylized assets
When creating a prop I usually start off with a quick proxy model. This is mainly laying out major shapes and seeing what works. I really enjoy using ZBrush for this because I can use the ZModeler or dynamesh to quickly experiment. Once I am happy with a block out I can start refining the shape and increasing the dynamesh resolution as needed. If I’m feeling a little lost or don’t have a clear idea of what I want I’ll take a screenshot into photoshop to make a quick paintover. Planning ahead is always a good idea and can save you time down the road.
As I work my way into details I always make sure to take a step back and evaluate the model. Too many details (or too strong of details) can make it noisy and hard to read so I try to ensure that doesn’t happen. You also want to ensure that the details you place are appropriate to the style of the asset and that they will be visible when they are baked down.
During my latest project noticed I was using the same details over and over so I made sure to create custom alphas and IMM brushes. I also use brush sets that have been released to the community. One of my favorites is Michael Vicente’s Orb brush pack. His brushes have been a great boon for creating assets as of late.
Textures
Honestly, my texture painting workflow depends on the project and what I am trying to accomplish. If the end goal is to display diffuse only texturing I tend to use 3D-Coat. I use 3D-Coat for a variety of it’s tools such as retopology and UV unwrapping but where it really shines for me is its ability to paint directly onto the model. I’m able to easily paint my details exactly where I want them using custom brushes from photoshop, layer support, and easy to use symmetry tools. If need be I can also export my texture to Photoshop directly by pressing Ctrl-P. If you’re looking into hand painting as a hobby or career path I cannot recommend it enough.
For my most recent project (Magical Girl Item Shop) I created ZBrush sculpts for all of the props and used the polygroup and polypaint tools to color code the model by materials. After creating the game model and UV unwrapping I used Marmoset Toolbag 3 to bake these details into AO, curvature, height, object space normals, normal maps, and vertex color.
By using a vertex color map from ZBrush, I was able to apply a Gradient Map to these bakes and quickly lie down base colors to each model. This made initial color adjustments very easy. Once I was happy with the base colors I was able to paint extra details and more dynamic color shifts within 3d-Coat.
If the project requires the use of materials I will typically use the Quixel Suite. Quixel and it’s dDo toolset are very useful for PBR texturing pipelines. That being said,even if you’re trying to make something that isn’t photo-real, the Quixel Suite can be a huge help. I can create and save custom materials, paint directly on my model, and export multiple materials for use in a game engine or 3d viewer.
UVs
To ease the chore of UVs I usually think of happier times. Times before UV unwrapping. Times after the UV unwrapping. I don’t use any special plugins at the moment, just standard tools in 3DS Max and 3D Coat. Most of my UV workflow is just standard practice. Make sure you give enough padding on UV shells so that you don’t get any bleeding during the bake. If something can be mirrored without it being noticeable I try to take advantage of that to conserve UV space.
Cel-shading effects
While texturing I try to adjust color variation as the material has high lights and shadows. Anytime I change the values, I usually try to change the hue and saturation a little bit as well. This gives some nice transitions and can really make your texture pop by adding some contrasting colors. I used to make the mistake of darkening textures value without making these additional adjustments and it just made everything look dirty.
It’s really fun to experiment with this method while texturing. By altering the colors of highlights and shadow you can make a texture feel warm and cozy or cold and desolate. Try out colors you may not expect to work and blend them in with surrounding colors. Doing this gives some really nice variation and if you blend it well enough doesn’t look out of place.
Post-processing
Most embedded projects like the Daelin Proudmoore piece use very little post-processing effects. Sometimes I will adjust the saturation a little bit or increase sharpness for readability.
The Magical Girl Item Shop, in comparison, was assembled in Unreal Engine 4. Since I wasn’t aiming for a browser-based model viewer I could go much more in depth with my scene setup. I was able to take advantage of multiple lights for baking warm colors into my scene as well as using a post process volume to create bloom and depth of field effects,
Also creating the scene in Unreal allowed me to create a nice camera fly through. The only downside being that we can’t step foot in the scene the same way that browser viewers like Sketchfab and Marmoset Viewer will allow you to.
Recommendations
The most important things I keep in mind as I create is to plan ahead. This isn’t just in regards to concepts but also your approach to the process as well. Plan your poly limit, your texel density, where will you mirror UVs, where are your seams, and supporting topology for animation. If you think of all of these things as you begin instead of just when you hit their milestones it can save you a bunch of headaches.
Also, join and become involved with the community. Whether you’re in school, work, or with friends share ideas and get feedback. I tend to bounce between forums, Twitter, and different Discord channels. These have all helped me to improve as an artist and I cannot recommend them enough.