Bones Skeletal Unity-2D How & When (Computer Graphics Seminar) - - PowerPoint PPT Presentation

bones skeletal unity 2d how when
SMART_READER_LITE
LIVE PREVIEW

Bones Skeletal Unity-2D How & When (Computer Graphics Seminar) - - PowerPoint PPT Presentation

Bones Skeletal Unity-2D How & When (Computer Graphics Seminar) BY: MAHIR GULZAR Agenda Introduction Core Terminologies (Descriptive) Spritesheet Animation Unity Anima-2D A Short Demonstration Summary


slide-1
SLIDE 1

Bones Skeletal Unity-2D How & When

BY: MAHIR GULZAR

(Computer Graphics Seminar)

slide-2
SLIDE 2

Agenda

  • Introduction
  • Core Terminologies (Descriptive)
  • Spritesheet Animation
  • Unity Anima-2D
  • A Short Demonstration
  • Summary
slide-3
SLIDE 3

Goals:

  • Good concept of skeletal animation pipeline
  • Basic knowledge to work with 2D sprites
  • A working package to get hands on experience

By the end of the presentation you would have:

slide-4
SLIDE 4

Introduction

Have you ever wondered how a character walks, jumps, run or do many more human like actions in games ?

  • Yes they are animations
  • How are they made?
slide-5
SLIDE 5

Introduction

  • Major 3D softwares like 3ds Max and Maya have built-in

functionality of Bone System.

  • Models are rigged with boning and are exported as complete

package.

slide-6
SLIDE 6

Introduction

  • 3D games today use these pre-rendered animations which are

exported with the 3D model.

  • You import the model as well as the animations which are

provided with it.

  • Not just Humanoid but other Generic animations as well.
slide-7
SLIDE 7

Confused?

slide-8
SLIDE 8

Lets Talk about Core Terminologies

  • Bones
  • Joints
  • Inverse Kinematics (IK)
  • Mesh Deformation (Skinning)
  • Rig (Rigging)
slide-9
SLIDE 9

How many bones should be here..

slide-10
SLIDE 10

How many bones should be here..

  • 2 Right?

Source: http://apprize.info/programming/direct3d/5.html

slide-11
SLIDE 11

Bones

  • A gameObject (type of object) in 3d/2d world space
  • Represents set of vertices.
  • Independently movable.
  • Can have parent child relationship in hierarchy.
  • In-fact no physical and calculable presence in a scene.
slide-12
SLIDE 12

Two Gameobjects

Source: http://apprize.info/programming/direct3d/5.html

slide-13
SLIDE 13

Joints

  • Building block of skeletons
  • Point of articulation (contact between bones)
  • No Shape
  • Bones attached with each other through joint.
slide-14
SLIDE 14

Joints

  • Consider them as hooks on both sides of a

stick..

slide-15
SLIDE 15

Joints Types

  • Ball Joint
  • Universal Joint
  • Hinge Joint
slide-16
SLIDE 16

Joints Types

  • Ball Joint

A ball joint is a joint that can rotate about all three of its local axes. For example, the human shoulder is a ball joint.

slide-17
SLIDE 17

Joints Types

  • Universal Joint

A universal joint is a joint that can rotate about only two of its local axes. The human wrist is a good example of a universal joint, though the wrist has limitations on the extent it can rotate.

slide-18
SLIDE 18

Joints Types

  • Hinge Joint

A hinge joint is a joint that can rotate about only one of its local axes. For example, the human knee is a hinge joint.

slide-19
SLIDE 19

Joint Attributes

  • Limits
  • Degree of freedom
  • Damping
  • Stiffness
slide-20
SLIDE 20

Joint Attributes

  • Limits

Joint Limit Information attributes specify the minimum and maximum translation, rotation, and scaling values for a joint. For example elbow rotation.

  • Degree of Freedom

The Degrees of freedom determines which local axes the joints can rotate.

slide-21
SLIDE 21

Joint Attributes

  • Damping

Joint damping applies resistance to a joint as it approaches its joint limits. Instead of the joint abruptly stopping when it reaches its limits, you can smooth it with damping.

  • Stiffness

Joint stiffness specifies a joint’s resistance to rotation during inverse kinematics animations.

slide-22
SLIDE 22

Inverse Kinematics (IK)

slide-23
SLIDE 23

Inverse Kinematics (IK)

  • A very powerful tool in game development.
  • Originated from Robotics
  • Purpose is to calculate positions for a joint system so that it

will reach a certain end goal.

slide-24
SLIDE 24

Inverse Kinematics (IK)

For the idea lets just define forward kinematics first.

  • I have a starting point (for example, the equivalent of

your shoulder on your arm),

I should be able to calculate the end position with some

mathematical function right ?

  • The length of all the parts,
  • The angles between those parts,
slide-25
SLIDE 25

Inverse Kinematics (IK)

  • Forward Kinematics: Example
slide-26
SLIDE 26

Inverse Kinematics (IK)

Inverse Kinematics isn’t about getting the end effector.

  • I have the endpoint or the goal.

In other words the angles on each joint must be calculated

  • I want to find a configuration of joint system.
  • So that it will reach the goal.
slide-27
SLIDE 27

Inverse Kinematics (IK)

  • Inverse Kinematics: Example
slide-28
SLIDE 28
  • A Better Demonstration
slide-29
SLIDE 29

FABRIK Algorithm: Forward and Backward Reaching IK

  • Sets the end position at the target.
  • Work backward and forward by finding the line

between the most recently updated point and next point in chain. Two Stages:

slide-30
SLIDE 30

FABRIK Algorithm: Forward and Backward Reaching IK

slide-31
SLIDE 31

FABRIK Algorithm: Forward and Backward Reaching IK

slide-32
SLIDE 32

FABRIK Algorithm: Forward and Backward Reaching IK

slide-33
SLIDE 33

Inverse Kinematics

http://www.academia.edu/9165835/FABRIK_A_fast_iterative_solver_for_the_Inv erse_Kinematics_problem

  • There are many other robust algorithms other than

fabric but I’ll stop here because we understood the basic idea behind computation of Inverse Kinematics.

slide-34
SLIDE 34

NOT SO FAST..!!!

Why do we really need Inverse Kinematics ?

slide-35
SLIDE 35

Mesh Deformation (Skinning)

  • A 3D model is built on mesh of polygons.
  • Polygons have vertices.
  • The goal of mesh deformation is to move vertices.

Source: http://help.shade3d.jp/en/support/ShadeHelp/latest/Manual/Reference/200_Animation_Rel ated/WeightPainting/02_WeightPainting.html

  • http://www.alecjacobson.com/weblog

/media/skinning-demo.gif

  • http://catlikecoding.com/unity/tutorials/mesh-

deformation/

Cool Demos:

slide-36
SLIDE 36

Mesh Deformation (Skinning)

  • Envelopes

Source: http://www.peachpit.com/articles/article.aspx?p=483773&seqNum=3 Book: Digital Character Animation-3

  • Painted Weight
  • Numerical Assignment (Advanced)
slide-37
SLIDE 37

Rigging (The Whole Process)

  • Well everything we understood previously is called

rigging.

  • To make it simple it’s a process of creating skeleton

so that the model or character can move.

  • A very technical and overwhelming process.
slide-38
SLIDE 38

Material: Advanced Methods in Computer Graphics

slide-39
SLIDE 39

So Far So Good….

  • We understood how bone skeleton works in general.
  • The idea behind this whole discussion was to introduce

2D Bone Skeletal in Unity Engine.

  • You know the basics this will be easy now…
slide-40
SLIDE 40

Spritesheet Animation (Naive Method)

  • Multiple sprites on single sheet (Better optimization)
  • Swap images rapidly to see the animation.
slide-41
SLIDE 41

Spritesheet Animation (Naive Method)

  • Large Storage
  • Inflexible
  • Not Smooth
  • Great Performance
slide-42
SLIDE 42

Unity Anima-2D (Skeletal Animation)

  • Small Textures
  • Flexible
  • Smooth
  • Enabling Skinning
  • Enable Procedural Animations
  • CPU/GPU Intensive
slide-43
SLIDE 43

Unity Anima-2D (Skeletal Animation)

  • We need
  • Just Sprites nothing else
  • Wait… What about Skinning?
  • Precise Geometry
  • Bones, joints, Inverse kinematics
  • High quality weights
slide-44
SLIDE 44

Unity Anima-2D Components

  • Bone2D
  • Sprite Mesh Instance
  • IK Limb 2D
  • IK CCD2D
  • Pose Manager
slide-45
SLIDE 45

Unity Anima-2D Components

  • Bone2D
slide-46
SLIDE 46

Unity Anima-2D Components

  • Sprite Mesh Instance
slide-47
SLIDE 47

Unity Anima-2D Components

  • Ik Limb 2D
slide-48
SLIDE 48

Unity Anima-2D Components

  • Ik CCD2D
slide-49
SLIDE 49

Unity Anima-2D Components

  • Pose Manager
slide-50
SLIDE 50

Demo Time ;)

slide-51
SLIDE 51

References and Links

1. Bones and Vertices: http://apprize.info/programming/direct3d/5.html 2. Vertices:

  • https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Advanced_Tutorials/Advan

ced_Animation/Guided_tour/Mesh/vg

  • http://help.shade3d.jp/en/support/ShadeHelp/latest/Manual/Reference/200_Anim

ation_Related/WeightPainting/02_WeightPainting.html 3. Joints:

  • https://knowledge.autodesk.com/support/maya/learn-

explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-1B59334F-2605- 44C3-B584-A55B239A2CBE-htm.html

  • https://se.mathworks.com/help/physmod/sm/mech/ref/universal.html
  • 4. Inverse Kinematics:
  • http://wiki.roblox.com/index.php?title=Inverse_kinematics
slide-52
SLIDE 52

References and Links

  • 5. Anima-2D:
  • https://anima2d.com/documentation
  • https://www.assetstore.unity3d.com/en/#!/content/45879
slide-53
SLIDE 53

Thank You 