3D Model/Asset Creation for the non-Artist Programmer Pt. 2

When I undertook this tutorial, I didn’t fully appreciate how much stuff I’ve had to research, learn, and “try and err” over and over again. It makes me realizethat I can’t possibly cover all the things I’ve found helpful, useful and educational. For example, I haven’t even mentioned OpenSCAD yet, when it’s been instrumental to my growth in 3d design and 3d Printing, and it has the word “Programmer” right on the home page!

Nevertheless, I’m going to try to constrain myself to the topics I consider indispensable to creating a 3d Game asset. To recap, those are:

1. Box modeling (Covered in Pt 1)

2. Smoothing, touch-ups, and detail (Optional!)

3. Texturing and UV (Necessary!)

Before I launch into my pragmatic, clunky attempt at an intro to UV, which is something I understand nominally, I’d like to talk just a little about that second step.

Detail Work

I almost didn’t want to broach this subject at all, so I’m going to do it briefly. As a programmer, your primary objective should be to make your program work according to your design. For that reason, I’m going to suggest that you NOT get hung up in the fine details of your 3D Game assets. This is why you won’t find anything about Rigging, Normal Mapping, extensive sculpting tools and how to model your drawing in this tutorial (I’m making a note to myself now that I should enumerate resources
I’ve found on those topics later).

Nevertheless, I’m calling this step out because, in your workflow, you should keep this work distinct from your box modeling. When you’re building a car for your game, you should not be modeling the lug nuts unless the body shape is complete and looks passable for your prototype. It’s a classic newbie mistake to get hung up on minor details before the broad strokes are done.

Rather than going through all the tools and techniques available for fine model details, I’m going to list just a few that allow the detail work to begin. From here, you can experiment and do your own research to become a more proficient modeler.

1. Save Copies – Detail is easy to add and difficult to remove. Whenever you plan to do detail work on a particular section of your model (or for that matter, make any kind of substantial change), use the “Save a Copy” feature of your program. In Blender, it’s easy: File -> Save Copy (Ctrl Alt S). When you save a copy of your model, you retain the state it was in, so you can easily go back if you find yourself too far down a rabbit-hole.

2. Don’t forget the Edge loop (Ctrl R): If you read the Box Modeling tutorial from Pt. 1, you learned about this powerful tool that allows you to add model detail without sacrificing organization and clarity. Creating a few well-placed edge loops can give you the polygonal resolution you need to enhance your model’s detail without creating unnecessary complexity. If that won’t cut it, though…

3. Extrude (E) and Inset/Ouset(I): These tools let you pop faces out of the model easily. The combination of these is so useful, I have frequently created usable models using nothing but simple scale transforms, Extrude and inset. Don’t forget that Inset can serve as a “smoother” extrude
using the Depth feature (I to inset, then hold ctrl to set depth), allowing you to draw a surface out of a model while tapering the sides for a more natural protrusion. I may do a newbie tutorial in the same vein as this on these tools alone.

4. Subdivide and Subdivide Smooth (W, then select) can help you or hurt you: This tool is a quick and simple way to make your angular model look more balloonish. By dividing your polygons into many more polygons and shifting them around a bit, it smooths out some of the harsher edges, or add some texture to flat surfaces. Beware, though: It’s a macro-operation, and increases your polygon count dramatically. This can make UV mapping a little more complicated and slow your game down.

Subdivide with 10 cuts, slight fractal (randomness) and mid-smoothness

That’s it for now. Again, for an aspiring-but-not-quite
artist, it’s better to start simple. Especially with this next topic…

Texturing and UV

By far, this was the most annoying thing I’ve had to learn. It’s not that it was hard to do, or that I expect it to be hard for anyone to learn, it’s that I had such a hard time finding out information that I could use quickly without having to dig toward the next topic. Before I go any further, here is a list of the tools you’re going to need:

1. Your 3D Design program (hopefully Blender, because I’m targeting Blender).

2. A 2D Graphics Program, ideally one capable of layers (I use Photoshop, but GIMP is a suitable application).

Moreover, I’ll throw a plug in for a plugin I used, not because you need it, but because it was really, really helpful. Filter Forge is one of those programs that isn’t free, but every now and then goes on sale for a low enough price that you wonder who buys it when it’s not on sale. You don’t need this, but if you get the demo and see what it does, you’re going to want it… I’ve used it for every game texture (Hull, ground, starry sky-box, etc) I’ve made since I purchased my copy. In short, it lets you create just about any kind of texture for a surface while not knowing anything about art, is fully customizable, and delivers an entire community to help you. It’s designed to work with Photoshop, but can be used independently to create images.

Now, on to business.

UV Mapping is the process by which you’ll create a template to texture your 3D Model. If you don’t do this, your model will look bland and monotonous, so it’s completely necessary.

The UV map is basically what you’d have if you wrapped a model in paper, traced its outline, and unwrapped  the paper onto a flat surface. As usual, there’s more than one way to do this. In my tutorial videos, I’ll demonstrate the easy way I’ve used and the result. The whole workflow consists, basically, of:

1. Creating the UV Map and saving it with your model.

2. Extracting the UV template, which is sort of a “Paint-by-numbers” for your model.

3. Texturing the UV template.

Start with this:

Once you’re done doing that, you’re in the right place to start editing your UV. Not much to say there, so watch this next one:

That one was a little more interesting, wasn’t it? You’ll notice, by the way, that I’m only ever working on half the model. The other half is never selected, and not present in the UV maps when I’m done. This is a nice side effect of the Box Modeling technique I used to create this model (See Part 1 for the link). I used a Mirror modifier to make my model symmetrical, including its UV map. Unity will import this .blend file and use its UV without an issue. If you do need asymmetrical textures on your model, you should apply the Mirror modifier before beginning UV Mapping.

Once your UV Map is created, save the Blender file, and the UV map will be saved with it. Unity will import the UV map with the model, and when you import your texture and apply it to your model, the UV mapping will be correct.

You’ll still need to create your texture, though. Watch this to see how I like to slap it all together:

Whew.

At the risk of sounding like a broken record, I want to reiterate a point about this tutorial. If you aspire to be a great 3d designer/artist or movie-maker, you’ll need to keep up your research. This may help get you used to these concepts if you’ve never used them before, but this is a much bigger world than these few techniques, and “one size” doesn’t fit even 5% of the world. Hopefully, though, if you’re an aspiring game designer with a nack for hacking code together, this will inspire you to do it yourself.

A programmer is uniquely gifted in the information age. Being able to build a software system means that you don’t have to wait for someone to come along to help you realize your creative vision. Don’t let the daunting and (semi)exclusive world of visual design be an impediment to you! These days, with the tools freely available to anyone with an internet connection, there’s no reason that you can’t or shouldn’t create your own Game Assets to at least prototype, maybe even release, your 3D games. Good luck!