CSC 123 – Animating characters Hierarchical modeling Zoë Wood.

Slides:



Advertisements
Similar presentations
This terms course Last term we both worked on learning 2 things –Processing –The concepts of graphics etc. This term will focus more on the basic concepts.
Advertisements

Hierarchical Transformation. Summary Alternatively, OpenGL thinks: A transformation updates the coordinate system. For each change, the transformation.
Using GLU/GLUT Objects GLU/GLUT provides very simple object primitives glutWireCube glutWireCone gluCylinder glutWireTeapot.
Translate, Rotate, Matrix Pages Function Function Definition Calling a function Parameters Return type and return statement.
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.
1Notes  Assignment 0 marks should be ready by tonight (hand back in class on Monday)
Presentation About Anatomy- Based Joint Models for Virtual Humans Skeletons Prepared By Khloud Zain Al-Abdeen Najwa Al-Ghamdi
3-D Geometry.
Hierarchical Modeling II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
1 Geometrical Transformation Tong-Yee Lee. 2 Modeling Transform Specify transformation for objects Allow definitions of objects in own coordinate systems.
Animation. Outline  Key frame animation  Hierarchical animation  Inverse kinematics.
Week 4 Lecture 3: Character Animation Based on Interactive Computer Graphics (Angel) - Chapter 10 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley.
CAP4730: Computational Structures in Computer Graphics
2D Transformations. World Coordinates Translate Rotate Scale Viewport Transforms Hierarchical Model Transforms Putting it all together.
CS 450: Computer Graphics 2D TRANSFORMATIONS
Hierarchical Transformations and Models CSE 3541 Matt Boggus.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology 3D Engines and Scene Graphs Spring 2012.
Hierarchical Transformations Hierarchical Models Scene Graphs
UNIT - 5 3D transformation and viewing. 3D Point  We will consider points as column vectors. Thus, a typical point with coordinates (x, y, z) is represented.
Computer Animation Thesis “brief” Vic, CS 288, 10/22/98.
Advanced Graphics (and Animation) Spring 2002
Hierarchy, Modeling, and Scene Graphs Angel: Chapter 10 OpenGL Programming and Reference Guides, other sources. ppt from Angel, AW, etc. CSCI 6360/4360.
COMP 175: Computer Graphics March 10, 2015
Introduction to 3D Graphics Lecture 4: Scenes and Scene Graphs Anthony Steed University College London.
C O M P U T E R G R A P H I C S Stuff CMSC 435 / 634 Transformations 1/29 Geometric Transformations Readings: Chapters 5-6.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Kinematic Linkages.
Computer Graphics World, View and Projection Matrices CO2409 Computer Graphics Week 8.
Defining complex objects Dr Nicolas Holzschuch University of Cape Town Modified by Longin Jan Latecki.
Data Structures for Scenes, The Basics of Scene Graphs Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Friday,
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Kinematic Linkages.
Week 4 Lecture 1: Hierarchical Modeling Part 1 Based on Interactive Computer Graphics (Angel) - Chapter 10 1 Angel: Interactive Computer Graphics 5E ©
Hierarchical Modeling. Instance Transformation Start with a prototype object (a symbol) Each appearance of the object in the model is an instance – Must.
C O M P U T E R G R A P H I C S Guoying Zhao 1 / 40 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 40 Computer Graphics Hierarchy I.
Figure Drawing.
Computer Graphics Soft Body Animation - Skinning CO2409 Computer Graphics Week 22.
T. Bajd, M. Mihelj, J. Lenarčič, A. Stanovnik, M. Munih, Robotics, Springer, 2010 GEOMETRIC DESCRIPTION OF THE ROBOT MECHANISM T. Bajd and M. Mihelj.
Kinematics Jehee Lee Seoul National University. Kinematics How to animate skeletons (articulated figures) Kinematics is the study of motion without regard.
Part I. Drawing an Image using Lines (Airplane, Missiles, Stars) Part II. Animating Objects in the image using timers Part II. Animating objects using.
1cs426-winter-2008 Notes  Will add references to splines on web page.
Transformations Tutorial
1/50 CS148: Introduction to Computer Graphics and Imaging Transforms CS148: Introduction to Computer Graphics and Imaging Transforms.
Computer Graphics I, Fall 2008 Hierarchical Modeling II.
Computer Graphics Matrix Hierarchies / Animation
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Hierarchical Modeling.
1cs426-winter-2008 Notes. 2 Kinematics  The study of how things move  Usually boils down to describing the motion of articulated rigid figures Things.
Kinematics Intro :a branch of dynamics that deals with aspects of motion apart from considerations of mass and force Merriam-Webster.
Computer Graphics I, Fall 2008 Hierarchical Modeling I.
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.
Object Animation CMT3317. Do you need to do animation? We consider ways of animating composite objects – that have a number of different parts e.g. a.
Character Animation Forward and Inverse Kinematics
Transformations 5 University of British Columbia
Hierarchical Modeling II
Human Body SQ representation
Hierarchical Transformations Hierarchical Models Scene Graphs
Computer Graphics - Hierarchical Models-
Hierarchical and Object-Oriented Graphics
Transformations 6 University of British Columbia
Introduction to 3D Art and Animation
Vocabulary Trees Complete the tree by adding your vocabulary word to the trunk, definitions to the roots, and fill the branches with at least 8 related.
Hierarchical and Object-Oriented Graphics
Transformations 4 University of British Columbia
Prepared by: Engr . Syed Atir Iftikhar
Hierarchical Modeling & Constructive Solid Geometry
Translate, Rotate, Matrix
Dr. Chih-Kuo Yeh 葉智國 Computer Graphics Dr. Chih-Kuo Yeh 葉智國
Hierarchical Modeling
Computer Graphics Matrix Hierarchies / Animation
Human Body SQ representation
Presentation transcript:

CSC 123 – Animating characters Hierarchical modeling Zoë Wood

Characters In order to create compelling stories, you need compelling characters Character animation is hard…

Hierarchical Modeling Many objects are naturally modeled hierarchically. Example: A tree. –The trunk starts out at the ground. –The large branches start out from the trunk. –The small branches start out from the large branches. –The leaves start out from the small branches. It is best to describe each successive “child” frame (trunk, big branch, small branch, leaf) with respect to its previous parent frame.

Many characters Stick people

Hierarchical modeling Main idea is to define transforms –Translate –Scale –Rotate with respect to other parts of the character Not with respect to the world RPQ T AB B A

transforms Some comments on transforms –Each transform is a matrix applied to each vertex –These matrices move each vertex drawn after the transform using mathematics –e.g. translate(2, 3) -> (x+2, y+3) –e.g. scale(2) -> (2*x, 2*y)

transforms As you know, “where” you do transforms matters –Rotation around the origin –Rotation around the objects center

transforms In order to make sure that transforms only apply to certain parts of our scene or character use pushMatrix() popMatrix() Stack

Hierarchical modeling To get our character to move correctly, we have to carefully move its parts with respect to “pivot points”

Making an Articulated Arm A minimal 2D jointed object: –Two pieces, A (“forearm”) and B (“upper arm”). –Attach point Q on B to point R on A (“elbow”). RPQ T AB B A

How To Do It Draw A and B in their local object frame. B is hiding behind A. R A

B How To Do It 1. Translate A by (-R x, -R y ) R A

B How To Do It 2. Rotate A by +  (the “elbow” angle). A 

B How To Do It 3. Translate A by (Q x, Q y ) to align the points R and Q. Q A

B How To Do It 4. Translate A & B by (-P x, -P y ). A P

How To Do It 5. Rotate CW by  (the “shoulder” angle). B A 

How To Do It 6. Translate by (T x, T y ) to the final shoulder position T. B A T

Transformation Hierarchies This is the build-an-arm sequence, represented as a tree. Interpretation: –Leaves are geometric primitives. –Non-leaves are transformations. –Transformations apply to everything under them — start at the bottom and work your way up. A A B B Translate -R Translate Q Translate -P Translate T Rotate CW  Rotate CCW 

Transformation Hierarchies You can build a wide range of models this way. A A B B Translate -R Translate Q Translate -P Translate T Rotate CW  Rotate CCW  Control Knob Structural Primitive

What have we done? Seems more complicated than just translating and rotating each piece separately. We have the following control knobs: –T: shoulder position (point at which P winds up.) –  : shoulder angle (A and B rotate together about P.) –  : elbow angle (A rotates about R, which stays attached to P.) , , and T are parameters of the model. –Changing them wiggles the arm. P, Q, and R are structural constants. –Changing them dismembers the arm.

The Right Control Knobs The set of “control knobs” (parameters) make it easy to move our stick person. Without it, the model falls apart as soon as you change something.

Hip A Schematic Humanoid Torso l.Leg1 r.Leg1 l.Leg2 r.Leg2 Shoulder Neck Head r.Arm1 l.Arm2 r.Arm2 l.Arm1 The root can be anywhere. We chose the hip. You get control knobs for each joint angle, plus global position and orientation. A realistic human would be much more complex. –But stick persons are also people...

Processing example void drawDuck() { pushMatrix(); //move the entire duck translate(Dloc.x, Dloc.y); scale(2); //scale the entire duck fill(245, 226, 12); ellipse(0, 0, 40, 30); //body //draw neck and head with possible animation transforms pushMatrix(); translate(-16, 0); //move back into draw position rotate(neckR); //rotate by neckR parameter translate(16, 0); //move neck and head to pivot point ellipse(-16, -10, 10, 18); //neck ellipse(-16, -17, 14, 14); //head fill(0); ellipse(-16, -19, 4, 4); //eye fill(155, 111, 16); triangle(-26, -18, -20, -21, -20, -15); //beak popMatrix(); }

Lab Incomplete duck animation –Add legs