CharacterArtGuide v1.1 Watermark
CharacterArtGuide v1.1 Watermark
Table of Contents
(Press Ctrl + LMB on any chapter to be forwarded)
SETUP
ASSET CREATION
In General
Triangle Count
Stitches
Zippers
Buttons
Caps
Separated hoodies
STITCHES
FINAL MAPS
RESOURCE FOLDER
EXPORT
QUALITY BAR
STEPS OVERVIEW
USEFUL PAGES
BASEMESH LOCATIONS
Confidential Property of 2K Games
SET UP
You are free to use any software for modeling you like but we use Maya 2018 for delivering an asset.
Below you can find the page that will take you through the steps of setting up Maya 2018 and other
installations and setup guides you will need. For now start with the Maya installation:
https://hub.gametools.dev/pages/viewpage.action?spaceKey=H13&title=Art+Tools+Setup
Additionally to Maya you will also need NgSkinTools and Simplygon. Follow the NgSkinTools guide as
described in the page above. For the Simplygon installation, please refer to this more detailed and up to
date page:
https://hub.gametools.dev/display/H13/Simplygon+installation
(You’ll need version SimplygonSDK_8.3.35000.0.exe)
You will also need to set up your Perforce to connect to our server.
Make sure you go through the Dashboard Tool Configurator and Envy setup steps. They are explained in
the H13 Art Tools Setup page. You will find their setup guides at the bottom of the page, below the
Perforce setup. You will need to do those to get the H13 tools to work for Maya. I will talk more about
H13 tools later.
Confidential Property of 2K Games
After completing these steps ensure that the H13 tools are working. Open Maya (and always) via:
D:\!2K_Games\volt_dev\art_tools\coretech\bin\maya.bat
NOTE: Make sure you always open Maya using the directory above or else the H13_Tools shelf will not load.
A new shelf named H13_Tools should appear along your other shelves. This shelf contains
scripts/buttons we use for preparing the Maya scene and for exporting our meshes to the engine.
Try out a few tools and see if they load or do something. I will explain more on H13 Tools later.
Confidential Property of 2K Games
When assigned an asset you must create its resource folder on Perforce. This folder contains your work
files and the Maya scenes for exporting the asset to our engine, more on this later.
d:\!2k_games\volt_dev\resources\models\characters\
Within the characters folder are subfolders that correspond to different characters. The folders mainly
used by Character Artists within the characters folder are:
- rhap_female
Contains hero Mara and all other female assets.
- rhap_male
Contains hero Tobias and other male assets. Male is the ‘default’ size.
- rhap_malebrute
Contains hero Holt and other male assets. Malebrute is larger than male.
In each of those folders you will find more subfolders, such as:
- accessories
- body
- bottoms
- hair
- heads
- outfit
- shoes
- tops
Note: Please make sure you create your resources folder in the corresponding folder.
Confidential Property of 2K Games
Although you will be provided with the exact name for your asset, it might be good to know how we
come up with those names so you will get an understanding on where to locate things:
You will notice that some assets can hold additional tags like ‘jer’ as used on the helmet listed above
which stands for ‘Jericho’. They are usually made up to clarify an asset, like this helmet is specifically for
the Jericho soldiers and not used elsewhere.
The numbers are just a number and make each individually asset unique to avoid duplicates. Every new
asset with a name that already exists will get it the follow up number. If it will be an asset that was not
created before, it will have _000 behinds its name, stating that it is the first of in line of the series.
Confidential Property of 2K Games
ASSET CREATION
Please read the following page to get a detailed understanding of the steps we take to complete an
asset: https://hub.gametools.dev/display/H13/CHARACTER+BEST+PRACTICES
Basically, you can create your model using any software you prefer, whether it is Maya, Blender, 3ds
Max, zBrush Mudbox or else. Keep in mind that though you can use any software, you will be delivering
your final model in Maya 2018.
In General:
- Smoothing groups must be done in Maya to keep our bakes uniform and to avoid smoothing errors in
engine.
- Every asset must have 4 UV sets:
- uv1
- uv2
- uv3
- uv4
- Stitches must be avoided in the high-poly and should be painted in Substance Painter.
- Buttons for main heroes are done as geometry.
- Buttons must be placed above a vertex.
- Use the Zippers atlas when creating zippers.
- Cap geometry on the inside/ends of clothing, such as collars, cuffs and waist area.
- Add enough resolution in topology at the collar and sleeve ends.
- Marmoset Toolbag 3 is used for baking.
- Do not add micro-details in the high-poly and bakes. They are done in texturing with Minerva.
- We encourage though to add memory folds and wrinkles. They will bring good to AO and Curvature maps.
- When an asset has a hoodie, you must create two versions: over and resting state. Separate them in the
low-poly bordered by the seam/uv cut. More on this below.
Triangle count
Stitches
Stitches must be avoided in the high-poly and should be painted in Substance Painter. The reason for
this is that we can easily extract a black/white mask used for coloring during texturing.
Another reason is that by painting them in layers the workflow is non-destructive. If for example we
figure out that the stitches are done too small or should be removed from an area, it can be easily fixed
within Substance Painter. When done in the high-poly, one has to re-export the high-poly and re-do the
bakes.
We use the super_stitch brush, which can be found under Tools in Substance Painter:
D:\!2k_games\volt_dev\resources\substance\shelf\presets\tools\characters\ super_stitch.sppr
Zippers
For the zippers we use a designated texture atlas which contains two type of zippers and is used on both
geometry and a tile-able strip with opacity.
The teeth of the zipper are a chunk in the atlas on which the strip of geometry must be tiled upon.
Confidential Property of 2K Games
The placement of the zipper geometry and tiling must be done in the second uv channel, called uv2. This
is the uv channel Minerva will be looking for when dealing with this zipper material.
In your uv1, your default uv channel, you must place the zipper uv islands in an empty space. You can
shrink them down as they only need to have color information for a ColorID mask. This allows us to give
them a specific material, like plastic or metal and thus do not require the islands to be scaled at their
original texel density size.
Conclusion:
NOTE: We plan on making an improved zipper atlas soon that will have the tile-able teeth from top to
bottom so that strips do not have to be cut at specific points. This will make it easier to tile the teeth.
Confidential Property of 2K Games
Buttons
Buttons are done as geometry and are not using any atlas. Their uv’s must be considered in uv1 and can
be overlapping to retain uv space.
Confidential Property of 2K Games
Caps
Close off the ends of sleeves, collars, pants and waist area (or elsewhere if applies) with geometry and
push it a bit inside. Usually you do this by selecting the edgeloop, extrude, select vertices and merge into
one. See examples below:
Confidential Property of 2K Games
Separated hoodies
When the asset you are creating has a hoodie, most likely we would like you to make two versions: a
resting and an over state. Basically, having the hoodie over the head or resting on the upper back.
In order to achieve this you must create two simulations of the hoodie in Marvelous Designer while
keeping the torso frozen. It is important to have the torso not changed because the seam at where the
hoodie is attached must work for both versions. Both versions should be able to attach to this seam in
the low-poly and this is also the seam where we make an uv cut. Please refer to the examples below:
Confidential Property of 2K Games
UV’s
The UV’s can be done in any software you prefer but there are a few things you must keep in mind while
doing them:
1)
Where allows, try to keep the borders straight. This mainly applies for straps and the horizontal
bottom and vertical side borders of garments.
2)
Overlapping uv’s is allowed, but preferably all will have their own uv space. UV overlaps are
mostly done for smaller meshes within a bigger mesh, like buckles and buttons. For the main
hero’s we do not overlapping sleeves anymore like how was done in Mafia 3, but will each have
their own unique uv space. Move overlapping islands to the side (1-2 uv space).
3)
The cap geometry explained in ‘Asset creation’ must be placed on top of an existing island with
the same material properties. So, for example, when you have a jacket and a shirt combined, the
cap from the shirt must be placed upon a shirt island. Cap uv’s can be downscaled if needed and
do not need their full texel density. A good practice is to place them on one of the bigger uv
islands with not too many folds information to get the most information onto your cap.
4)
Keep a reasonable amount of edge padding between uv islands but also from the uv borders.
Example below:
Confidential Property of 2K Games
(In the UV’s above you can see on the upper left corner the zipper uv islands stacked on top of each
other. As described in the ‘Zippers’ chapter, they must have their own unique uv space in uv1 and can be
downscaled. See ‘Zippers’ section under ‘Asset creation’ for more details.)
Confidential Property of 2K Games
Additional UV channels
Besides the first uv channel (uv1), you will need to create 3 additional uv channels called uv2, uv3 and
uv4. Although they are mostly done while texturing, uv2 must be done during asset creation if your
model has zippers.
uv2
This second uv channel is used for texturing in Minerva and some basematerials require uv2 to
work. Within Minerva you can specify a material to be tiling and this tiling can be done with uv2.
UV islands can be scaled to any size to accommodate the resolution/tiling of material detail for
texturing. This is good for getting micro normal detail on our assets by scaling up islands in uv2.
Although Minerva allows us to do tiling within Substance Painter without the use of uv2, it can
be handy sometimes to do it in the uv’s instead. For example, when you have a collar uv that is
curved and not straight, you can then with uv2 make this uv island straight so that the tiling will
follow the flow of the collar. uv2 is also used for certain materials that require this channel in
order to work such as zippers. They use uv2 for the primary map information (most of which are
atlases) and uv1 is used to give them a unique space for a ColorID.
uv3
The third uv channel is used for the placement of logos. Logo materials have their own atlases
in which uv islands should be placed. Usually you cut out the faces from your mesh that will
contain a logo and enlarge, rotate and position them accordingly to the atlas. Any other uv
islands besides the logo uv’s can be either left out or downscaled to avoid any of the logo
information to leak through.
uv4
The last uv channel is used by the engine as a lightmap. For this channel you need to select all
the content of your asset and lay them out with a good amount of edge padding. No overlapping
is allowed in uv4.
Confidential Property of 2K Games
Baking
Marmoset Toolbag 3 is part of our pipeline used for baking. We create a Marmoset scene and import
our high and low-poly meshes for baking. Re-baking an asset when needed can be as simple as replacing
either a high or low-poly mesh and hit ‘bake’ again. Another artist should be able to open your .tbscene
as well if needed, see the baked maps on the model and has to be able to re-bake if necessary.
The naming conventions for your high and low-poly files are:
- name_high.obj
- name_low.obj/.fbx
Your high and low-poly meshes must be submitted together with the baking scene and any other work
files that comes with your asset. More on the resource folder and its structure is explained later.
Note: Make sure you always set your smoothing groups (soft/hard edges) in Maya before baking. We
need to ensure bakes are baked correctly and are working properly in our engine.
After baking
After you have baked the Normal map from Marmoset you can, if needed, clean it up in Photoshop or
elsewhere. Once your Normal map is clean you bring it into Substance Painter together with your asset.
This is not the final texturing step, but an in-between step required for adding stitches and if needed
additional normal detail, such as seams or micro wrinkles.
Confidential Property of 2K Games
STITCHES
We use our own super_stitch brush but any stitching brush could be used if they are good.
The super_stitch brush can be found under Tools in Substance Painter:
Paint the stitches using a layer and not a fill layer. By using a layer instead, you are able to tweak the
height and normal information individually with filters.
Stitches must be painted in white and when a black fill layer is added below, it allows us to export a
black/white mask we call the stitching mask. This mask only contains the stitching information and is
used for texturing. This is a mandatory delivery in your resources, if, your asset has stitches of course.
Confidential Property of 2K Games
Final maps
By now you should have a final Normal map with stitching information and if applies, a black/white
stitching mask. Any other maps can be baked in either Knald or elsewhere.
Required:
- Normal
- AO
- ColorID
- Stitching mask (if applicable)
- Alpha (if applicable)
- Curvature
- Convexity
- Concavity
- Global Illumination
- Height
RESOURCE FOLDER
The resource folder for your asset must have the name as the asset, which is ma_he_jacket_001 in the
example below. According to the name of the example this must be a rhap_male asset (ma_), a hero
(he_) and a top which means it is placed in the tops folder. So, let us have a look inside its folder.
There are 3 subfolders named 01_high, 02_lub and 03_texturing. The first two are mandatory for
delivering an asset and the 03_texturing folder can be created during texturing.
- 01_high
This folder contains your latest high-poly modeling and sculpting work files. Usually this would be a
zBrush zTool (.ZTL) and a Marvelous Designer project (Zprj.) but can also contain any other necessary
files.
Confidential Property of 2K Games
- 02_lub
This folder will contain most of your files. It will contain your:
There could also be a .PSD for cleaning up the Normal map if Photoshop is used.
Also found in this folder is your Substance Painter file (.spp) in which you have added stitching and if
applies additional normal information. The exported Normal and stitching mask will go in the next
folder, which is final_maps.
The subfolder final_maps will contain all the final maps needed for texturing. Please refer to the ‘Final
maps’ chapter to get a complete overview of all the maps needed for texturing.
NOTE: Not shown in the example above but the 02_lub folder could also contain a ‘baking_files’ folder
or something similarly named. This allows you to have your baking files more organized and is
preferred, see example below:
Confidential Property of 2K Games
- 03_texturing
This folder contains one. fbx file used for texturing. This .fbx file is the one imported in Substance
Painter to be used for texturing. It will hold all the uv channels needed. This folder is usually created
during texturing.
Maya scenes
Going back to the main folder, this is where you will create two Maya .ma scenes with Maya 2018, with
‘name’ being the name of the folder, which is in this example ma_he_jacket_001:
Export
Briefly explained on the previous pages, the two Maya scenes are needed for exporting an asset to
Fusion, our engine. Those two Maya scenes are:
name.mesh.ma
The .mesh.ma scene is the ‘resource’ scene. This scene contains your model with all 4 uv
channels, the LOD group with LOD’s, the Material, Blendshapes (if applies) and tags for use in
Fusion to define the asset.
name.ma
The .ma scene is looking for the mesh scene to instance the asset. In this scene automatic
skinning is applied and can be improved upon. The most important, from this scene you will
export the asset to the engine.
Scene Setup
For setting up the Maya scenes, you will be working with the H13_Tools. If you do not have the shelf for
these tools yet, make sure you install the tools as explained in the ‘Set up’ chapter.
Please follow the steps on the page below for setting up the Maya scenes and exporting an asset to the
engine:
https://hub.gametools.dev/pages/viewpage.action?pageId=194905778
Confidential Property of 2K Games
QUALITY BAR
Below you will find some of our finished assets to give you an example of the quality you should be
aiming for.
NOTE: Please keep in mind that micro-details are done in Minerva and thus should not be added to
the high-poly and the bakes. This does not include memory folds and wrinkles. We encourage you to
add those.
Confidential Property of 2K Games
Confidential Property of 2K Games
Confidential Property of 2K Games
Confidential Property of 2K Games
Confidential Property of 2K Games
Confidential Property of 2K Games
1) High-poly
5) Add high and low-poly files for baking and the Marmoset baking scene to 02_lub
9) Export new Normal map with stitching information and the stitching mask from Substance Painter
10) Generate/bake the additional final maps needed for texturing. Add to final_maps in 02_lub.
Useful pages:
Naming conventions
https://hub.gametools.dev/pages/viewpage.action?pageId=362779533
H13-help_prod_tools
H13-volt_characters
Confidential Property of 2K Games
Basemesh locations:
Holt
d:\!2k_games\volt_dev\resources\models\characters\rhap_malebrute\assets\heads\mb_he_head_004
_holt\
d:\!2k_games\volt_dev\resources\models\characters\rhap_malebrute\assets\body\he_basebody\
Tobias
d:\!2k_games\volt_dev\resources\models\characters\rhap_male\assets\heads\ma_he_head_001_tobi
as\
d:\!2k_games\volt_dev\resources\models\characters\rhap_male\assets\body\ma_basebody\
Mara
d:\!2k_games\volt_dev\resources\models\characters\rhap_female\assets\heads\fe_basehead\
d:\!2k_games\volt_dev\resources\models\characters\rhap_female\assets\body\fe_herobody_000\