Animations Tipi di animazione nei games
Transcript
Animations Tipi di animazione nei games
Video Games Dev - 2015/2016 28/11/2015 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) Marco Tarini - Univ. Insubria 1 Video Games Dev - 2015/2016 28/11/2015 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 Marco Tarini - Univ. Insubria 2 Video Games Dev - 2015/2016 28/11/2015 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 DoF = Degrees of Freedom Gradi di Libertà 6 DoF per oggetto (o, es, 9, con rescaling anisotr.) Articulated ~50-100 DoF per oggetto (es 3 DoF per giunto x 22 giunti) Free form 300-10.000 DoF per oggetto (es 3 per vertice) Marco Tarini - Univ. Insubria 3 Video Games Dev - 2015/2016 28/11/2015 Animazioni nei games Procedural Non procedural 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 Animazioni nei games O… miste primary animations: scripted secondary animations: computed alive characters: scripted dead characters: computed (ragdolls) … Marco Tarini - Univ. Insubria 4 Video Games Dev - 2015/2016 28/11/2015 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 Solid Objects) Non Procedural (ASSETS) Procedural (PHYSIC ENGINE) Rigid Pre-made transforms Rigid body dynamics Articulated Skeletal Animations Free form Blend-Shapes Ragdolling (generic) deformable object simulation usually too expensive Marco Tarini - Univ. Insubria Inverse kinematics Cloth/ garments Ropes 5 Video Games Dev - 2015/2016 28/11/2015 Animations in games (of 3D Solid Objects) Non Procedural Procedural (PHYSIC ENGINE) (ASSETS) Rigid Rigid body dynamics Pre-made transforms Articulated Skeletal Animations Ragdolling Free form (generic) deformable object simulation Blend-Shapes usually too expensive Inverse kinematics Cloth/ garments Ropes Scene graph posizonamento della automobile (rispetto al mondo) posiz. della ruota (rispetto all’ automobile) TR3 Marco Tarini - Univ. Insubria TR0 TR4 TR1 TR2 TR5 TR6 6 Video Games Dev - 2015/2016 28/11/2015 Scene graph… animato (animazioni “cinematiche”) posizonamento della automobile (rispetto al mondo) posiz. della ruota (rispetto all’ automobile) TR0 TR3 TR4 Tempo: t0 t1 t2 t3 t4 Trasformaz: TR0 TR1 TR2 TR3 TR4 TR1 TR5 TR6 Animazioni cinematiche: come modo 1: asset: lo script scripting DEMO! 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, … Tempo: t0 t1 t2 t3 t4 Arco A: TR0 TR1 TR2 TR3 TR4 Arco B: TR0 TR1 TR2 TR3 TR4 Marco Tarini - Univ. Insubria asset: l’animaz 7 Video Games Dev - 2015/2016 28/11/2015 Interpolazione di keyframes (concetto generico) Keyframes + inerpolazione keyframe A 0.5 ∙ keyframe A + 0.5 ∙ keyframe B keyframe B Interpolazione di keyframes (concetto generico) Modellatore / animatore decide: set di keyframes con tempi associati “timeline” key-frames La maggior parte frames effettivi: interpolazioni fra keyframes risparmio di workload dell’artista risparmio di storage nota: distribuzione keyframes adattiva più keyframes dove necessario Marco Tarini - Univ. Insubria 8 Video Games Dev - 2015/2016 28/11/2015 Interpolazione di keyframes (caso animazioni cimematiche) T1 tempo 100 keyframe A Ti = ?* ? tempo 150 frame interpolato T2 tempo 200 * necessita (buona) keyframe B interpolazione fra trasformazioni… Animations in games (of 3D Solid Objects) Non-Procedural (ASSETS) Procedural (PHYSIC ENGINE) Rigid Pre-made transforms Rigid body dynamics Articulated Skeletal Animations Free form Blend-Shapes Ragdolling (generic) deformable object simulation usually too expensive Marco Tarini - Univ. Insubria Inverse kinematics Cloth/ garments Ropes 9 Video Games Dev - 2015/2016 28/11/2015 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 Walk cycle (Monkey Island LucasArt 1991) Amimaz 2D (vecchia scuola): sequenza di sprites Animaz 3D: sequenza di mesh? Marco Tarini - Univ. Insubria 10 Video Games Dev - 2015/2016 28/11/2015 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 indici a vertice Blend shapes (struttura dati) V1 V2 T1 T3 V3 T2 V4 geometria: V5 connettività (es: indexed) attributi: UV Col (x,y,z) (u,v) (r,g,b) Vert: Pos V1 Wedge 1: Wedge 2: Wedge 3: V2 (x,y,z) (u,v) (r,g,b) Tri: T1 V4 V1 V2 V3 (x,y,z) (u,v) (r,g,b) T2 V4 V2 V5 V4 (x,y,z) (u,v) (r,g,b) T3 V5 V2 V3 V5 (x,y,z) (u,v) (r,g,b) Marco Tarini - Univ. Insubria 11 Video Games Dev - 2015/2016 28/11/2015 Blend shapes (struttura dati) V2 V2 V1 V1 T1 V2 T1 T3 T2 V1 V3 V3 T3 T2 V4 T1 T3 V4 V5 V3 V5 T2 V4 attributi: geometrie: V5 connettività (es: indexed) Vert: Base Shape Shape 1 Shape 2 … UV Col V1 (x,y,z) (x,y,z) (x,y,z) … (u,v) (r,g,b) Wedge 1: Wedge 2: Wedge 3: V2 (x,y,z) (x,y,z) (x,y,z) … (u,v) (r,g,b) Tri: T1 V4 V1 V2 V3 (x,y,z) (x,y,z) (x,y,z) … (u,v) (r,g,b) T2 V4 V2 V5 V4 (x,y,z) (x,y,z) (x,y,z) … (u,v) (r,g,b) T3 V5 V2 V3 V5 (x,y,z) (x,y,z) (x,y,z) … (u,v) (r,g,b) 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’ (e tessiture: condivise) Varianti (equivalenti): o ‘morph’ o (key)-‘frame’ o ‘shape-key’ Modo relativo: base shape: memorizzato esplicitamente ogni altro shape: come differenza (x,y,z) con base shape Modo assoluto: ogni shape memorizzato indipendentemente Marco Tarini - Univ. Insubria 12 Video Games Dev - 2015/2016 28/11/2015 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’ */ }; Marco Tarini - Univ. Insubria 13 Video Games Dev - 2015/2016 28/11/2015 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: shapeA ∙ wA + shapeB ∙ wB Relativo: shapebase + delta_shapeA ∙ wA + delta_shapeB ∙ wB con: 0 ≤ wA ≤ 0 0 ≤ wB ≤ 1 wA + wB = 1 Marco Tarini - Univ. Insubria 14 Video Games Dev - 2015/2016 28/11/2015 Interpolazione fra shapes shape A shape B (shapes = espressioni) Usi delle Blend shapes Sequenze temporali shapes = keyframes Marco Tarini - Univ. Insubria 15 Video Games Dev - 2015/2016 28/11/2015 Usi delle Blend shapes Sequenze temporali shapes = keyframes Usi delle Blend shapes: sequenze temporali Shapes == keyframes di una animaz shapeA shapeB shapeC shapeD – tempo tA – tempo tB – tempo tC – tempo tD attimo attuale: t con tB < t < tC inperpolare fra le shape: shape … B e shapeC con pesi : … wB wC 1 wB Marco Tarini - Univ. Insubria 16 Video Games Dev - 2015/2016 28/11/2015 Usi delle Blend shapes: sequenze temporali Shapes == keyframes di una animaz shapeA shapeB shapeC shapeD – tempo tA – tempo tB – tempo tC – tempo tD attimo attuale: t con tB < t < tC inperpolare fra le shape: shape … B e shapeC con pesi : … wB wC transition function (concetto generale nelle animaz vale per tutti i tipi) Transition functions Non solo Linear 1 linear Marco Tarini - Univ. Insubria 1 17 Video Games Dev - 2015/2016 28/11/2015 (concetto generale nelle animaz vale per tutti i tipi) Transition functions Non solo Linear 1 linear NB: ( 1 estrapolazione ! exaggeration ) Usi delle Blend shapes Animazioni facciali (forse l’uso più comune) Spesso congiunta con animaz skeletali (mandibola, collo, rotaz bulbi oculari) Marco Tarini - Univ. Insubria 18 Video Games Dev - 2015/2016 28/11/2015 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: shapeA ∙ wA + shapeB ∙ wB+ shapeC ∙ wC + … con: 0 ≤ wA,B,C, … ≤ 1 o anche no (estrapolazione). Utile per… wA + wB + wC + … = 1 Relativo: shapebase + shapeA ∙ wA + shapeB ∙ wB + shapeC ∙ wC + … Marco Tarini - Univ. Insubria 19 Video Games Dev - 2015/2016 Marco Tarini - Univ. Insubria 28/11/2015 20 Video Games Dev - 2015/2016 28/11/2015 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] Marco Tarini - Univ. Insubria 21 Video Games Dev - 2015/2016 28/11/2015 Usi delle Blend shapes Configurazioni di oggetti deformabili Pose «precotte» Usi delle Blend shapes Varianti di uno stesso oggetto (miscelabili!) outfit maschile Marco Tarini - Univ. Insubria outfit femminile 22 Video Games Dev - 2015/2016 28/11/2015 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” uno spazio 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 Marco Tarini - Univ. Insubria 23 Video Games Dev - 2015/2016 28/11/2015 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? Marco Tarini - Univ. Insubria 24 Video Games Dev - 2015/2016 28/11/2015 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 Marco Tarini - Univ. Insubria 25 Video Games Dev - 2015/2016 28/11/2015 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? (anche se non Consumo memoria Work intensive da costruire tanto quanto, e.g., sprites, xchè frames riutilizzano: connettività attributi tessiture…) ☺ Facili da usare una volta costruite solo definiz pesi (e.g. sliders) Marco Tarini - Univ. Insubria 26 Video Games Dev - 2015/2016 28/11/2015 Blend shapes: challanges Cattura da stream di meshes Compression eg: prediction + store corrections + Huffman Streaming LOD-ding Marco Tarini - Univ. Insubria 27
Documenti analoghi
Tipi di animazioni scripted Blend shapes
2. Ri-editare la base shape
x ogni shape-key!
…ma preservando:
connettività
low poly editing
subdivision surfaces
parametric surfaces…
scupting: difficilmente.