1 characters. the characters are the actors of the games. the characters are the actors of the...
Post on 23-Dec-2015
263 Views
Preview:
TRANSCRIPT
1
CharactersCharacters
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 ConceptRoot-base Concept Production :Production :
– 3D animation tools3D animation tools» 3dsMax3dsMax» MayaMaya» SoftimageSoftimage» ……
– Motion capture (Mocap)Motion capture (Mocap)» For motion dataFor motion data
2
IntroductionIntroduction
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
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
Euler AnglesEuler Angles Angular DisplacementAngular Displacement QuaternionQuaternion
– SlerpSlerp Converted into (4x4) matrix for computationConverted into (4x4) matrix for computation
6
Motion DataMotion Data
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
7
Optical Motion CaptureOptical Motion Capture
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
10
Mocap DevicesMocap Devices
11
Starting Out – Reviewing the Animation List and Flowchart
Planning a Mocap ShootPlanning a Mocap Shoot
12
13
Creating a Shot List Create a Database File Names Preliminary Shot List
A Data Record of Shot List
14A Shoot 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
16
A Daily Schedule
17
18
19
20
Perform motion capture for a ball ?
21
Apply motion data on bonesApply motion data on bones
A : parent nodeA : parent node
B : child nodeB : child node
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
The above formula is in the left-hand form (Direct3D). What is the formula in the right-hand form (OpenGL)?
22
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» http://www.cs.wisc.edu/graphics/Gallery/Retarget/http://www.cs.wisc.edu/graphics/Gallery/Retarget/
– RRe-key-framing (key-frame: e-key-framing (key-frame: http://en.wikipedia.org/wiki/Key_framehttp://en.wikipedia.org/wiki/Key_frame))» Pre-processingPre-processing
– IInterpolationnterpolation» Run-timeRun-time
– MMotion blendingotion blending» Run-timeRun-time
Motion EditingMotion Editing
23
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
24
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
25
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
Pose 1
Pose 2
cut_frame
start_frame
length
Pose ConnectionPose Connection
27
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 Drawback: Not working well if the transitions are Drawback: Not working well if the transitions are
from not similar animationsfrom not similar animations
Ref: Ref: http://www.gamasutra.com/features/20030704/edsall_02.shtml
Pose BlendingPose Blending
28
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
29
Pose 1
Pose2
0
1
0
1
Cross FadeCross Fade
30
Pose 1
Pose 2
0
1
0
1
Continuous BlendingContinuous Blending
31
左右搏擊左右搏擊
Pose 1 Pose 2
Pose 3
Feather BlendingFeather Blending
32
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 ShaderCalculation Using Vertex Shader
Skin DeformationSkin Deformation
33
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
34
Mb = RbTpivot
Ma = RaTposition
Mvb = Mnb-1 MbMa
Mva = Mna-1Ma
vin_base = vs*waMva + vs*wbMvb
A two-weight skin vertex example
top related