Game Character Creation Series: Kila Chapter 2 – Low Resolution Modeling
It won`t be long before the next generation of consoles land in our living rooms. Each will come with a promise of more memory, superior processing power and a host of other “next-gen” features.
To game artists this may seem like a dream come true. More power means more polygons, larger texture pages and limitless possibilities, right? Unfortunately this is rarely the case, and being economical will be just as important when working on a Playstation 4, as it is on an Xbox 360 or even a less powerful handheld device like the Nintendo DS.
In part two of the Game Character Creation series, you will be taking the high resolution model of Kila which you created in part one, and readying her to be integrated into the gaming world.
We will begin by fully optimizing the main model before we explore techniques for creating an economical and game friendly character, ready to be UV`d and textured.
1. Know Your Limits
Just as you made preparations before you created the high resolution version of Kila, you now need to ensure you know exactly what is needed from her real time version.
This goes further than a standard polygon and texture budget, although these are very important. It’s a good idea to also know what role she will play in the gaming world, how the player will interact with her and how she, in turn, will interact with the world around her.
Will she need to talk and emote? If so you will have to consider her facial topology ensuring it deforms correctly, allowing her to achieve different expressions. Deformation also follows through to how her limbs bend, her arms rotate and her fists clench.
Knowing this will dictate how you construct these areas, and you will need to make sure you leave room in your budget to cater for the extra geometry.
For this character you will have a polygon budget of around 10,000 polygons, but with that said, why not see just how low you can go, and also get her to look great.
2. Remove and Smooth
There are many ways you can generate a lower resolution model from an initially higher resolution version. Retopology as its known isn't new and has been part of game development for many years.
Retopology usually involves drawing new geometry over the top of the higher resolution model, literally painting polygons until you have a full, much more economical and topologically sound version.
Surface details are then transferred onto this model in the form of a texture, or even higher resolution details moved across onto a cleaner base mesh.
This time you aren't going to be using retopology to generate your real time version of Kila. I know it’s a shocker, but stick with me. You will initially use the high resolution version, and reduce her to get the model you need.
It sounds like it could be a lot of work, but remember that your main model was constructed using Subdivision Surfaces, so the proxy models are relatively low resolution anyway.
- Open your original model of Kila created during part one.
- You first need to delete anything which is mirrored or duplicated.
- Next remove areas like the seams on her jeans, or any geometry close to the surface. These aren't needed on the base mesh and will be added back into the model through normal maps. There is no point trying to add these in using polygons, as it will increase the polygon count, and cause issues as she deforms.
- Once you have stripped everything out, you simply need to add a single Smooth operation to each element. Because the initial version of Kila is a Subdivision Surfaces model, baking a single Smooth will soften the proxy model enough to match the silhouette of the higher version, yet keep her polygon count relatively low.
- Areas like Kila's torso, and possibly her shirt are pretty much symmetrical so don`t be afraid to delete half. This will reduce the amount of work you need to do, and once one half has been reworked you can always mirror it later.
3. Global Optimization
What you are looking at now is a semi-high resolution model which is far off your actual polygon limit, but it’s a great place to start.
It’s time now to dive in and start chopping away.
Because these models were smoothed, you will find that there are obvious edge loops which can be removed straight away, and as you work you will start to notice areas which need more attention over others.
Once the torso has been optimized for example, the arms will then seem out of balance, and so will the legs. The more you work, the more you will notice. Just keep in mind that this first pass is meant as a global reduction in the polygon count, so don`t worry about deformation, super clean topology or the models silhouette just yet.
You should ensure you focus on removing any Unused or Unseen geometry, but what do we mean by Unused or Unseen?
- Unused geometry is anything which does not contribute to how the model looks, or how it deforms. So an area which is flat but has divisions is prime for reduction as each division doesn't enhance the look of the model. That is unless it helps it deform.
- Unseen geometry is as the name suggests, it's anything which is hidden or not seen by the gamer. As well as the obvious geometry, which we will focus on in more depth later, also remove any polygons which are too small.
With those rules in mind, let’s focus on the hand first.
The hand is going to be one of the main areas you can optimize. It housed a lot of geometry initially to give you the details you needed in each digit, and smoothing it has just increased this amount simply by adding extra edge loops.
- Work your way up each digit stripping out any excessive edge loops and edge rings.
- The same can be said of the head, particularly the ear, mouth and nose. These were quite detailed initially, so we can afford to remove quite a bit of topology here. Be careful not to go too far though and remove too much, keep the areas around the eyes as curved as possible.
- Continue around the torso now removing any geometry which you feel isn't needed. Again, don`t be too concerned with the flow of the edges just yet, you are after a global reduction leaving you with less geometry to work with, but enough to work upon if you need to.
4. Shrink Wrap
I said earlier that we won`t be using retopology for this tutorial, but there are other tools you can enlist to help as you work.
For simple areas like the arms and legs, where at this stage you don`t need to worry about a huge amount of detail. You can always try building from scratch and reshape to fit the high resolution model.
To make your life easier though, you can take this further and use a Shrink Wrap tool, which can be found in most major applications, to get an exact shape.
- Create a relatively low polygon cylinder and position it so it sits outside one of Kila's legs.
- Apply the shrink wrap, telling the application you’re using to wrap the cylinder to the base model.
- What you are left with is not only a clean model, but one which also matches the shape of the leg exactly and is perfect for normal mapping.
Now, the leg is still quite low poly and if you look at the silhouette, you will see that some of the main creases and folds are missing. This isn't a problem though as we are in a good position with this model, and can build some of the larger details back in if we have room in our budget.
5. Remove Hidden Geometry
Once you have completed the first optimization pass, you need to turn your attention to the geometry which is essentially hidden. This includes parts of the torso covered by her clothing as well as the top of her shoes tucked sneakily under her jeans.
Unless you’re using cloth dynamics, areas like these will never be seen. Overlapping geometry will also cause problems when your character is rigged, and as it is viewed in the game engine.
When weighted to joints the polygons may clash, so as the character bends and moves, the geometry beneath will be pushed through the surface. A similar issue will arise in game, as the character moves from the camera and the engine gets confused about how the polygon’s should be sorted, and doesn't know which is in front or which is behind.
In short, it’s best to remove them and keep your model "single skinned" wherever possible.
Focus on the torso and her shirt initially.
- Delete all the geometry which sits beneath the shirt polygons. You can be quite brutal here, and don`t worry if some polygons sit outside the shirt and leave a hole.
- With those removed you can now combine the torso and the shirt models.
- Now work your way around the edges of the shirt, welding the two elements together. You can do this by creating new geometry, welding existing vertices or filling holes, so long as you are left with a single, seamless model.
- You can now repeat the process with the jeans and the trainers. Removing the hidden geometry from each before welding them together to again, make them seamless.
You should now be looking at an optimized version of Kila, who is also single skinned and ready for the next stage.
6. Surface Testing
At this stage you may think you have come to the end of the tutorial. You have a low resolution model which is optimized and has no intersecting geometry.
Even though this is technically true, it’s important to test the surface of the model and make enhancements and adjustments, not only to improve the topology, but also to get the most out of your normal maps.
If the optimization has been taken too far, the normal map won`t bake correctly or may result in surface artifacts. On the other hand, applying a quick and dirty normal map now may highlight areas which can easily be reduced further, shaving off more precious polygons which aren't needed.
Another key area to check for are your model's seams. If you are opting to keep the shirt and torso separate, as we will, the normal map or other texture pages could bleed between UV shells and cause major issues as you try to paint your textures.
First you are going to generate a quick normal map. Don`t worry about spending time working on a nice UV layout, this can come later. For now we only want a preview of how the normal map will look.
- Select each element and use Automatic Mapping to throw some UV`s onto them. Don`t even check the UV editor as these UVs are expendable.
- Use the high resolution models to bake out a quick normal map for each low resolution version and see how they look.
It may not be immediately obvious, but look at the wireframes, particularly around areas where different objects overlap. In this case focus on where the shirt meets the torso beneath her armpit.
You will see that because the polygons don`t follow the edge of the shirt exactly, you are left with a darker area where there was no geometry to originally bake out, which will mean those pixels could end up sitting on another UV shell.
If your plan is to have the shirt and torso as a single UV shell then this may not be an issue, but try to keep key areas like these separate when texturing to make them easier to work with.
- Work around the seams now adding in extra vertices and edges to help keep each element inside it's own shell.
Checking seams isn't the only reason to create a test normal map, it’s also good to use one to help guide you as you carve in more details. You can see this if you next take a look at the jeans.
- The initial model is quite flat and detail free, so begin by baking a quick test normal map. This greatly improves the overall look of the model, but now that we have it, we can take things a step further.
- Use the normal map as a guide to now enhance the model, building and cutting in more of the creases and fold details, as well as the strap around her thigh.
- Because you’re editing the models surface, you will need to regenerate the normal map to stay current, but it’s a quick two second job and means you are working precisely and correctly.
Continue this now around the rest of the model repeating the same procedure –
- Apply Automatic UV Mapping to give you a quick UV layout.
- Generate a preview normal map, so you can check the model's surface details.
- Use the normal map to guide model adjustments and enhancements.
- Regenerate the normal map and review the model again until you’re happy to move on.
7. Soften the Silhouette
Looking at a model, even if lit by default viewport lighting has its obvious advantages, but sometimes you need to turn the lights out to see where the model needs the most attention.
A model's silhouette, if neglected, can actually make your character seem much lower resolution than she actually is. Jagged, angular curves can`t be hidden with a normal map as it doesn't physically change the surface of the model, so you need to tend to these by hand.
Turning off the viewport lights will allow you to focus on the outline of the model as you rotate around it, and make those harsh edges more obvious while also showing areas which may also be too flat.
- Begin with the upper body and focus more on curved areas initially like her breasts and shoulders. As these are curved, they will highlight the limited amount of polygons currently used in their construction.
- Don`t just apply a smooth to the surface and globally add divisions in these areas. If you can, consider where the polygons are needed most and add them sparingly, while also moving around the torso as you work to view her from all angles.
- If you move down to the legs next, the silhouette can be enhanced a slightly different way here, and in some respects you probably did some of this work earlier.
- There are no large curved sections, so this time focus on enhancing the silhouette through the creases, folds and general shape of her thighs.
- Previously you did this with the help of the normal map, but this time you are working blind in a way as you are ignoring the texture’s and focusing on the outline of the model. So, as an example, if the folds are too angular you could add an extra edge loop now to soften them.
8. Check Deformation
You have spent a lot of time working on how the model looks, but now it’s time to take a look at how she will deform.
Model deformation is exactly that. Once the mesh is influenced by joints, or even blendshapes, it will bend, twist and stretch to achieve different poses and expressions. If the model isn't prepared for this it will deform badly, breaking the illusion of life and ruining all your hard work.
If a knee or a finger doesn't have the correct topology it will collapse in on itself as it bends, or the outer curve will become angular. Something we just spent time trying to avoid.
Making areas bend correctly isn't always a case of throwing in a few extra edge loops and hoping for the best, especially if you are restricted on polygons. The figure below demonstrates a selection of models, each illustrating how different topology arrangements can benefit a model as it bends, while also retaining its overall form.
These work well in areas like fingers or knees which only have one pivot point.
- Take these examples now and apply them to your hand model, ensuring the fingers will deform correctly and at the same time allowing you to remove some of the redundant geometry.
- This setup can also be carried through to the knees, elbows and many other areas of the model and if you’re at all unsure, don`t be afraid of adding in a few joints and testing them as you work.
Let’s move to the rest of the body next and in particular her face.
At present the current topology won`t allow for good facial expressions, simply because as the polygons stretch and squash the edge loops will move unpredictably and cause surface errors, and bad deformation.
Ideally you want your edge loops to follow natural muscle groups, and this applies to the rest of the body too.
Trying to follow the natural flow of your muscles will mean, as your low polygon character moves and deforms, the polygons will also mimic the movement of muscles moving under the skin.
Now, I`m not saying you will get an exact and realistic muscle simulation, but taking the time to add this in will help as Kila is animated later.
In the figure below you can see how this approach can be added into the face geometry, but don`t be afraid to follow this through the whole model.
9. Final Model Adjustments
You are now at the final hurdle and your real-time version of Kila is almost complete. You have spent time reducing, optimizing, checking and refining the model's surface and all the important areas have been attended too.
As a last step, it’s a good idea to have a final review of the model as a whole, and in particular refer back to the rules we stated in Step 03, and shift your focus back into chipping away at those Unused and Unseen polygons as well as ensuring the topology is as tidy as can be.
I can`t stress enough the importance of tidy topology!
Feel free to also keep generating the test normal maps as you work to make sure the model is the best, cleanest and most optimized it can be. And don't forget to also follow these steps through to generate her belt, hair and other accessories.
We have come to the end of Part Two of the Game Character Creation series, and you now have both a high and low resolution version of Kila. In Part Three we will take the lower iteration and prepare her to be textured by applying a full set of UV`s and arranging her texture pages, while also exporting a few key maps to get us prepared for painting.
For now though continue to polish, adjust and rework your models so they are ready to go.