1 Characters Characters
Dec 17, 2015
2
IntroductionIntroduction The Characters are the Actors of the Games.The Characters are the Actors of the Games. Three Types of Characters :Three Types of Characters :
– SegmentedSegmented– MeshMesh– Bone-skinBone-skin
Root-base Concept (P.128-129)Root-base Concept (P.128-129) Production :Production :
– 3D animation tools3D animation tools» 3dsMax3dsMax» MayaMaya» SoftimageSoftimage» ……
– Motion capture (Mocap)Motion capture (Mocap)» For motion dataFor motion data
Base
3
A character is composed by a set of models A character is composed by a set of models with motion data to simulate a live creature with motion data to simulate a live creature in real worldin real world
P. 126-127P. 126-127 BenefitsBenefits
– Hierarchical structureHierarchical structure– Easy to implement in a scene treeEasy to implement in a scene tree
DrawbacksDrawbacks– Segment-likeSegment-like
A Segmented CharacterA Segmented Character
4
Vertex animation on skinsVertex animation on skins– Animated positional data on skinsAnimated positional data on skins– 3D warping3D warping
BenefitsBenefits– Easy to implementEasy to implement– Flexible mesh in animationFlexible mesh in animation
DrawbacksDrawbacks– No hierarchyNo hierarchy– No keyframesNo keyframes– Massive datasetMassive dataset
A Mesh CharacterA Mesh Character
5
Bone-Skin SkeletonBone-Skin Skeleton– Hierarchical Hierarchical bbonesones– Skin deformation Skin deformation run-timelyrun-timely
BenefitsBenefits– Hierarchical structureHierarchical structure– Not segmented lookNot segmented look
DrawbacksDrawbacks– More complicated than the More complicated than the
other solutionsother solutions– Skin deformation need more Skin deformation need more
CPU cost than transformation CPU cost than transformation onlyonly
Bone A
Skin
Bone B
A Bone-skin CharacterA Bone-skin Character
6
Motion DataMotion Data
Euler AnglesEuler Angles Angular DisplacementAngular Displacement QuaternionQuaternion
– SlerpSlerp But Finally They Will Be Converted into But Finally They Will Be Converted into
“Matrix”“Matrix”
7
Optical Motion CaptureOptical Motion Capture
Data AcquiredData Acquired– From skin to joint (Mocap)From skin to joint (Mocap)– From joint to skeleton (Post-processing)From joint to skeleton (Post-processing)– From skeleton to skin (In-game)From skeleton to skin (In-game)
DeviceDevice The Shooting PlanThe Shooting Plan
8
Raw Data (Positional Data)
Joint
End Point
Bio-Data
Data Acquirement During the MocapData Acquirement During the Mocap
9
Skeletons Skin
Skeletons
Bone-Skin
Bone-skin Implementation In GameBone-skin Implementation In Game
11
Starting Out – Reviewing the Animation List and Flowchart
Planning a Mocap ShootPlanning a Mocap Shoot
13
Creating a Shot List Create a Database File Names Preliminary Shot List
A Data Record of Shot List
15
Getting Ready for the Shoot When to Shoot ? Find a Studio Make Sure No Technical Blocks Casting
Preparing a Shooting Schedule Organize the Shot List Daily Schedule Do You Need a Rehearsal Day ?
Take Care of Your Performer
20
Apply motion data on bonesApply motion data on bones
Joint = pivot(px,py,pz) in A
A
B
(x,y,z,,axis)
(,axis)
<v’> = <V> [RB][TB][RA][TA]
From pivot From position
Motion for CharactersMotion for Characters
21
To Create More Animation from Limited OnesTo Create More Animation from Limited Ones RRun-time or Pre-processingun-time or Pre-processing IIssues :ssues :
– MMotion re-targetingotion re-targeting» Run-timeRun-time
– RRe-key-framinge-key-framing» Pre-processingPre-processing
– IInterpolationnterpolation» Run-timeRun-time
– MMotion blendingotion blending» Run-timeRun-time
Motion EditingMotion Editing
22
A Set of Frame Data to Describe the A Set of Frame Data to Describe the Character’s MotionCharacter’s Motion
WWalk, Run, Attack, …alk, Run, Attack, … KKeyframed or Non-keyframedeyframed or Non-keyframed
walk run attack fall
PosesPoses
23
walkraw_start_frame raw_end_frame
cut_frame
Parameter { raw_start_frame raw_end_frame start_frame end_frame cut_frame play_speed length transition_mode}
start_frame end_frame
A Pose Definition ExampleA Pose Definition Example
24
walk
0 4 8
Frame 5.3
1. If the motion data is in quaternion form2. Get the motion data on frame 5 & 63. Convert the data into quaternion format4. Apply slerp(5, 6, 0.3) to get the interpolation on frame 5.35. Convert the result of step 3 into a rotation matrix6. Apply the matrix to the object for its transformation
Play a PosePlay a Pose
26
Motion blending in run-timeMotion blending in run-time QQuaternion is useduaternion is used ““ Blend Tree”Blend Tree”
– CCross fadeross fade– CCountinuous blendingountinuous blending– FFeather blendingeather blending
Pose BlendingPose Blending
27
RReferenceeference– GGame ame DevelopersDevelopers Conference 2003 Conference 2003– PProceedings CD, Programming Trackroceedings CD, Programming Track– ““AAnimation Blending : Achieving Inverse nimation Blending : Achieving Inverse
Kinematics and More”Kinematics and More”– JJ erry Edsallerry Edsall– MMech Warrior blend treeech Warrior blend tree
Fall Transition
ForwardMotion
FallDown
Walk
Run
Blend TreeBlend Tree
31
Weights to Assign the Influences of the Weights to Assign the Influences of the Deformation by Bones on Skin VerticesDeformation by Bones on Skin Vertices– 1-weight1-weight– 2-weight2-weight– N-weightN-weight
CCPU costPU cost IIt’s Very Good for GPU to Perform the t’s Very Good for GPU to Perform the
Calculation Using Vertex Shader on DirectXCalculation Using Vertex Shader on DirectX
Skin DeformationSkin Deformation
32
Bone A(root object)
Bone B(Bone A’s child)
base
base
1. Apply motion data to bones2. Convert the vertex from “base” space to its associated
bone’s space using the natural pose’s inverse transformation
3. Multiple the influence weight4. Accumulate all influences5. Then the vertex is deformed by the bone in “base” space
33
Mb = RbTpivot
Ma = RaTposition
Mvb = Mnb-1 MbMa
Mva = Mna-1Ma
vin_base = vs*waMva + vs*wbMvb
A two-weight skin vertex example