UV mapping techniques

The goal for me in this assessment task is to create a good set of UV’s for the blobby character with minimum distortion, seams that are mostly hidden and shells that are sensibly lined up for ease of texture painting in photoshop.
It is also a chance to learn the ‘UV layout‘ software, to explore it as deeply as I need to and get comfortable with its tool-set.

So, this is the little fella I will be dissecting today – In UV layout, I have marked his symmetry line turning the reflected geometry a darker shade of grey.
blobbygeo

I am studying the model and deciding exactly how I want to cut it up and optimize it. I tend to work well when I do things methodically in a step by step process so my method will be this –
• Firstly, in edit view, make all the cuts I need to separate out the various shells and the seams that they will need to unwrap properly
Drop all those shells down into UV space
Flatten and optimize all the shells
Lay everything out to optimize the 0 to 1 UV space.

So I start out making my first cut, taking his head off. I select the deepest, most buried seam here. The unfortunate fact is that the seam that will be the least visible on the final map is usually the most difficult to select! Utilizing X-ray mode is helpful and patience is required-
cutHead
There are certain parts of this head that will never flatten out into one piece, so I decide that I will need separate shells for the lips, the mouth bag, the antennae and the insides of the eyes. I make the incisions and drag them out.
AllfaceFeatures

I continue on, cutting up the model with careful regard to how things will flatten out and where the seams will be. Here is a final shot of my edit view, before dropping everything into UV space, then I will talk about my decisions –
AllcutsEditView

Arm – the cut at the shirt sleeve will obviously be fine as there will be a texture change. An additional seam runs down the length of the arm on the hidden underside. The problematic cut here is at the wrist seam. Here are the final UVs for the arm. I have straightened the seam on the underside of the arm (left and right sides of map) so it will be easy to paint. I also grid snapped each point on the left of the map in the V direction so it would perfectly meet the point on the right. There is small amount of stretch in the bicep (reddish tinge) and contraction in the wrist (blueish tinge) which I am happy to live with.
Arm UVs Final
ArmFlat
Arm 3D texture snapshot
armFlow

Hand – I created a seam  that separates the top and bottom planes of the hands. There is an alternate method where each finger can be cut off and mapped as cylinders but I prefer this ‘2 plane’ method as it makes painting simple – one map for the top of the hand and one for the palm side. I will need to be careful painting around the border of the two planes and keep the detail low as the seam WILL be visible. Because its a prominent area, I positioned the top of the hand shell oriented and lined up with the wrist portion of the arm shell so that it is easy to flow the painting through –
Hand UVs
handsFlow
Hand 3D texture snapshot
handsTexture

Garments –
These were pretty straight forward really, I decided to just do splits at the side seams. I also straightened the side seams on the shirt, experimenting with some of the excellent tools in UV layout like anchors (a), pins (p) and the straight edge tool (s). Some other handy tools are the k key which holds an edge in place when flattening and also the i key which does the same while also snapping to the grid. I found this method very handy. There will be seams but they will be in places you expect to find them on clothes so I am fine with this.
Garment UVs
GarmentFlow

Garment 3D texture snapshot
GarmentTexture

Leg – The leg has a seam where it meets the shorts, which will be invisible and then a seam that runs right down the back of the leg and through the underside of the foot. Since this character curiously has no foot (mercy from the lecturers- no toes!) this was the best method. It caused a slight amount of stretching in the heel and the top of the foot but less seams was the method I preferred. Like the arm- I spent some time lining up the UVs on either side of the seams so that it will run together smoothly. I have drawn lines across this screen shot to illustrate the evenness of the UVs on either side, the V co-ordinates are the same. So even if we see the character from the back, the seam should hide itself if painted well.
Leg UVs
LegFlow
Leg Texture view
LegTexture

Head – the head was always going to be the most difficult part of the project so I left it till last so that I would be feeling more comfortable with the UV layout software.
I have already cut out the inner eyelids, the lips, the antennae and the inside nostrils.
I cut a seam for the antennae to unfold from and unfolded it-
AntennaeCutSeam
In UV space, I straightened all the rows and columns and reduced the distortion around the bulb using the push and pull brushes (4 and 5 keys)
AntennaeFlow

I repeat this procedure with the other separated shells from the head, they will be welded back in after the head unwrap.
With the main head shell, I cut a seam from where the ears would normally be around the back of the head. I make another cut along the symmetry line from the top of the forehead all the way back to the border edge at the base of the neck-
headSplits
Then I run the bloat and flatten operation (shift+f) I straighten the seam that runs down the neck so that it will line up correctly and be easier to paint. Then I weld the shells for the eyelids and lips back in.
I use several different methods to try to reduce the stretching and compressing. I use the B key for local smoothing, the 4 and 5 keys for ‘puckering‘ and ‘bloating‘, pin some areas and re-flatten all in an attempt to get the mesh as ‘green’ or ‘without error’ as possible. This is of course a series of compromises and I still have a certain amount of stretching at the nose and back of head where the larger surface areas are and compression at the neck and eyes. With the final refining, I found that my favorite way to reduce red and blue areas was to move individual points holding down control.
I am relatively happy with this result.
Headflow

From the front the head looks good, the distortion is a lot less than I expected. From the back, the seam is very visible and the difference in texture size is definitely noticeable. Again, this is a compromise and will probably be the only real noticeable area on the entire character. I would probably want to stick to a pretty bland, smooth texture here to make sure it does not stand out. Checkers of course show the extremes which is why they are used, but there is no reason why a simple plain colour map in this area won’t be acceptable.
headTextures
Its worth noting that I decide not to try to integrate the interior surfaces of the nose cavity and the mouthbag with the headmap. I keep these as separate shells, cutting them down the middle and opening them out using symmetry. These are the shells for those –
noseandmouthbagFlow
Now that all surfaces are mapped and corrected as much as my capability allows – here is the front and back view showing the total ‘errors’ and seams-
TotalErrors
The next and final step in this process is to organize all the shells and optimize into the 0 to 1 UV space.
Snapping and packing – I do this by hand rather that automate it with the ‘pack all’ command as I want to control where and how things appear when I do the painting. For the most part I like to organize things ‘right side up‘ rather than have to paint things upside down. The compromise is that some texture space is wasted a little but I am putting this in the context of film/TV rather than real time games so for me its worth it.
For each of the components that ‘double up‘ i.e the legs, the arms, the hands and the antennae, I flip the corresponding shell using the arrow keys and drag it exactly over its partner using the grid to snap them both to. Then I like to drag-select them both and use the ‘new box’ command. This packs them both into a box that can be dragged around together- gets rid of the frustration of having to drag them separately and line them up again. What this means is that the texture for corresponding shells like the arms will be shared and you only paint the texture once.
I choose to go with the defaults as far as how much space is allocated to each shell. Theoretically, you may want to increase the size of the face shell so that more resolution is allocated to it but I don’t yet know what the textures will be so it stick with the defaults. By the same token – the mouthbag, for instance is probably taking up too much texture space given it is internal but this is more for the sake of explaining the process.
FinalPack
Summary – I learned a lot doing this exercise and I am really thankful to now have a good working knowledge of the UV layout software. I am super confident that I can layout a character quicker using this software than Maya, and get a much less distorted result.
Looking at the learning materials, although it was built with organic models in mind, I actually think the advantages for layout of mechanical geometry may be even greater, with great tools for copying UVs on repeated geometry.
I can only actually think of one disadvantage (apart from the cost of buying the software). I personally found it really frustrating not being able to smooth-preview the mesh?
Quite often in maya, I will hit 3 on the keyboard to better assess the geometry. Especially in areas like the pinching at the corners of the mouth. I found it almost impossible to visualize the edge loops when trying to mark up the cut for the lips. In fact at one point I was so frustrated that I opened the .obj file in maya just so that I could visualise the loop better. Also, maya tends to be better at selecting loops. I could select the loop I was after with one double mouse-click in maya. This screen snap illustrates what I mean – trying to select the correct edges in un-smoothed mode above (the only mode available in UVL) and smoothed (3 key in maya) below – I know which one looks clearer to me 🙂
lipsSelect

That said, I don’t think I will ever map a character in Maya ever again.
I save out as a .obj file and open it in Maya, map a checked lambert and do a quick render to see the result- very happy with him. Now just need to decide what he should wear? 🙂
fullFin

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s