Custom Wireframes/ Mappings
 

    In an effort to make this tutorial as comprehensive as possible I am covering some items that many of you may never need to worry about. Creating custom mappings or 'wireframes' to paint for a model is one of those issues. You will most likely come upon this circumstance if you work with a team that is creating new models to add into a game, whether it be professionaly or on an amateur level.  I would recommend that if you are given the chance to create the mappings yourself, then jump on it! No modeler can fully  understands the needs of a skin artist unless he has done some skinning himself. In fact most modelers I've worked with have an extreme shortcoming when it comes to doing the mappings for skins. Even upon giving feedback after feedback to relate the issues that would allow me to create the best skin I often would be handed something that was lacking entirely in its presentation to me.

    It is to everyone's benefit for the mappings on the model to be as good as possible. A bad texture/skin for a model can ruin the whole appearance. No one wants to spend hours of time, to have it sabotaged because the layout of the texture was done poorly.

    But on occaison you will not be able to do the mappings yourself, and in that instance you can use this tutorial as reference for your feedback to the modeler, OR you could point them in this direction to take a look at what I've layed out here so they might better be able to meet your needs.

    I happen to be in a great position here where I have taken up 3D Modeling recently and am doing the mappings for a new model. Therefore I will use that model as an example here that should provide great reference for you when creating the mappings that you need to do in the future!
 

    So lets take a look at the model in question. I've just positioned him standing next to himself here so you can get  a  look at his geometry:

Nothing incredibly exciting, just a normal human male weighing in just shy of 600 polygons.

Now first let me define what I think are the most important factors for your consideration when laying out the mappings for a new skin in no particular order:
 

 Now you know what points I consider to be important, let me explain why for each:


Avoiding errors.
    I know your saying 'duh!' of course you don't want errors, but this is worth mention as I've seen a lot of mappings that I would consider to be in 'error' where the people who did them had no idea there was a problem. What are some common errors:


Maximum coverage

    I see a lot of mappings done in the neutral position (standing there with hands down near your sides feet shoulder width apart) and the backside right next to it, which ends up only using 70% of the available surface area and looses out on a significant amount of potential for detail. Here are some tips on how to maximize your coverage:
 


User friendly mappings
    I've got a friend who really doesn't beleive in this at all but I argue for it for the following reasons:
Efficient use of texture size to save memory.
    Don't create a texture for your mapping that is 1024x2096. (Or any other really large crazy number) Stick to texture sizes that are mutiples of 8 and keep them as small as possible. This is extremely important if you are working on your own product, but still has a fair impact even if you are making a amateur add-on because if you allocate too much texture to your models you may slow your players frame rates down, or make a scene impossible for their video card to draw. Being efficient is a good practice for all levels of proffesionalism.  Here's my general recomendations to keep your texture size effecient:
Proper layout
    When laying out your surfaces make sure to 'unfold them' if neccesary. For instance if your mapping a head dont just take a shot from the front, and from the back. You wont be able to paint the sides of their head, the ears, the way the hair goes over the ear and sideburns, etc etc. Make sure to unfold the object so that all faces are visible to the artist. If you don't unfold your model you will have areas where 1 pixel of texture area will be stretching across what may ammount to 30 pixels of space when seen on the model from the proper perspective!

    Now lets take a look at the mappings I have created for the model I showed you above. My goals here was to create a detailed face, chest, and back, and reasonable detail for the rest of the model. In this particular instance I plan to paint a bandolier across his chest so I decided not to create symetrical mappings for his chest or back, as well as I'm thinking about a scar down one side of his face so that will not be symetrical either.
 

    So we see on the left hand side the 'wireframe' of the mapings I have created, and on the right hand side we see the texture I've created for it (displayed here so you can better visualize what each peice represents).

    On the right hand side we see his back at the top, and just below that his chest. These I have not utilized any mirroring. Also his face can be see off to the left hand edge, which was not mirrored either, as well as the back of his head. Everything else on this mapping has been mirrored, which effectively gave me almost twice the space!
 

Okay so for explanatory sake let me outline each peice that was mirrored:

    If these items had not been mirrored, imagine how small each area would be if I had tried to keep them within the same 256x256 texture! You can also see that I have arranged the peices in a mixed up puzzle style that allowed me to fit them together for the maximum coverage. A detailed oberserver might say 'oh well you didnt scale the back of the head up , look you had 10 pixels of space!'  Thats a good observation, but what you may not realize at first sight is that I scaled all sides of the head (front, back, left, right) at the same time and the same amount to avoid having odd unmatched seams when I paint them. So the back of the head theoretically could be scaled slightly larger but if I did then I would have a hard time matching the hairline from the side for example.

Finally lets take a look at the almost finished texture mapped and skinned model to see how its turning out:
 

Not too bad.
 

Finally I would like to show some examples of problems that I mention above so you can see what I'm talking about. I don't mean to be harsh here at all about the originator's of these items, in fact most are created by poeple who are good artists in one way or another but there are points worth critiqing, and therefore should be valuable as demonstrations.

Nore PPM:  Mapping Warp due to (non-uniform scaling)

The Nore PPM for Quake 2 was created for the Stand TC for Quake2 by Jon "shine" Jones, and mapped and skinned by Chris "shatterface" Holden.. and addtional skins by yours truly.
 

So here here are our two example skins for Nore showing both the 2D Skin (focused in on the problem area) and the skin on the model.
 

Chris Nore skin (final version)
My nore skin (in progress)
3d shot
3d shot

If you take note of the 2D shots on the top you'll see the skin I created had a uniform metal riveted strip around the edge, and the one that Chris created had a strip around the edge that varies in width. The reason becomse apparent when you display the skin on the model. You'l notice while the 3D Shot of Chris's model still displays some stretching/warping my shot is incredibly worse becaues I was unaware of the stretching that was going to happen when I created the skin. Particularly on the right hand side the metal strip is reduced to 1-2 pixel width when it should be more in the scale of 5-8 pixels wide. This is one of the factors I'm trying to portray in the things to avoid section. Obviously you can work around it, but it takes the artist more time, and multiple revisions to adjust the skin to compensate for warped mappings. A good modeler or skin mapper will hopefully make the attempt over time to reduce or eliminate this kind of problem.

I hope this has helped you learn some of the needs a skin artist will have for when you  lay out your mappings. Please feel free to write with comments, feedback, or suggestions.

Carl "slaine' Kidwell
melkior@planetquake.com