• Non ci sono risultati.

Tipi di animazione nei games

N/A
N/A
Protected

Academic year: 2021

Condividi "Tipi di animazione nei games"

Copied!
27
0
0

Testo completo

(1)

Video Game Dev 2015/2016 Università dell’Insubria

Animations

Marco Tarini

Tipi di animazione nei games

1. Di oggetti rigidi

animazione di trasformaz di modellazione

(6 DoF per oggetto)

(2)

Tipi di animazione nei games

1. Di oggetti rigidi

animazione di trasformaz di modellazione o composti di parti rigide

Tipi di animazione nei games

2. Free-Form deformations / animations

di oggetti deformabili generici

(3)

Tipi di animazione nei games

3. of articulated models

internal skeleton

la maggior parte dei virtual characters!

“skinning”, oggetti“rigged”

Tipi di animazine e DoF

(x keyframe)

Rigid

Articulated

Free form

6 DoF per oggetto

(o, es, 9, con rescaling anisotr.)

~50-100 DoF per oggetto

(es 3 DoF per giunto x 22 giunti)

300-10.000 DoF per oggetto

(es 3 per vertice)

DoF =

Degrees of Freedom Gradi di Libertà

(4)

Animazioni nei games

Assets!

Controllo da parte degli artisti / creatori (dramatic effects!) Non interattiva Realismo…

dipende dall’artista

Poca customizzabilità

Physic engine Poco controllo

Interattiva

Realismo come prodotto collaterale del rispetto leggi fisiche

Si autoadatta

Procedural Non procedural

Animazioni nei games

O… miste

primary animations: scripted secondary animations: computed alive characters: scripted

dead characters: computed (ragdolls)

(5)

Parentesi terminologia

Alcuni contrari di “procedurale”, a seconda del contesto

baked: (“precotto”) ‘congelato’ in un asset, (anche se era stato prodotto proceduralmente) asset: stored in un asset, quale che sia l’origine,

cioè letto dal disco (o streamed da web, etc) scripted: memorizzato in uno script

(ma anche una procedura di creazione può essere in uno script!

e.g. uno script per la creazione procedurale di un livello)

(manually) designed / edited: prodotto da un artista (e non da un programma)

(fully) simulated: prodotto da simulazione fisica (e non da un programma semplice)

Animations in games

(of 3D SolidObjects)

Procedural Non Procedural

Rigid

Articulated

Free form

Skeletal Animations

Blend-Shapes

Rigid body dynamics Pre-made

transforms

(ASSETS) (PHYSIC ENGINE)

Ragdolling Inverse kinematics

(generic) deformable object

simulation usually too expensive

Cloth/

garments

Ropes

(6)

Animations in games

(of 3D SolidObjects)

Procedural Non Procedural

Rigid

Articulated

Free form

Skeletal Animations

Blend-Shapes

Rigid body dynamics

(ASSETS) (PHYSIC ENGINE)

Ragdolling Inverse kinematics

(generic) deformable object

simulation usually too expensive

Cloth/

garments

Ropes

Pre-made transforms

Scene graph

TR0

TR1 TR2

TR3 TR4 TR5 TR6

posizonamento della automobile

(rispetto al mondo) posiz. della

ruota (rispetto

all’

automobile)

(7)

Scene graph… animato

(animazioni “cinematiche”)

TR0

TR1

TR3 TR4 TR5 TR6

posizonamento della automobile

(rispetto al mondo) posiz. della

ruota (rispetto

all’

automobile)

Tempo: t0 t1 t2 t3 t4

Trasformaz: TR0 TR1 TR2 TR3 TR4

Animazioni cinematiche:

come

modo 1:

scripting

modo 2:

editing is software di animaz.

cinema 4D, blender, 3D max, … (possono usare I.K.)

esportare animaz

come sequenza di keyframes Files: collada, fbx, …

asset:

lo script

asset:

l’animaz

Tempo: t0 t1 t2 t3 t4

Arco A: TR0 TR1 TR2 TR3 TR4

Arco B: TR0 TR1 TR2 TR3 TR4

DEMO!

(8)

Interpolazione di keyframes

(concetto generico) Keyframes

+

inerpolazione

keyframe A keyframe B

0.5 ∙ keyframe A + 0.5 ∙ keyframe B

Interpolazione di keyframes

(concetto generico)

Modellatore / animatore decide:

set di keyframes con tempi associati

La maggior parte frames effettivi:

interpolazioni

fra

keyframes

risparmio di workload dell’artista risparmio di storage

nota: distribuzione keyframes adattiva

più keyframes dove necessario

“timeline”

key-frames

(9)

Interpolazione di keyframes

(caso animazioni cimematiche)

tempo 100

tempo 200 tempo 150

?

keyframe A

keyframe B

T

1

T

2

T

i

= ?

frame interpolato

*necessita (buona) interpolazione fra trasformazioni…

*

Animations in games

(of 3D Solid Objects)

Procedural Non-Procedural

Rigid

Articulated

Free form

Skeletal Animations

Blend-Shapes

Rigid body dynamics Pre-made

transforms

(ASSETS) (PHYSIC ENGINE)

Ragdolling Inverse kinematics

(generic) deformable object

simulation usually too expensive

Cloth/

garments

Ropes

(10)

Animaz. oggetti deformabili:

Blend shapes

A.K.A:

Blend shapes

Per-vertex animations Vertex animations Face morphs Shape keys Morph targets

BARRY BLITT (THE NEW YORKER)

Blend shapes: concept

Amimaz 2D (vecchia scuola):

sequenza di sprites Animaz 3D:

sequenza di mesh?

Walk cycle (Monkey Island

LucasArt 1991)

(11)

Reminder:

rappresentaz di una mesh

Modo

indexed:

Geometria: array di vertici

in ogni vertice, posizione e attributi Attributi:

nei vertici

(e.g. campi della classe “vertice”)

Connettività:

Array di triangoli Per ogni triangolo:

tripletta di indicia vertice

Blend shapes

(struttura dati)

connettività (es: indexed)

Tri:

Wedge 1:

Wedge 2:

Wedge 3:

T1 V4 V1 V2

T2 V4 V2 V5

T3 V5 V2 V3

Vert: Pos

V1 (x,y,z) V2 (x,y,z) V3 (x,y,z) V4 (x,y,z) V5 (x,y,z) geometria:

UV Col

(u,v) (r,g,b) (u,v) (r,g,b) (u,v) (r,g,b) (u,v) (r,g,b) (u,v) (r,g,b)

attributi:

V2

V3

V5 V4

V1

T1 T2

T3

(12)

Blend shapes

(struttura dati)

connettività (es: indexed)

Tri:

Wedge 1:

Wedge 2:

Wedge 3:

T1 V4 V1 V2

T2 V4 V2 V5

T3 V5 V2 V3

Vert:

Base Shape

Shape 1

Shape

2

V1 (x,y,z) (x,y,z) (x,y,z)

V2 (x,y,z) (x,y,z) (x,y,z)

V3 (x,y,z) (x,y,z) (x,y,z)

V4 (x,y,z) (x,y,z) (x,y,z)

V5 (x,y,z) (x,y,z) (x,y,z)

geometrie:

UV Col

(u,v) (r,g,b) (u,v) (r,g,b) (u,v) (r,g,b) (u,v) (r,g,b) (u,v) (r,g,b)

attributi:

V2

V3

V5 V4

V1

T1 T2

T3

V2

V3 V5

V4 V1

T1

T2 T3

V2 V3

V5 V4

V1 T1

T2 T3

Blend shapes

Una mesh con geometria ripetuta varie volte Cioé sequenza di mesh (‘shape’) con

connettività: condivisa attributi: condivisi

(eccetto normali / direz tangenti) geometria: ripetuta x ogni ‘shape’

(etessiture: condivise)

Varianti (equivalenti):

Modorelativo:

base shape: memorizzato esplicitamente

ogni altro shape: come differenza (x,y,z) con base shape Modoassoluto:

ogni shape memorizzato indipendentemente

o‘morph’

o (key)-‘frame’

o‘shape-key’

(13)

Blend shapes

(struttura dati)

Mesh indexed:

class Vertex { vec3 pos;

rgb color;

vec3 normal;

};

class Face{

int vertexIndex[3];

};

class Mesh{

vector<Vertex> vert; /* geom + attr */

vector<Face> tris; /* connettivita’ */

};

Blend shapes

(struttura dati)

Mesh indexed:

class Vertex {

vec3 pos [ N_SHAPES ] ; rgb color;

vec3 normal [ N_SHAPES ] ; };

class Face{

int vertexIndex[3];

};

class Mesh{

vector<Vertex> vert; /* geom + attr */

vector<Face> tris; /* connettivita’ */

};

(14)

Blend-shapes:

file formats più diffusi

Semplici:

.MD5(“quake”, valve)

o, sequenza di mesh separate (es.OBJ) occhio! connettività coerente?

(vertex ordering, face ordering, wedge ordering)

Complessi:

.DAE (Collada) .FBX (Autodesk)

Interpolazione fra 2 shapes

Geometria interpolata:

Assoluto:

shapeAwA+ shapeBwB

Relativo:

shapebase+ delta_shapeA wA+ delta_shapeB wB

con: 0 ≤ w

A

≤ 0

0 ≤ w

B

≤ 1

wA

+ w

B

= 1

(15)

Interpolazione fra shapes

shape A shape B

(shapes = espressioni)

Usi delle Blend shapes

Sequenze temporali

shapes = keyframes

(16)

Usi delle Blend shapes

Sequenze temporali

shapes = keyframes

Usi delle Blend shapes:

sequenze temporali

Shapes == keyframes

di una animaz

shapeA – tempo tA shapeB – tempo tB shapeC – tempo tC shapeD – tempo tD

attimo attuale: t con t

B

< t < t

C

inperpolare fra le shape: … con pesi : …

shapeB

e

shapeC wB wC

1

wB

(17)

Usi delle Blend shapes:

sequenze temporali

Shapes == keyframes

di una animaz

shapeA – tempo tA shapeB – tempo tB shapeC – tempo tC shapeD – tempo tD

attimo attuale: t con t

B

< t < t

C

inperpolare fra le shape: … con pesi : …

shapeB

e

shapeC

wB wC

transition function

Transition functions

Non solo Linear

1 1

linear

(concetto generale nelle animaz vale per tutti i tipi)

(18)

Transition functions

Non solo Linear

1 1

linear

NB: estrapolazione ! ( exaggeration )

(concetto generale nelle animaz vale per tutti i tipi)

Usi delle Blend shapes

Animazioni facciali

(forse l’uso più comune)

Spesso congiunta con animaz skeletali (mandibola, collo, rotaz bulbi oculari)

(19)

Usi delle Blend shapes

Animazioni facciali

(forse l’uso più comune)

Spesso congiunta con animaz skeletali (mandibola, collo, rotaz bulbi oculari)

Interpolazione fra più shapes

Blending di shapes:

Assoluto:

shapeAwA+ shapeBwB+ shapeCwC + … con:

0 ≤ wA,B,C, … 1

wA+ wB+ wC+ … = 1

Relativo:

shapebase+ shapeA wA+ shapeBwB + shapeCwC + …

o anche no (estrapolazione).

Utile per…

(20)
(21)

Blend shapes per animazione facciale: workflow

Modellatore 3D fa:

il set di blend-keys

Animatore (delle espressioni) decide:

i pesi

tipicamente: attraverso slider aiutato / sostituito da software

lip sync

espressioni dinamiche e.g. in games

Blending dei keys: in tempo reale

[VIDEO]

(22)

Usi delle Blend shapes

Configurazioni di oggetti deformabili Pose «precotte»

Usi delle Blend shapes

Varianti di uno stesso oggetto

(miscelabili!)

outfit maschile outfit femminile

(23)

Usi delle Blend shapes

Varianti di uno stesso oggetto

(miscelabili!)

umano orco goblin nano

Usi delle Blend shapes

Definire morfologia di una classe di oggetti

definire una forma = specificare i pesi modellazione 3D “ad alto livello”

i pesi “spannano” unospazio delle forme una forma = un punto dello spazio

pesi = coordinate

uno spazio è tanto più utile quanto più : tutte e sole le forme “ragionevoli”

sono punti dello spazio

Es: (ricorrente): morfologie facciali

“face-space”

nota: morfologia facciale ≠ espressione facciale

(24)

Usi delle Blend shapes

Una blend shape per un face space (“face-morphs”)

[DEMO]

Cosa una blend shape non fa

Cambi di connettività

es di risoluzione, remeshing

Cambi topologici

rottura, separazione, fusione di pezzi

Cambi di attributi

(es mutamenti di colore…)

Cambi di textures

usare invece una texture animation, maybe?

(25)

Blend shapes:

come si ottengono

Manualmente:

1. Editare la base shape

compreso:

uv-mapping, texturing, etc.

2. Ri-editare la base shape x ogni shape-key!

…ma preservando:

connettività, textures, etc

low poly editing subdivision surfaces parametric surfaces…

scupting: difficilmente.

Authoring di blend-shapes

Manuale per

animazione blend-shape di volti:

“Stop Staring”

(3d edition) Jason Osipa Stile,

espressione…

Non tecnico (alto livello)

No strumenti specifici e.g. Blender, Maya

(26)

Blend shapes:

come si ottengono

Cattura:

aquisizione della base shape

(opz: semplificaz remeshing uv-mapping etc) cattura dei frame successivi

e.g. kinect, o scansione di ogni frame morphing dei frame successivi

“non rigid mesh alignment”

[VIDEO]

Blend shapes:

vantaggi e svantaggi

☺ Flessibili, espressive, molta libertà…

troppa?

Consumo memoria Work intensive da costruire

☺ Facili da usare una volta costruite

solo definiz pesi (e.g. sliders)

(anche se non

tanto quanto, e.g., sprites,

xchè frames riutilizzano:

connettività attributi tessiture…)

(27)

Blend shapes:

challanges

Cattura da stream di meshes Compression

eg: prediction + store corrections + Huffman

Streaming

LOD-ding

Riferimenti

Documenti correlati

 Space of the root bone =(def)= object space (of the character).  Skeleton of

 one skinned mesh: runs with any animations.  one skeletal animation: can be appliecable to

a: spazio root nella posa data (di destinaz) utili per applicare la posa alla mesh. a volte, solo la

[r]

depth test va rimandato e alcune ottimizzazioni HW. Per

– es: normale, colore, altri parametri materiale, … come lo memorizzo. • Soluzione 1: come

Capire se la texture sta venendo rimpicciolita o ingrandita – nel passare da texel nel texture sheet a pixel sulle schermo – texture “minification” o “magnification”.. –

Document Title: LHC-B Level-1 Vertex Topology Trigger User Requirements Document 2.. Document Reference Number: LHC-B