Breathing life into your applications: Animation with Qt 3D. Dr Sean Harmer Managing Director, KDAB (UK)

Similar documents
Chapter 9 Animation System

Advances in Qt 3D. Kévin Ottens, Software Craftsman at KDAB

Advanced Graphics and Animation

CMSC 425: Lecture 10 Skeletal Animation and Skinning

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Character animation Christian Miller CS Fall 2011

animation projects in digital art animation 2009 fabio pellacini 1

Beginners Guide Maya. To be used next to Learning Maya 5 Foundation. 15 juni 2005 Clara Coepijn Raoul Franker

From Art to Engine with Model I/O

Animation. CS 465 Lecture 22

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

animation computer graphics animation 2009 fabio pellacini 1 animation shape specification as a function of time

CS354 Computer Graphics Character Animation and Skinning

Animation. Motion over time

animation computer graphics animation 2009 fabio pellacini 1

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Computer Graphics. Spring Feb Ghada Ahmed, PhD Dept. of Computer Science Helwan University

MODELING AND HIERARCHY

Computer Graphics. Si Lu. Fall uter_graphics.htm 11/27/2017

Game Programming. Bing-Yu Chen National Taiwan University

CGDD 4113 Final Review. Chapter 7: Maya Shading and Texturing

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

Rigging / Skinning. based on Taku Komura, Jehee Lee and Charles B.Own's slides

Mount Points Mount Points is a super simple tool for connecting objects together and managing those relationships.

Chapter 5.2 Character Animation

SM2231 :: 3D Animation I :: Basic. Rigging

- TinyXML2 to parse xml in preparation for next week (skin weights are stored in XML) -

CS 231. Basics of Computer Animation

Animation COM3404. Richard Everson. School of Engineering, Computer Science and Mathematics University of Exeter

About this document. Introduction. Where does Life Forms fit? Prev Menu Next Back p. 2

Animation Lecture 10 Slide Fall 2003

Character Animation 1

Blending & State Machines. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

Human body animation. Computer Animation. Human Body Animation. Skeletal Animation

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC

Character Animation. Presented by: Pam Chow

CS 523: Computer Graphics, Spring Shape Modeling. Skeletal deformation. Andrew Nealen, Rutgers, /12/2011 1

Skinning Mesh Animations

CSE452 Computer Graphics

To Do. Advanced Computer Graphics. The Story So Far. Course Outline. Rendering (Creating, shading images from geometry, lighting, materials)

Course Outline. Advanced Computer Graphics. Animation. The Story So Far. Animation. To Do

Basics of Design p. 2 Approaching Design as an Artist p. 4 Knowing Your Character p. 4 Making Decisions p. 4 Categories of Design p.

CS 775: Advanced Computer Graphics. Lecture 4: Skinning

Automatic Rigging/Skinning Script. Maya Python Scripting Master Thesis

Learning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide

Chapter 13 - Modifiers

3D Production Pipeline

Character Animation COS 426

Animation of 3D surfaces

COMP 175 COMPUTER GRAPHICS. Lecture 10: Animation. COMP 175: Computer Graphics March 12, Erik Anderson 08 Animation

05 Mesh Animation. Steve Marschner CS5625 Spring 2016

Agenda. Introduction Curve implementation. Particle System. - Requirements -What are all those vectors? -Where should I put things?

VANSTEENKISTE LEO DAE GD ENG UNFOLD SHADER. Introduction

Overview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc.

move object resize object create a sphere create light source camera left view camera view animation tracks

Skeletal deformation

Modeling the Virtual World

BONE CONTROLLER ASSET VERSION 0.1 REV 1

Broken Age's Approach to Scalability. Oliver Franzke Lead Programmer, Double Fine Productions

3D Modeling: Skinning

Zappar's coordinate system is based on the center of the scene being the center of the target image.

Real Time Skin Deformation with Bones Blending

Learning Flash CS4 Professional

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

CSE 682: Animation. Winter Jeff Walsh, Stephen Warton, Brandon Rockwell, Dustin Hoffman

Animation Tools THETOPPERSWAY.COM

Animations. 1. Ogre Animation 2. Frames and Keyframes 3. Bind Pose and skinning 4. Clip Continuity and Additive Blending

Animation, Motion Capture, & Inverse Kinematics. Announcements: Quiz

Example-Based Skeleton Extraction. Scott Schaefer Can Yuksel

Announcements: Quiz. Animation, Motion Capture, & Inverse Kinematics. Last Time? Today: How do we Animate? Keyframing. Procedural Animation

Chapter 19- Object Physics

How to create a bone diagram?

Name: Jonathan Lindquist Occupation: Technical Artist Company: Epic Games Duties: Author shaders Generate art Write scripts Miscellaneous tasks

Ryan Marcotte CS 499 (Honours Seminar) March 16, 2011

The 3D rendering pipeline (our version for this class)

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

Tangents. In this tutorial we are going to take a look at how tangents can affect an animation.

Animation of 3D surfaces.

the gamedesigninitiative at cornell university Lecture 12 2D Animation

计算机图形学. Computer Graphics 刘利刚.

Introduction to Computer Graphics. Animation (1) May 19, 2016 Kenshi Takayama

3D Modelling: Animation Fundamentals & Unit Quaternions

3D Character animation principles

Research Method: I plan to research existing literature on the subject and conducting tests in the lab.

Black Desert Online. Taking MMO Development to the Next Level. Dongwook Ha Gwanghyeon Go

Integrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object:

Detailed Table of content. 3D View by tools - Header. 3D View by tools - Header detailed

Presets are the heart of Genoma. They can be added to so you can build up a library of reusable rig parts or even complete rigs to suit your

System Requirements:-

Jornadas sobre estrategias de generación de entornos colaborativos virtuales. What is/is not procedural?

COMP371 COMPUTER GRAPHICS

Physically-Based Modeling and Animation. University of Missouri at Columbia

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

gltf - what the? Concepts An overview of the basics of the GL Transmission Format Page 1 gltf 2.0 Quick Reference Guide Binary data references

Adding Spherical Harmonic Lighting to the Sushi Engine. Chris Oat 3D Application Research Group. ATI Research, Inc.

Keyframe Animation. Animation. Computer Animation. Computer Animation. Animation vs Modeling. Animation vs Modeling

Lecture 18 of 41. Scene Graphs: Rendering Lab 3b: Shader

Three-Dimensional Computer Animation

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Transcription:

Breathing life into your applications: Animation with Qt 3D Dr Sean Harmer Managing Director, KDAB (UK) sean.harmer@kdab.com

Contents Overview of Animations in Qt 3D Simple Animations Skeletal Animations Blended Animations For the future Credit to Johann Woelper and Timo Buske for producing the assets 2

Overview of Animations in Qt 3D 3

Why are we doing this? Qt is not only for developers Content creators too Developers not great at complex content Artists not great at software development Let each do what they are good at! 4

Why are we doing this? Scalability Complex animations consume lots of data Qt 3D scales well to many cores Non-blocking on main thread Frontend objects can opt-in to property updates 5

What is Animation? Sequence of still frames Rapid display fools our primitive monkey brains Traditional animators draw every frame 6

Key Framed Animations Computers are good at maths Animators set positions at key points in time (frames) Get the computer to interpolate 7

Offline vs Real-time Offline rendering (TV & Movies) Time of each frame known exactly Exactly scripted Real-time rendering (Applications/Games) Variations in timing Interactive 8

Offline vs Real-time Offline rendering Artists can set exact positions at every frame Animations for one specific use 9

Offline vs Real-time Real-time rendering Need to calculate position at any time Animations need to be reusable Ideally animations should be able to be composed 10

Interpolation Linear Interpolation (LERP) Simpler mathematics More data Higher Order More complicated mathematics Less data 11

Workflow Artists author using higher order Asset conditioning Process to run-time format Export curves or re-sample curves for lerping Consumption 12

Authoring Example Simple bouncing ball 13

Animation Tips Artists can use familiar tools Using data rather than forcing programmer art: Squash and stretch Anticipation Variation Fine control (rebound, inertia etc.) 14

Simple Animations 15

Animations at Runtime 3 concepts: Animation data Animation playback Target for the animation Qt Quick animations conflate all 3 Qt 3D separates them for reuse, flexibility and efficiency 16

Animation Data Data from artist: AnimationClipLoader Data from application: AnimationClip QAnimationClipData QChannel QChannelComponent QKeyFrame 17

Animation Playback Simple playback achieved with ClipAnimator More advanced options available (see later) 18

Animation Targets Animations are reusable Map animation data to multiple properties of multiple objects ChannelMapper and ChannelMapping 19

Playback Example Simple bouncing ball 20

Skeletal Animations 21

What is Skeletal Animation? So far we ve dealt with rigid body transforms Acts on whole mesh Limitations on how alive we can make objects feel Skeletons (Armatures) allow to deform a mesh Living creatures deform Handy to be able to animate parts of a mesh Does not need to be squishy like us meatbags Before we animate We need to know how to render skinned meshes 22

Creating Skinned Meshes Artist: Creates mesh Creates a skeleton Binds vertices of mesh to one or more bones Bone indices and weights stored as per-vertex attributes of the mesh Usually limited to 4 bones influencing each vertex Creates animations for bones (key framed poses) Export 23

Joint vs Bone Literature refers to Joints and Bones The terms are interchangeable DCC tools often show bones graphically Joint is technically more correct Not physical bones Skeleton is just a hierarchy of nested coordinate systems Usual parent child inheritance of transforms Just applied within a single Entity 24

Drawing a Skinned Mesh Single vertex single joint v " = (4, 3) v *+,-.+ = (10, 16) v ",3 = C " B " 45 v " B " v ",3 = (4, 3) C " 25

Drawing a Skinned Mesh Realistic Case: Many vertices, weighted joints Exactly the same maths! We store the joint poses as local transforms To calculate joint global pose we need to compose it with parent, grandparent Inverse bind matrix never changes Best performance by linearising the joint hierarchy Calculate skinning matrix for each joint in the array Pass to shader program as uniform array or UBO Vertex shader applies weighted skinning matrices to vertices 26

Skinned Meshes in Qt 3D Entity should aggregate: GeometryRenderer component referencing Geometry containing joint indices and joint weights Use Mesh for loading from file Armature component referencing Skeleton of joints Use SkeletonLoader for loading from file Can optionally create frontend hierarchy of Joints 27

Skinned Mesh Example 28

Animating a Skinned Mesh We already have everything we need! Animation data contains local transforms of joints Map animation data to skeleton with SkeletonMapping Animator updates skeleton pose and sends to render aspect Simple or with a blend tree Renderer calculates new skinning matrix palette and Draws skinned mesh as usual 29

Skeletal Animation Example Humanoid 30

Playback Speed Nice to be able to control animation playback speed Default uses global simulation time (wall time) Can set a Clock on one or more ClipAnimators Control speed with Clock s playbackrate property All associated animators affected Useful for some effects E.g. Allows to slow down animation of 3D objects whilst keeping 2D UI fluid 31

Blended Animations 32

Why Blend? Avoid combinatorial explosion Smooth transitions Run-time control 33

Uses of Animation Blending Smoothly mix walk cycle and run cycle Animate head in different ways whilst walking Blend from healthy to injured Transition from idle to walking Blend from backward/forward motion to strafing 34

How to Blend Animations Simple case: Walking vs Running Walk animation cycle: 3 seconds Run animation cycle: 2 seconds Blend factor controlled by user input (Axis) Or any other program data 35

How to Blend Animations Work in normalised time (phase on range [0,1]) for each contributing clip Requires feet to hit ground at same phase in both clips 36

How to Blend Animations From global time, calculate phase, Evaluate channels from walk clip at, A( ) Evaluate channels from run clip at, B( ) LERP to get resulting channel values C = 1 β A + βb Complicated to deal with missing data 37

Other Types of Blend LERP is common Other possible types: Additive Generalised 1D LERP Bilinear 2D LERP Barycentric LERP Generalised Barycentric LERP 38

Combining Blends No reason to limit to a single blend? Combine in an arbitrary blend tree An Abstract Syntax Tree (AST) for animations Constants are animation clips Arguments are blend parameters Bound to user inputs or Application data 39

Animation Blending Example Simple LERP Blend Tree Clip A Final Clip LERP Blend (blendfactor) Clip B 40

For the Future 41

Future Animation Work Morph target animation: Absolute and relative targets Orchestrated clip animator: State machine controlled set of blend trees with transitions Channel masking and blending operations Root motion extraction More optimisations Tooling: Graphical blend tree designer 42

Summary Qt 3D offers high performance animations Opt-in to property changes Artists create data Developers integrate data into application First class support for skeletal animations Playback rate support Animation blending 43

Thank you for listening! Any questions? https://www.kdab.com Sean Harmer <sean.harmer@kdab.com>