CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development1 Skeletons and Skinning Bones and Skeletons Mesh Skinning.

Slides:



Advertisements
Similar presentations
Animation in Video Games presented by Jason Gregory
Advertisements

Outline: Introduction Link Description Link-Connection Description
Links and Joints.
Kinematics & Grasping Need to know: Representing mechanism geometry Standard configurations Degrees of freedom Grippers and graspability conditions Goal.
3D Graphics for Game Programming (J. Han) Chapter XI Character Animation.
Advanced Programming for 3D Applications CE Bob Hobbs Staffordshire university Data Structures for Human Motion Lecture 5.
Linear Blend Skinning.
Lecture 2: linear algebra, animation basics
Skeletons CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Character Setup Character Setup is the process of creating handles and controls for anything that a character animator will need to adjust in order to.
Chapter 4: IMD Chapter 4: Character Animation Character Animation 1 Lecturer: Norhayati Mohd Amin.
1Notes  Assignment 0 marks should be ready by tonight (hand back in class on Monday)
3D Kinematics Eric Whitman 1/24/2010. Rigid Body State: 2D p.
Introduction to Robotics
Skin CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Character Animation CSE 191A: Seminar on Video Game Programming Lecture 5: Character Animation UCSD, Spring, 2003 Instructor: Steve Rotenberg.
1cs426-winter-2008 Notes  Collision notes part 1 (primitive operations) should be up on the weekend.
Kinematics. ILE5030 Computer Animation and Special Effects2 Kinematics The branch of mechanics concerned with the motions of objects without regard to.
Skeletons CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.
Animation. Outline  Key frame animation  Hierarchical animation  Inverse kinematics.
Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.
Serial and Parallel Manipulators
Week 4 Lecture 3: Character Animation Based on Interactive Computer Graphics (Angel) - Chapter 10 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley.
3D Graphics Goal: To produce 2D images of a mathematically described 3D environment Issues: –Describing the environment: Modeling (mostly later) –Computing.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
ME/ECE Professor N. J. Ferrier Forward Kinematics Professor Nicola Ferrier ME Room 2246,
Chapter 5.2 Character Animation. CS Overview Fundamental Concepts Animation Storage Playing Animations Blending Animations Motion Extraction Mesh.
3D Concepts Coordinate Systems Coordinates specify points in space 3D coords commonly use X, Y, & Z A vertex is a 'corner' of an object Different coordinate.
Advanced Graphics (and Animation) Spring 2002
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Kinematic Linkages.
CSE 872 Dr. Charles B. Owen Advanced Computer Graphics1 Skeletons and Skinning Bones and Skeletons Mesh Skinning Chapter 17 in the textbook.
CS 480/680 Computer Graphics Transformations Dr. Frederick C Harris, Jr.
Lecture 2: Introduction to Concepts in Robotics
Chapter 2 Robot Kinematics: Position Analysis
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Skin.
Week 5 - Wednesday.  What did we talk about last time?  Project 2  Normal transforms  Euler angles  Quaternions.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Kinematic Linkages.
Character Animation. Contents Keyframe animation Mocap Smooth skin by vertex blending Rigging & retargeting Gait analysis (Ragdoll physics) Fall
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Kinematics Jehee Lee Seoul National University. Kinematics How to animate skeletons (articulated figures) Kinematics is the study of motion without regard.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Combining Transformations We see that we can combine a.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Rigging.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Character Setup In addition to rigging for character models, rigging artists are also responsible for setting up animation controls for anything that is.
Robot Kinematics: Position Analysis 2.1 INTRODUCTION  Forward Kinematics: to determine where the robot ’ s hand is? (If all joint variables are known)
1cs426-winter-2008 Notes  Will add references to splines on web page.
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler.
1cs426-winter-2008 Notes. 2 Kinematics  The study of how things move  Usually boils down to describing the motion of articulated rigid figures Things.
III- 1 III 3D Transformation Homogeneous Coordinates The three dimensional point (x, y, z) is represented by the homogeneous coordinate (x, y, z, 1) In.
Computer Graphics I, Fall 2010 Transformations.
Forward Kinematics Where is my hand ?. Examples Denavit-Hartenberg Specialized description of articulated figures (joints) Each joint has only one degree.
3D GRAPHICS RENDERING PIPELINE CS / TECHNICAL BACKGROUND PAGE 11.
CGDD 4003 Character Animation. The Skeletal Hierarchy (aka the “rig”) Based on the concept of bones Each bone has exactly one parent Each bone has a transform.
Kinematics 제어시스템 이론 및 실습 조현우
Computer Animation Algorithms and Techniques
Bones Skeletal Unity-2D How & When
F o r w a r d K i n e m a t i c s.
Mobile Robot Kinematics
CSE4421/5324: Introduction to Robotics
CSC4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University Transformations.
Skeletons and Skinning
Computer Animation and Visualisation Lecture 4. Skinning
Chapter XIII Character Animation
(c) University of Wisconsin, CS559
UMBC Graphics for Games
Geometric Objects and Transformations (II)
Computer Graphics Matrix Hierarchies / Animation
Combining Transformations
Presentation transcript:

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development1 Skeletons and Skinning Bones and Skeletons Mesh Skinning

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development2 Skeletal Animation Victoria

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development3 Skeletons Skeleton A pose-able framework of joints arranged in a tree structure. An invisible armature to manipulate the skin and other geometric data of the character. Does not actually render.

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development4 Skeletons Joint Allows relative movement within the skeleton. Joints are equivalent to 4x4 matrix transformations. Bone What’s the difference between a joint and a bone? Nothing really, and XNA uses the term bone for a joint. Sometimes bones includes a length or actual geometry Skeleton bones are identical in function to the bones you used for Digger.

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development5 Victoria in 3DS Max

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development6 Victoria in Motionbuilder

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development7 DOFs Degree of Freedom (DOF) A variable φ describing a particular axis or dimension of movement within a joint Joints typically have around 1-6 DOFs (φ 1 …φ N ) Can have more (up to 9 for affine) Changing the DOF values over time results in the animation of the skeleton Rigid body transformations: 6DOF Arbitrary rotations: 3DOF

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development8 Skeleton Posing Process 1.Specify DOF values for the skeleton 2.Traverse the hierarchy using forward kinematics to compute the world matrices 3.Use world matrices to deform skin & render The matrices can also be used for other things such as collision detection, FX, props, etc. 1-2 is what we did for Digger. #3 is new.

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development9 Forward Kinematics Each joint computes a local matrix M based on the DOFs and some formula representative of the joint type: Local matrix M = M joint (φ 1,φ 2,…,φ N ) boneTransforms[b] = Matrix.CreateScale(boneScales[b]) * Matrix.CreateFromQuaternion(bone.Rotation) * Matrix.CreateTranslation(bone.Translation); Then, world matrix W is computed by concatenating M with the world matrix of the parent joint World matrix W = MW parent model.CopyBoneTransformsFrom(boneTransforms); model.CopyAbsoluteBoneTransformsTo(boneAbsoluteTransforms);

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development10 Skeleton Rigging Skeleton Rigging – Setting up the skeleton for a figure – Bones – Joints – DOF’s – Limits

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development11 Poses Adjust DOFs to specify the pose of the skeleton We can define a pose Φ more formally as a vector of N numbers that maps to a set of DOFs in the skeleton Φ = [φ 1 φ 2 … φ N ]

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development12 Joint Types Rotational – Hinge: 1-DOF – Universal: 2-DOF Around two axis – Ball & Socket: 3-DOF Euler Angles Quaternions Translational – Prismatic: 1-DOF – Translational: 3-DOF (or any number) Compound – Free – Screw – Constraint – Etc. Non-Rigid – Scale – Shear – Etc. Design your own...

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development13 Smooth Skin Algorithm

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development14 Rigid Parts are Easy Robots and mechanical creatures – Rigid parts, no smooth skin – Each part is transformed by its joint matrix Every vertex of the character’s geometry is transformed by exactly one matrix where v is defined in joint’s local space This is what we did with Digger

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development15 What happens with Skinned Characters? The mesh is deformed by the bones, but not “rigidly”. Instead, it is a flexible bend.

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development16

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development17 The Basic Concept 1.0/ /1.00.5/ /0.3 Each vertex can be moved by 1-4 bones, with each bone having a weight.

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development18 Mathematics of mesh skinning Where: is the number of matrices. is the vertex position. is the weight associated. is a transformation matrix. with Each vertex is multiplied by several “weighted” transformation matrices and the results are added together. The transformation matrix indicates how that bone has been moved.

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development19 Smooth Skin A vertex can be attached to more than one joint/bone with adjustable weights that control how much each joint affects it – Rarely more than 4 – Definitely no more than 4 in XNA 1.0/ /1.00.5/ /0.3 Result is a blending of the n transformations Algorithm names – blended skin, skeletal subspace deformation (SSD), multi- matrix skin, matrix palette skinning…

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development20 Limitations of Smooth Skin Smooth skin is very simple and quite fast, but its quality is limited – Joints tend to collapse as they bend more – Very difficult to get specific control – Unintuitive and difficult to edit Still, it is common in games and commercial animation! If nothing else, it is a good baseline upon which more complex schemes can be built

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development21 Limitations of Smooth Skin

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development22 Bone Links Bone links are extra joints inserted in the skeleton to assist with the skinning – Instead of one joint, an elbow may be 2-3 joints – Allows each joint to limit the bend angle! – Why does this help?

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development23 Containment Binding Volume primitives around the bones – Boxes, cylinders, etc. – Vertex weights assigned based on which primitives it is in

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development24 Props Often our characters will be carrying or handling something We usually call this a prop Easiest way to handle props Prop is moved by one bone In this example the right hand bone moves the pie bazooka

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development25 How I determined the numbers Matrix bazMat = Matrix.CreateRotationX(MathHelper.ToRadians(109.5f)) * Matrix.CreateRotationY(MathHelper.ToRadians(9.7f)) * Matrix.CreateRotationZ(MathHelper.ToRadians(72.9f)) * Matrix.CreateTranslation(-9.6f, 11.85f, 21.1f) * Model.GetBoneAbsoluteTransform(handBone); X value is +90 to get from 3DS coordinates (Z is up) to our coordinates (Y is up)

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development26 Manual Manipulation How could I aim that bazooka? What are the options?

CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development27 Manual Manipulation Bip01 Spine1