Character Texturing Workflow

When building a character for a game or any kind of realtime environment, there are many things to keep in mind. A while back we mentioned some pitfalls to avoid during the modeling stage, today we’ll talk a bit about UV mapping and texture painting.

UV mapping is a rather tedious process, but it’s a requirement because it prepares the “canvas” for you to paint on. If you do a sloppy job, it will bite you later. Your textures may end up looking stretched, blurry or glitchy. It doesn’t matter which program you use to do the UV mapping as long as you end up with a clean layout in the end.

Our character artist Thorsten typically uses Maya, and he starts off by applying an automatic mapping for various segments of the character. Afterwards he stitches these UV segments together into logical islands, such as hands. Although this is a lot of work, it pays off because the resulting UV layout contains very few islands. In contrast, using an entirely automatic UV mapping would create lots of small islands with seams all over the place. Making tweaks to that kind of layout is a nightmare, so we don’t recommend the automatic method.

Speaking of seams, you should place them in areas where the player can’t see them easily or – in the case of clothing – where they might naturally occur. Beginners should never flip UV shells since this can cause problems with the normal map once inside the game engine. It’s possible to fix such problems afterwards, but it’s best to avoid them from the start.

While doing your UV layout, always use checkermaps to verify that the size of your UVs is about the same everywhere. This way you end up with uniform and evenly distributed texture resolution.

When your lowpoly mesh and the UV layout are done, you can start sculpting a higher resolution mesh. Once again, there are many software options for this, so use the one that you’re comfortable with. We like ZBrush because it offers excellent performance even when working with very detailed geometry.

By the way, you can also do these steps in reverse order and start with a highpoly mesh directly in ZBrush. You would sculpt all the detail you need and then retopologize this into a lowpoly version. We’re old school though and prefer to start with a hand-modeled lowpoly base mesh. Once the high-detail sculpt is done, you can render out a normal map.

The normal map is used to give the illusion of high-detail geometry on a lowpoly mesh. You may also want to output an ambient occlusion map and a displacement map. These can be helpful in the texture painting stage.

Back in the old days, Photoshop was the number one tool for painting textures, and it’s still a great pick. However, there’s a new kid in town, and it’s become really popular really quickly. The application is called Substance Painter, it lets you paint your textures directly onto your 3D model with live feedback on how the materials look like. We enjoy working with it because it’s easy to use and speeds up our workflow considerably.

This blog entry has gotten rather technical and long, so we’ll end it here for now. Feel free to experiment with the various tools out there and pick the ones that suit your needs best.