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.
High
Poly
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).
Low
Poly
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.
Masks
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.
Finalization
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