The character and clothing pipeline for APB Reloaded is very convoluted and can get very restrictive at times due to the nature of the game’s customization systems. In this blog post, we attempt to break this system down in order to provide an overview of the workflow we use when creating clothing assets for APB Reloaded.
For the purpose of this blog post we will be using the “War” clothing pack as our case study.
Concept and Mock-Ups
Before we start production on any final assets, we need to concept and prototype initial mock-ups of what we intend to create. It’s beneficial to use ZBrush for this stage as it allows us to quickly put together ideas that we know will work within APB’s customization suite. We may then add further details in Photoshop, depending on whether we feel the need to:
Once satisfied with our initial concepts, we will create another mock-up that fully fits within APB’s pipeline restrictions. This is a very important stage, as the sheer number of clothing options available to the player can also prove very restrictive from a development standpoint, therefore we must ensure that any new item of clothing can work with potentially hundreds of different combinations, with as little issues as possible.
With this mock-up we can test for any glaring issues as the last thing we want is potentially weeks of production time being wasted by major bugs that were found during the final stages of development.
During this stage we may also take the opportunity to refine the initial design.
As soon as we are satisfied that the initial mock-ups fit within our customizations system, we then move on to the next stage, which is the creation of the high poly.
The high poly is a high-density mesh that is used for rendering textures for our low poly game model. Normal maps give the illusion of extra geometry detail by altering how light reacts to the surface of mesh, whilst Ambient Occlusion is used to provide diffuse shadow detail.
We create the high poly first so we can then alter the topology of the low-poly mesh to match the high-poly as closely as possible before baking (rendering textures).
Our high poly meshes are created mainly in Zbrush, using the initial mock-up as a base. In some cases we may later refine areas in 3DS Max (such as with some of the hard-surface elements of the “War” outfit).
Once the high poly is finished, we then move on to the low poly. Which is the mesh used in game (as a ZBrush mesh consisting of millions of triangles would be unsuitable for real-time rendering).
Due to the fact that players can modify the height and weight of their characters, the majority of the base clothing in APB uses the same set of initial topology, which is then morphed depending on the clothing asset and shape of the player character in question.
Secondary clothing assets (such as hoods, headgear, body Armour and masks), are unique meshes that are snapped or placed on to the base topology as separate assets. These assets will not be directly affected by morphs, other than their placement in relation to the body.
In order to create an initial morph set, we first adjust our default topology to match the new high poly meshes. We will then re-create this process across various extreme weights and body sizes to create a set of morphs that should cover all player characters in game. This process is gender specific, so these steps will need to be further reproduced due to the differences in topology between the genders.
Unwrapping and texture creation
Once satisfied with our low poly morphs, we then need to ensure the UV’s are correctly unwrapped to allow for texture and mask creation. The UV points are the same across all of these morphs, therefore we only need to unwrap one (usually the default to provide the most balance and least amount of texture stretching).
When unwrapping these assets, we must stick to our template character layout, as the majority of texture space will need to be retained for other aspects of the character (such as skin and other clothing categories). This is because our studio editor generates new textures on the fly as the player puts various pieces of clothing together, therefore all unique clothing categories need to be unwrapped as if they were to fit on a full character texture sheet.
Once we are satisfied with our low poly morphs, we will then move on to rendering our textures. From the high poly we will render our Ambient Occlusion and Normal Maps, which we will then use as a basis for creating our final textures in Photoshop. In Photoshop we will also create our specular maps and in the case of “War”, emissive maps for artificial light features.
With our initial textures created we then need to create a series of color masks. These masks will determine what parts of the clothing players will be able to customize. The number of customization options increases with the number of masks. The War outfit for example, uses 20 different masks in order to provide as much flexibility as possible to the player. With this now set we are ready to begin testing in game.
Once these stages have been completed (and tested), we can then move on to the finalization stage, which involves rendering out icons and naming the assets in game. The icons themselves are rendered from 3DS Max using global cameras and shaders, in order to keep the UI consistent. With this complete, the only remaining steps involve marketing and release.
We hope you enjoyed our brief overview of one of the art pipelines powering APB Reloaded. The artists would wish to thank our player-base for the amazing customizations you continue to create with our work.
Thanks, and until next time...
APB Reloaded Team