GDC Uncharted 2 Character Pipeline An In-depth Look at the
Judd Simantow: Lead Character TD
base sculpt mesh:
good topology for sculpting
UV's for texturing
arbitrary game mesh:
game resolution topology(as low as possible)
correct Uv's for texturing
sample hight resolution details from sculpt mesh to arb game mesh
If high mesh was used to texture, smaple color info, otherwise
texture game mesh.
create shaders and assighn the maps using our custom shader tools
3 seperate skeletons: game skeleton, animation rig, mocap skeleton
skeleton sharing: Males females children, creatures
all rigs h
main character joint 246.
The animation Rig:
Standard control setup- kept simple to work with motion cpature.
custom DG node links between motion cpature and control rig
all controls are custom opengl locators for customization.
Deformation $ Helper Joints:
All deformation are joints.
Helpers are run-time Set Driven Keys- no animation exproted,
Use Vector cones to handle twists and more complex deformations.
defualt linear blend skinning.
use maya's "copy skin weights" to get a basic start to new meshes.
history tool allows modelers to modify topology.
3-5 influences per vertex-more than this becomes unmanageable.
use a motion capture range of motion to test the first pass,
but the gmae itself is the best reange of motion test.
Face Rig is all joints
97 joints in the face
same facial rig in-game& cinematics.
custom API node to hold all pose data and
do all the backend calculations.
UI that interfaces with the node and allow you to manange all the data.
very fast uv creation and editing.
-automatic uv generation.
-custom uv modifiers.
Transfering single uv sets to models with multiple uv sets
-doest not override both sets
Realtime shrink wrapping of in game models to high res models.
Topology transferring and uv transferring from one mesh to
another that has the same topology but different point order.
what we wanted to fix from uncharted1
Abitrary mesh pipeline was too convoluted.
UC1 had two separate meshes for every part.
Problems when updating either of the two meshes which
caused inconsistencies and management issues.
Major issue when dealing with the creation of winnkle maps
since the poses wer created on the game mesh.
Used the same base head for the high res sculpt and the game mesh
Different topology for each of the characters heads:
Each character had different topology
-each charater had to rigged from scratch.
-creating the arbitrary game meshes took a long time.
-crate a standard head mesh that every character used(base section)
-made creating the game mesh extremely fast.
-allowed us to transfer weighting to all main characters.
demo the transferring process using Diamant UV tool
先把男生的mesh變成女生的mesh, 再把變形後的mesh, 和變形前的copy mesh
demo re-topoloty game mesh.
Building a rig from scratch was a nightmare
We had no easy way of automating the setup.
No way of keeping consistent info across all the joints
and the control setups(orientation of controls and joint orientation)
Animators can't tranfer animation across skeletons.
Generalized the rig setup to allow for automation.
wrote orientation procedure that would caculate consistent
orientation across all skeletons.
create general rig control system to simply curve control creation.
Wanted to achieve a higher level of fidelity
with the faces and expressions.
Needed to add more geometry and new topology.
New facial rig with significantly more bones.
UC1's mouth area was very hard to weight and didn't look very good.
changed to an open mouth start pose
Add more geometry that flowed better for deformation.
Used custom tools to smooth the noise between verts.
UC1 had viewport controls
-Animators couldn't easily see what was on and what
the values are.
-selection is annoying
Doesn't scale up well.
Switched to Channel box sliders.
Spent some time researching more anatomy.
Try to maintain bone structure and give the feeling of skin
and muscle moving over bone.
Better understanding of how the face works.
Give more control to the animators.
Use more fixers to make sure when poses come together we get
more anatomically corect shapes and more appealing shapes .
Quick iteration times between sculpting and in game
-we didn't go too far into the character without seeing
it in game first
-often didn't keep track of this and had to reskin things
too many times
New challenges specific to uncharted2
-Had not used lods in UC1
-Had to keep vertex sets low for UC2
-Decided to do this late in production
-First started manually creating lods.
-Used Maya PM Lod tool to generate lods
-Used Maya "Copy Skin Weights" from the base geometry to all Lods
-Needed lods for each multiplayer skin.
-Had tons of build assets to manage
-separate actor for each multiplayer skin and lods
-one skeleton for all characters
needed facial animation shared
- roughly 50 multiplayer skins generated
-did not anticipate h
-weren't as tight on UC1.
-vertex sets needed to be kept low
combined geometry into single pieces
used less shaders
combined textures to fit on single texture sheets
turned off shadow casting on smaller objects
turned off motion blur and other shader parameters on small objects
Villagers last minute:
-initially only meant to be used in the far background and
not shown up close
very last minute change to add facial expressions and up the
quality for a better look.
Better way to deal with LOD's
Possibly get rid of arbitrary mesh.
Manage actors in an easier way.
-mulitiple costumes, texture sets etc
-figure out a way to reference skinning information so
you only update in one place.
-eyes still feel creepy at tiame and dont always match the
Tackling optimization earlier.
Find better solution for multiplayer faces and skeleton