追蹤
A kid lives in my heart
關於部落格
......
  • 47089

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

GDC Uncharted 2 Character Pipeline An In-depth Look at the

Rich Diamant: Lead Character Arist
Judd Simantow: Lead Character TD

//==============================================================
modeling process
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

texturing/smapling:
sample hight resolution details from sculpt mesh to arb game mesh
(normal map)
If high mesh was used to texture, smaple color info, otherwise
texture game mesh.

shader setup:
create shaders and assighn the maps using our custom shader tools

//==============================================================
Rigging process:

Rig Pipeline:
3 seperate skeletons: game skeleton, animation rig, mocap skeleton
skeleton sharing: Males females children, creatures
all rigs have the same general orientation and naming conventions
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,
saves momory. Limited use because of Gimbal.
Use Vector cones to handle twists and more complex deformations.

Skinning process:
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 pipeline:
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.

//==============================================================
Diamant UV
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.
The Problem:
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.

Partial Solution:
Used the same base head for the high res sculpt and the game mesh

Different topology for each of the characters heads:
Problem:
Each character had different topology
-each charater had to rigged from scratch.
-creating the arbitrary game meshes took a long time.

solution:
-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
-把不同point order但是相同topology的mesh做對應.
先把男生的mesh變成女生的mesh, 再把變形後的mesh, 和變形前的copy mesh
去做weight transfer.

demo re-topoloty game mesh.

Rigging Problems:
Building a rig from scratch was a nightmare
The Problems:
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.

Solution:
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.

Character Faces:
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.

Mouth area:
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.

Facial controls:
Problem:
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.
Solution:
Switched to Channel box sliders.

Facial Rig/Shapes:
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.

Fixer Shapes:
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
Pros:
-we didn't go too far into the character without seeing
it in game first
Cons:
-often didn't keep track of this and had to reskin things
too many times

//==============================================================
New challenges specific to uncharted2
LODS:
-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

Multiplayer:
-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

Optimization
-did not anticipate having to optimize as mush.
-weren't as tight on UC1.
-vertex sets needed to be kept low
-used lods
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.

//==============================================================
Conclusion:
Better way to deal with LOD's
Possibly get rid of arbitrary mesh.
Manage actors in an easier way.
-mulitiple costumes, texture sets etc
Reference skinning
-figure out a way to reference skinning information so
you only update in one place.
Eyes
-eyes still feel creepy at tiame and dont always match the
enviroment.
Tackling optimization earlier.
Find better solution for multiplayer faces and skeleton
variation.
相簿設定
標籤設定
相簿狀態