In this part you'll continue unwrapping the main body geometry of the Willys jeep. And finish unwrapping the hood, grill and headlights. This time you'll get dirty with a bit of manual work, which will hopefully give you confidence in adjusting your UVs to your needs.
This tutorial will teach you how to unwrap a hard surface model. For that we will use the model from my previous “Modeling a High Poly World War II Willys Jeep in Modo” tutorial. We will unwrap the Willys jeep using the default Modo tools and the ETEREA UV tools which are a great addition to the Modo toolset.
For most people unwrapping is a tedious task. When you grasp the idea and learn the tools the process will become easy and comfortable. Modo helps in making the process smooth and painless. It gives you only a few tools, but they can easily get the job done. I hope that after you complete this tutorial you’ll understand the UVing process and will feel more comfortable unwrapping.
To start, let's get back to our body mesh. First let's reduce the amount of seams. Fewer UV shells will also make the packing easier, so select all the bench geometry which is made up of three main planes. We can connect these into one UV shell.
First select the geometry, either in the viewport or the UV window and move the shells away from the rest of the UVs. Moving them away will make it easier to work on.
Since the seams at the outer edges will be easily visible, let's get rid of those. Select an edge like in the picture below and stitch them. You can use either 'Selected' or 'Unselected' to sew these shells.
Also stitch the second top edge. As you can see we still have a seam running vertically at the geometry edge. We can't remove this without introducing distortion.
Let's align the shell horizontally. I highlighted the buttons in the Eterea palette which can align our shell. You can also find those options below the standard Modo UV tools. You can get more flexibility with the Eterea scripts though.
Do the same to the geometry on the other side. One thing that can make your life easier is unwrapping the geometry on one side and duplicating it on the other side. UVs are properties of the geometry. You can easily delete polygons and put unwrapped ones in there place. Later we will use this technique.
Most of the UV shells are now aligned horizontally or vertically. Let's fix the front geometry orientation and Align those vertically.
Now select both benches and the mudguard's geometry and Move them close to each other in vertical order. We will use the Eterea script to get the most from packing our UVs. You can easily keep your shells with a constant distance between them and in a perfect horizontal/vertical pattern.
Below you can see all the options you can use to align your shells relative to each other. There are many options, so I highlighted the ones I used to align the selected shells.
The Eterea script has aligned our shells. I also used the script to place them at a fixed distance from each other. One of the buttons (the one with question mark) let's you set a custom distance between shells. I used one with '01' for distance.
Let's unwrap this long thin geometry that runs around our body mesh. For that we will use the 'UV Peeler' tool. It's great for unwrapping long opened pieces, but as you can see our UV shell is closed.
Open it by selecting the lower part and moving it away with 'Tear off' checked. I broke this in two where the body starts tapering.
Since I want to sew the main body UV shell with this stripe I moved those away. The 'UV Peeler' will straighten our thin piece and we will then be able to stitch it to the body piece. As I mentioned earlier, we will get some distortion on the corners.
First let's check where the vertical seam on the body is located. To do that, I select those edges in the UV window and check where they are placed in the 3D viewport.
Now using the 'Move' tool break those two at the edge where the seam is located. Don't deselect this geometry.
Now using 'Ctrl+X' and 'Ctrl+V' detach this piece from the body geometry in the 3D viewport. It's important because if you don't do this, the 'UV Peeler' will mess up the UVs we have already done. Also hide the rest of the geometry.
Now select the edges like in the image below.
If you now activate 'UV Peeler' you will get a new gizmo in the UV window. It will conform to 0-1 space. The wider polygons in the lower part are the corner. Modo tries to remove the distortion by making those polygons bigger, but if you look at our 3D viewport you will see our checker board looks horrible.
You can change the proportions of the UV shell by dragging the teal crosses. If you look at the image you can see I moved the top one so the proportions mostly match those in the 3D viewport. Try to match those so the squares on the straight parts of the geometry are square.
Now you can judge the scale of our corner distortion. As you can see it's pretty noticeable, but like I said before it's a trade off. The polygons aren't big and the texture stretching won't be bad but if you go for big close ups in this area, it's probably not the most optimal unwrap. Remember you can always fix the distortion/seams by using a projection texturing app (like Modo!)
Just like many times before, you can use the straightening technique I showed you earlier and straighten all the vertical edges.
Now we will do what we can to stitch this part to the main body. Scale this long piece to match the body scale (watch the checker pattern in the 3D viewport). You can also use the 'Pack UVs' tool with only 'Stretch' checked. It won't give you perfect results because our thin piece is rather distorted and Modo won't be able to calculate the texel density properly. You can get really good results by scaling it and looking at the checker board pattern though.
Turn on 'Element' action center and click on the corner vertex of the thin piece. Bring it close to the vertex with which it's welded in the 3D viewport. Leave some vertical space though. You can use the snapping options to match it horizontally.
Because we used the 'UV Peeler', the edges don't line up with the body's edges. You can't line them even by scaling this thin piece up. Once again it's connected with our distortion and it's important to line them up properly. Use snapping with Vertex mode and move the thin stripe edges to match with the common vertices. Do it for the straight part of the UV shell.
You can see below what I mean by the straight part of the UV shell. Where the side plane of our body starts to dip down we won't sew it yet. You can see I lined those edges to a point where the distance between those shells starts to grow.
I also detached this thin piece in the 3D view (before using the 'UV Peeler'.) You need to stitch it back before sewing the edges in the UV window. You can easily do that by turning on the Modeling panel (shortcut is 'F2') and using the 'Mesh Cleanup' function. It will weld any vertices lying in the same point in 3D space.
Now you can stitch those two shells. You can use the 'Selected'/'Unselected' sewing method to connect them. But be sure you don't sew where we didn't line up the edges yet (look at the edge selection in the picture.)
Now let's continue to weld the rest of the vertices. We will need to bend the UV geometry to align it to the rest of the shell.
You can do it by selecting all the vertices you want to align, turning on 'Element' for an action center, and clicking on the unselected vertex (highlighted in blue) to align the action center.
Now slowly rotate those vertices until the first vertex lines up with the one it's welded to in the 3D viewport.
Now deselect the four vertices as shown in the following image. Once again aligning the action center, but this time to the bottom vertex of those 4 previously selected. Again Rotate the rest of the selection until, the closest to the gizmo vertices, line up.
If the gap between those lined up vertices is really small, you can select the not welded edges and use 'Averaged' to sew them. It will average the position of the vertices belonging to those edges.
Continue going up by rotating and deselecting the aligned vertices. Don't be afraid to move the edge running through the 4 vertices you're trying to line up if the gap is too big. All we have done here isn't perfect, it's made by hand and it's bound to create some distortion. If you now look at the 3D viewport the pattern flows without a seam through our outer body geometry.
Now try the same with the other side. Remember to Detach the geometry in the 3D viewport first. Use 'UV Peeler' and Move the new geometry close the body UV shell. Try to match the scale and line up the thin stripe's edges.
As you can see, after the rotation the vertices didn't line up properly. So I moved those a tiny bit to line them up.
As you can see, we've got our border piece sewed to the body UV island. But there is still the front part left.
I detached it from the polygons connecting it to the dashboard. I also detached it in the 3D viewport to be able to use the 'UV Peeler'.
As you can see below, we can get really good results with the 'UV Peeler'. Even if you don't sew this shell to the main piece it's way easier to pack a straight element than one with curved geometry at the ends.
I also Scaled this piece to match the scale of the rest of the geometry. Since there is still much to cover, I won't stitch it to the main body piece. You now know the technique and you can practice it on this piece.
I used the 'Pack UVs' tool without 'Orient' to match the scale and pack the shells into the 0-1 space. I also aligned and scaled down the geometry from behind the wheels. I scaled it down to be able to squeeze it in as you can see in the picture below. At the normal scale they wouldn't fit there since in 3D they fill all this space. Those polygons don't need the same texture resolution as the rest of the geometry since we won't see them and that's the most efficient place to put them.
As you can see I also lost those 4 pieces that we neatly aligned with the Eterea scripts. Remember that when you run 'Pack UVs' you can mess up your aligned UVs. So be sure you select the shells you want to pack before you run the tool. Now you should be familiar with those align tools though and we'll really put them to use later on.
The parts I really don't like are the borders of the hood. Like I said before, it's not an easy task to pack UVs when you have parts like that.
Detach them from the geometry and using the 'UV Peeler', unwrap them into straight pieces. Remember to weld all those previously detached polygons with 'Mesh Cleanup'.
Now Move the UVs outside the 0-1 space. Also unhide the rest of the body object geometry.
Let's continue by unwrapping the front mudguard. First I selected all of the hard edges using 'Sharp' automatic selection. Be sure your loops are closed. I used the 'Unwrap Tool' with 'Group Normal' mode. Notice I didn't select the outer hard edges because I don't want seams in such a place. We could break those and later stitch them like we did with the body shell, it would require the bending method though (which takes time.) This object is simple enough and we can trust Modo with unwrapping those automatically.
Below you can see I broke one of the planes, where it bends, in two. We won't see this part and it's way easier to pack two straight pieces than one L-shaped.
I manually packed those shells in logical order, so I would later know which part is which.
I also didn't like the slight bend in the main piece. Just like before you can fix that by rotating the part around one of the vertices. You'll notice a bit of red at the bottom of this shell, that's because by rotating this geometry I created some overlapping. I fixed it by moving some vertices. Don't be afraid to introduce some minor tweaks by hand.
Now unhide the rest of the geometry. If I now use 'Pack UVs' it will match the scale of our body with the front mudguard. As you can see, the difference in the scale made our body parts overlap. Our mudguard parts also have a huge gap between them. That's why you should first match the scale by hand. It won't be perfect, but the smaller difference between the scale will result in less destructive automatic scaling.
Let's now talk about overlapping UVs. You can have geometry sharing UV space. For example, Delete the mudguard on the opposite side of our model.
Now duplicate the already UV'd geometry on the other side. You can align the mirror to the center vertex by using snapping to get perfect symmetry.
As you can see the duplicated geometry is also unwrapped. The UVs of those copied polygons are overlapping. As I pointed out before, the red color shows you the overlapping in the UV window. If you don't want those to overlap you can just select one of the mudguards in the 3D viewport and Move them in the UV window. You can save UV space by overlapping geometry but they will be textured the same way, so be sure those parts won't be seen at the same time and they won't have any characteristic details on them.
Let's now isolate the grill geometry. Start by running the 'UV Projection Tool' with 'Atlas' mode. As you can see it's a good start.
This method won't unwrap cylindrical shapes right. As you can see the selected parts are broken into lots of smaller pieces.
Hide the rest of the geometry and run the 'Unwrap Tool'. As you can see the result isn't good because we didn't specify where to cut those cylinders. Also I have small bevels where those cylindrical shapes meet the front of the grill.
Since I want perfectly rectangular shells, I will use the 'UV Projection Tool' with 'Cylindrical' as a projection type.
Do it for all four shapes. As you can see the UVs fill the 0-1 space.
Select the two bigger shapes and scale their vertical size down until you get proper squares in 3D viewport. Smaller shapes will need a different amount of scaling, so do it separately.
Here I unhid the rest of the grill. For now the scale of those circular shapes doesn't match the rest of the grill UVs. We will match it later. For now I placed those 4 shapes at the top. I aligned them with Eterea script. Unwrap bottom plane with 'Unwrap Tool'. Before, Modo broke it into a few separate shells.
I aligned the smaller pieces with Eterea scripts. You can sew those pieces to the vertical polygons of the grill ribs, but because of the space constraints I won't do it here. I encourage you to split those inner polygons in the middle. It will give you two separate shells for each space between the ribs. Since I modeled those spaces tapered in, It would require straightening of the vertical edges.
Before you sew those small pieces, it would be good idea to sort those vertical polygon stripes. Just select one polygon in the 3D viewport and grow the selection in the UV window to select the whole shell. Place them in the same order they are in the mesh. You don't need to be precise. Eterea's magical tools will do the precise aligning.
After some aligning and scaling (you can use 'Pack UVs' with only stretch to match scale) I packed my shells. As you can see the side polygons are at each side of the front plane of the grill. Later when I texture I can easily tell where each piece is.
Now I will show you an alternative method of unwrapping this part (selected in the image.) I selected the front plane of the grill and the cylindrical parts where the lights go. By unwrapping it like that I will get rid of the seams where the cylindrical geometry goes into the front plane. It will introduce some distortion.
Let's use the 'Project from View' tool. It will use your 3D viewports view to project the selection onto the UV plane. Change the 3D viewport to the Front view and activate 'Project from view'. Since the geometry around the lights is perpendicular to the front view, its UVs will be as bad as they can get.
As you can see the pattern on those polygons is stretched. To fix it select the loops around this part as shown.
Be sure you set your Action Center to 'Local'. Now activate the scale tool and Scale those loops down.
Since there is some angular difference between the polygons creating this shape I also had to deselect the first loop and scale down the second one separately. As you scale you will slowly notice the square pattern looking better and better. Do it until it looks good. There will still be some distortion, because the inner edges of the cylindrical shape were squashed when we scaled those down.
Match the scale with the rest of the geometry and Move those shells out of the 0-1 space to give yourself some room to unwrap the rest of the geometry.
To finish this object (if your lights are a different object be sure to add a proper UV map to them) let's unwrap the lights and the elements below them. Isolate them with 'Shift+U'. With such simple elements you can easily predict where seams could be placed. First I run the 'Unwrap Tool' to give those some UV data. That way they will appear in our UV window. I then selected the loops running around the main shapes of those objects.
As you can see with edges selected the 'Unwrap Tool' broke the meshes into a few islands. But we still need to flatten them.
If you now run 'UV Relax' on those it will flatten them nicely. Remember to orient the shells using the Eterea scripts.
Pack the elements tightly, Scale them down and Move them away.
Now you can duplicate this geometry on the other side. You can leave those polygons stacked in the UV window or you can move them to give them unique UV space.
Congratulations. You finished unwrapping the body geometry. Next time we will continue with the seats and the front window.
Thank you for reading this tutorial. If you have any questions leave a comment or write me an email.