Imagine you’ve just finished your biggest personal piece to date. You’ve spent the last couple of months on it and you’re extremely proud. You post it online and the comments flood in: “Wicked UVs man!”, “Dude, those are some sweet UVs!”.
…Said nobody ever. The reason? UVs are invisible. You will see when the UVs are bad, but you’ll never notice them if they are good. This is where this tutorial in comes handy: I want to show you a way where you can get as good UVs as possible in a minimum amount of time, so that you have more time for the creative process.. like not doing UVs.
In short: Ever wanted to spend less time UV mapping and more time on the fun part? If you’re frantically waving your hands in the air by this notion, read on.
Oh, and if you’re new to ZBrush and you only want to use it for the sweet UV mapping, you can check out this tutorial which I’ve aimed towards beginners.
First, let’s discuss what UV mapping actually is and why you need it:
UVs are basically just a 2D representation of your 3D model. You need them so that you can texture and use maps such as normal, bump and displacement maps. Without UVs, there is no way to paint a texture map (we’re pretending PTEX doesnt exist for now). The U and V are axis in a 2D coordinate system. U is the horizontal direction and V is the vertical direction (V – Vertical – you’ll remember it now) .
Oh, and if you’re looking for a more technical description, Wikiepedia has some good stuff on the subject.
Here we see a 3D model being unfolded into a 2D representation of it.
Uv mapping in general can be very time consuming and it’s the phase of the production you just can’t wait to get over with. Some years ago, Pixologic, the wonderful guys behind ZBrush, released a plugin called UV Master. It’s truly a fantastic plugin and I highly recommend that you learn it really well, as it will without a doubt help you a lot with UV mapping. It has some very interesting and fancy features, but we won’t be playing with any of those. Basically I’m only using UV Master because it has a really good unfolding algorithm.
With this technique, you can easily unfold very complex character in a manner of 10-20 minutes.
To describe the process in short:
1. We pre define the seams in our main 3D app. I’m using modo and here, but you can use literally whatever you’d like. We simply make sure that all our uv islands are made before we go into ZBrush.
2. In ZBrush, we use UV master to unfold our model.
3. Send it back to your main 3D app and arrange the UV islands to your liking.
This is a very simple process and it works really well in nearly all cases.
This is the model we’ll UV map, freshly cooked from the modo content.
PART 1 - Defining the UV seams
Go to the UV tab and activate symmetry. It’s really helpful if your model is symmetrical as you only have to do half the work. Start to select the loops you want. I always start with the biggest loops. Every time your close off a loop, you define a separate UV island.
When you’re deciding where your UV seams should be, look at your clothing. If you use the seams in your pants as a guide for where to place them in 3D, half the battle is done.
Every unique color is a different UV island
Have a seam which goes through the 4 fingers. This makes the unfolding easier.
The final seam placement.
Now hit the Unwrap Tool under the UV tab. The settings really doesn’t matter: The only thing we want is to define the seams.
I now scale them down so that there’s absolutely no chance that they will go outside the 0-1 UV space. Scaling them down this much isn’t necessary though, as long as you’re absolutely sure that they’re all inside one UV tile. It’s also essential that all parts of the model are in the UV map, even if they wont be textured. If parts of the model doesn’t have UVs associated with it, the UVs will not appear in ZBrush.
Click the GoZ button. This will send the mesh over to ZBrush without you having to export it.
Thats it for now. Next up: ZBrush!
Load up your model and go to Panels – Saved Layouts – Persp/UV Texture Editor to get up a more UV friendly UI.
Make sure that you’re in modeling mode. Then go to Create UVs – Planar Mapping. This is simply to get some UV coordinates to work with. It should look something like this.
Selection in Maya is pretty bad, but there’s one tool which will save your sanity while doing UV seams: To select a range of edges, select the first one and then double click on the last one. Very handy!
With the seams selected, go to Polygons – Cut UV edges, or simply hit the Scissors Icons in the UV window. So far everything seems to look the same. However, if you enable UV seams in the viewport, you can now see that the seams have indeed been cut.
To make the UVs prettier, go to Polygon – Unfold, and then Polygon – Layout, in the UV Window.
Now, select all the UVs and scale them down so that they’re within the first UV tile.
I’m really not concerned with how much stretching there is at this point – the only thing I care about is the placement of the seams. Frankly, you dont even need to unfold them. Simply cutting the planar projection works just fine too.
Export your mesh out and you’re prepared for the next step! File – Export Selection – Save as an .obj. You can use GoZ, but use that at your own risk; I’ve had very mixed results with GoZ and Maya.
PART 2 – ZBRUSH
Now it’s time to actually unfold our model and make some nice UVs. If you didnt use GoZ:
Tool – Import. Select your file.
Hit T to enter Edit Mode.
Now, go to Zplugin – UV Master.
You should explore what all the buttons are doing, but for this technique, we only need a few:
Unwrap – By hitting this, you unwrap your model.
Use Existing UV seams – This must be activated for this to work. You’re now telling ZBrush to only use the predefined seams as UV seams. ZBrush will then not try to cut up the model to its own desire.
Work on Clone – If you’ve already sculpted on the model and you want to UV map it, you need to click this. Doing so will clone the current tool and delete the higher subdivision levels.
Copy UVs & Paste UVs- Will copy the current UVs to memory and paste them onto a new model. Extremely handy in so many cases. The vertex ID needs to be the same for the two models for this to work.
Flatten – This will flatten the model to UV space.
The ideal settings
Hit Unwrap! Boom! The model has now been unwrapped. Hit Flatten to see the uvs in 2D.
The UVs are now pretty awesome when it comes to stretching, but the placement is bad. This is where we bring them back into our main 3D app to organize the UV layout.
Hit UnFlatten to bring it back into 3D.
If you’re using GoZ, hit Ctrl G to send the model back into your main 3D app. If not, go to Tool – Export and save as an .obj.
PART 3 – BACK IN MODO/MAYA
I’m not going to go too deep into the two apps here, as the process is very similar.
At this stage, I always check how much stretching there is in my UVs. I do this by adding a UV checker as a texture map and tiling it about 7 times across.
Make a new material by pressing M, go to your render tab, Render Preset Browser - Images - UV. Drag one of the textures on top of the model. Go to the Texture Locator and change the Horizontal Wrap to 7 and hit Enter while holding down Ctrl. This will add the same value to the Vertical Wrap too.
Right Click on the model – Assign New Material – Lambert.
Go to your Lambert Node in the Attribute Editor. Click on the Color slot (Create Render Node) – select File – select your uv checker. You can find some simply by Googling “UV MAP”
Go to the place2dTexture node and change the Repeat UV values to 7 in both slots.
As you can see, there’s very little stretching.
This is what our UV layout looks like now. The most apparent problem is that all the islands are very, very close together. This will definitely cause problems later on.
Here I’ve simply moved the various pieces around. As a general rule, have the islands belonging to the left of the character (as seen from the front) be on the left side, and the same with the right side. This makes the UV layout way cleaner.
And there we go! A full figure with pretty good UVs, all in about 10-15 minutes.
If you have any questions, dont hesitate to contact me at henning.sanden [at] gmail [dot] com