Animace Humanoidního 3D Modelu Student: Oldřich Linhart Vedoucí: Ing
Total Page:16
File Type:pdf, Size:1020Kb
ZADÁNÍ BAKALÁŘSKÉ PRÁCE Název: Animace humanoidního 3D modelu Student: Oldřich Linhart Vedoucí: Ing. Jiří Kubišta Studijní program: Informatika Studijní obor: Webové a softwarové inženýrství Katedra: Katedra softwarového inženýrství Platnost zadání: Do konce letního semestru 2020/21 Pokyny pro vypracování 1. Vypracujte přehled současných řešení animací humanoidních 3D modelů. 2. Navrhněte postup přípravy 3D modelu pro následnou animaci, včetně vytvoření kostry. 3. S využitím Vámi zvoleného řešení implementujte sadu alespoň pěti základních animací končetin a hlavy humanoidního 3D modelu sbírkového předmětu, vybraného po dohodě s vedoucím práce. 4. Vámi vytvořené animace demonstrujte v jednoduché aplikaci vytvořené ve Vámi zvoleném herním enginu. Seznam odborné literatury Dodá vedoucí práce. Ing. Michal Valenta, Ph.D. doc. RNDr. Ing. Marcel Jiřina, Ph.D. vedoucí katedry děkan V Praze dne 29. ledna 2020 Bakal´aˇrsk´apr´ace Animace humanoidn´ıho3D modelu OldˇrichLinhart Katedra softwarov´ehoinˇzen´yrstv´ı Vedouc´ıpr´ace:Ing. Jiˇr´ıKubiˇsta 4. ˇcervna2020 Podˇekov´an´ı R´adbych podˇekoval m´emu vedouc´ımu pr´aceIng. Jiˇr´ımu Kubiˇstovi za cenn´e rady a pˇripom´ınky. Takt´eˇzbych r´adpodˇekoval sv´erodinˇeza podporu pˇri studiu. Prohl´aˇsen´ı Prohlaˇsuji,ˇzejsem pˇredloˇzenou pr´acivypracoval samostatnˇea ˇzejsem uvedl veˇsker´epouˇzit´einformaˇcn´ızdroje v souladu s Metodick´ympokynem o dodr- ˇzov´an´ıetick´ych princip˚upˇripˇr´ıpravˇevysokoˇskolsk´ych z´avˇereˇcn´ych prac´ı. Beru na vˇedom´ı,ˇzese na moji pr´acivztahuj´ıpr´ava a povinnosti vypl´yvaj´ıc´ı ze z´akona ˇc.121/2000 Sb., autorsk´ehoz´akona, ve znˇen´ıpozdˇejˇs´ıch pˇredpis˚u, zejm´enaskuteˇcnost, ˇze Cesk´evysok´euˇcen´ıtechnick´evˇ Praze m´apr´avo na uzavˇren´ılicenˇcn´ısmlouvy o uˇzit´ıt´etopr´acejako ˇskoln´ıhod´ılapodle § 60 odst. 1 citovan´ehoz´akona. V Praze dne 4. ˇcervna2020 . .. .. .. .. .. .. Cesk´evysok´euˇcen´ıtechnick´evˇ Praze Fakulta informaˇcn´ıch technologi´ı © 2020 Oldˇrich Linhart. Vˇsechna pr´ava vyhrazena. Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Cesk´emvysok´emuˇcen´ıˇ technick´em v Praze, Fakultˇeinformaˇcn´ıchtechnologi´ı.Pr´ace je chr´anˇenapr´avn´ımipˇredpisy a mezin´arodn´ımi´umluvamio pr´avuautorsk´ema pr´avech souvisej´ıc´ıchs pr´avem autorsk´ym.K jej´ımuuˇzit´ı,s v´yjimkoubez´uplatn´ychz´akonn´ychlicenc´ıa nad r´amec opr´avnˇen´ıuveden´ychv Prohl´aˇsen´ına pˇredchoz´ıstranˇe,je nezbytn´ysou- hlas autora. Odkaz na tuto pr´aci Linhart, Oldˇrich. Animace humanoidn´ıho3D modelu. Bakal´aˇrsk´apr´ace.Praha: Cesk´evysok´euˇcen´ıtechnick´evˇ Praze, Fakulta informaˇcn´ıch technologi´ı,2020. Abstrakt Tato pr´acese zab´yv´aproblematikou animace humanoidn´ıch postav. C´ılem pr´aceje sezn´amitˇcten´aˇrese z´akladn´ımi pojmy a principy, kter´ejsou spo- jen´es vytv´aˇren´ımhumanoidn´ıch 3D postav a jejich animac´ı.Je pops´anpro- ces pˇr´ıpravy model˚uk animaci, kter´yje prakticky pˇredveden na modelu, pˇridˇelen´ehood vedouc´ıhopr´ace.Pro model je vytvoˇren´aovl´adac´ıkostra a po- moc´ımetod dopˇredn´ea inverzn´ıkinematiky je demonstrov´anpostup vytv´aˇren´ı kostern´ıch animac´ı.V´ysledkem pr´aceje upraven´ypˇridˇelen´ymodel, pˇripraven´y k vytv´aˇren´ıanimac´ı,sada z´akladn´ıch animac´ıa jednoduch´aaplikace v hern´ım engine Unity, kde lze animace demonstrovat. Kl´ıˇcov´a slova humanoidn´ı animace, rigging, kloubov´asoustava, kostern´ı animace, procedur´aln´ıanimace, pˇr´ım´akinematika, inverzn´ıkinematika, de- monstraˇcn´ıaplikace, Blender, Unity vii Abstract This thesis is focused on humanoid character animation. The goal is to in- troduce the basic terminology and principles associated with creating and animating 3D characters to the reader. The whole process of preparing a character for animation is explained and demonstrated on model assigned by thesis supervisor. Skeleton of the model is created with rigging and skin- ning techniques. Creation of skeletal animation using forward and inverse kinematics is demonstrated. The result of this project is a model with an advanced rig, appropriate for animation. A set of basic animations is created and demonstrated in simple Unity application. Keywords humanoid animation, rigging, articulated structure, skeletal ani- mation, procedural animation, forward kinematics, inverse kinematics, demon- strational application, Blender, Unity viii Obsah Uvod´ 1 1 C´ıl pr´ace 3 2 Teoretick´a ˇc´ast 5 2.1 Reprezentace model˚uve 3D . 5 2.1.1 Polygonov´as´ıt’ ....................... 5 2.1.2 Topologie . 7 2.1.3 Level of Detail . 8 2.1.4 Sculpting . 10 2.1.5 Fotogrammetrie . 11 2.1.6 Zap´ek´an´ıtextur . 12 2.2 Poˇc´ıtaˇcov´aanimace . 12 2.2.1 Keyframing . 13 2.2.1.1 Vertex animation . 14 2.2.1.2 Morph target animation . 14 2.2.2 Procedur´aln´ıanimace . 15 2.3 Kostern´ıanimace . 16 2.3.1 Kostra . 16 2.3.2 Rigging . 17 2.3.3 Degree of Freedom . 18 2.3.4 Skinning . 19 2.3.5 Kinematika . 20 2.3.5.1 Dopˇredn´akinematika . 21 2.3.5.2 Inverzn´ıkinematika . 22 2.3.6 Motion capture . 24 2.3.7 M´ıch´an´ıanimac´ı . 25 2.4 Hern´ıengine . 26 3 Analyza´ a n´avrh 27 ix 3.1 Struktura projektu . 27 3.2 Volba softwaru . 27 3.2.1 V´ybˇermodelovac´ıhosoftwaru . 27 3.2.2 V´ybˇerhern´ıhoengine . 28 3.3 Uprava´ modelu . 30 3.3.1 Anal´yzamodelu . 30 3.3.2 Oddˇelen´ıˇc´ast´ımodelu . 30 3.3.3 Domodelov´an´ıchybˇej´ıc´ıch ˇc´ast´ı . 31 3.3.4 Uprava´ textur . 33 3.3.5 Level of Detail . 34 3.3.6 Kostra . 34 3.4 Animace a v´yvoj aplikace . 35 3.4.1 Import modelu . 35 3.4.2 Animace . 37 3.4.2.1 T-pose . 37 3.4.2.2 Neˇcinnost. 38 3.4.2.3 Ch˚uzea bˇeh . 38 3.4.2.4 Zam´av´an´ı. 38 3.4.2.5 Skok . 39 3.4.3 Design prostˇred´ı . 40 3.4.4 Pohyb a ovl´ad´an´ı. 40 3.4.5 Inverzn´ıkinematika . 41 3.4.6 Kamerov´ysyst´em . 42 4 Implementace 43 4.1 Model a textury . 43 4.2 Level of Detail . 45 4.3 Kostra . 45 4.4 Animace . 47 4.5 Aplikace . 47 Z´avˇer 53 Literatura 55 A Seznam pouˇzitych´ zkratek 61 B Obsah pˇriloˇzen´eho CD 63 x Seznam obr´azk˚u 2.1 Struktura polygonu, norm´alaurˇcujeorientaci plochy [3] . 6 2.2 Dvˇemoˇznosti triangulace nerovinn´ehoˇctyˇr´uheln´ıku[7] . 7 2.3 Deformace modelu v z´avislostina topologii [11] . 8 2.4 Smyˇckyhran a smyˇckyploch [3] . 9 2.5 Decimace a retopologizace modelu [16] . 11 2.6 a) krokov´a;b) line´arn´ı;c) kˇrivkov´ainterpolace kl´ıˇcov´ych sn´ımk˚u[30] 14 2.7 Morph targets [4] . 15 2.8 Typick´avizualizace kost´ıa kloub˚u[1] . 17 2.9 Pˇr´ıkladkostry pro humanoidn´ıpostavu [6] . 18 2.10 a) Collapsing elbow efekt, b) Candy-wrapper efekt [30] . 20 2.11 Retˇezeckloub˚ureprezentuj´ıc´ırukuˇ humanoida [23] . 22 2.12 V´ıceˇreˇsen´ıpˇriv´ypoˇctuinverzn´ıkinematiky [30] . 23 2.13 Iteraˇcn´ıpˇribliˇzov´an´ıkoncov´ehoefektoru ke sv´emu c´ıli[6] . 24 3.1 Porovn´an´ınˇekolika softwar˚upro 3D grafiku [36] . 28 3.2 Pˇridˇelen´ymodel robota . 30 3.3 Proporcion´aln´ıeditov´an´ıv programu Blender . 33 3.4 Zjednoduˇsen´evytv´aˇren´ımasky pro humanoidn´ıpostavy v Unity [38] 39 4.1 Robot s oddˇelen´ymiˇc´astmi . 44 4.2 Model s domodelovan´ymiklouby . 44 4.3 Zapeˇcen´atextura robota . 45 4.4 Origin´aln´ı model (vlevo) a model se sn´ıˇzen´ymstupnˇemdetailu (vpravo) . 46 4.5 Kostra robota . 47 4.6 Sc´enaaplikace . 48 4.7 M´ıch´an´ıanimac´ınohou s animacemi rukou . 49 4.8 Aplikace inverzn´ıkinematiky (pˇr´ıklad1) . 50 4.9 Aplikace inverzn´ıkinematiky (pˇr´ıklad2) . 51 4.10 Aplikace inverzn´ıkinematiky (pˇr´ıklad3) . 51 xi Seznam tabulek 4.1 Detaily vytvoˇren´ych animac´ı . 48 4.2 Ovl´ad´an´ıaplikace . 49 xiii Uvod´ Humanoid je bytost, kter´am´avzhled pˇripom´ınaj´ıc´ıˇclovˇeka.Chod´ıpo dvou noh´ach, m´advˇeruce, trup a hlavu. Bˇeˇznˇese s nimi lze setkat v seri´alech, filmech i poˇc´ıtaˇcov´ych hr´ach, at’ uˇzve formˇerobota, elfa, trola, zlobra, nebo jin´efiktivn´ıbytosti. Animace postav kombinuje umˇeleckou tvorbu s precizn´ımstudiem pohybu ˇzivoˇcich˚ua jejich anatomie. Vyˇzadujei znalost fyziky, zejm´enamechaniky. Vy- tvoˇren´ıpˇresvˇedˇciv´eanimace nen´ıjednoduch´e. Kaˇzd´asc´enamus´ıvypr´avˇetsv˚uj vlastn´ıpˇr´ıbˇeh,kaˇzd´apostava mus´ım´ıt vlastn´ıcharakter. Jedno zdviˇzen´eoboˇc´ı m˚uˇzekompletnˇezmˇenitdojem, kter´ym´apostava vyjadˇrovat. Div´acianimo- van´ych film˚uocen´ıplynul´edetailn´ıanimace u kter´ych lze odhadnout osobnost postavy ˇcistˇez toho, jak se pohybuje. Hr´aˇcizase chtˇej´ı,aby se postavy po- hybovaly responzivnˇe.Chtˇej´ım´ıtkontrolu nad t´ım,co a kdy jejich postava dˇel´a.Pokud bojuj´ıs pˇr´ıˇserou, chtˇej´ız pohybu poznat, kdy bude ´utoˇcit.Chtˇej´ı, aby jejich postava interaktivnˇemanipulovala s hern´ımsvˇetem.Anim´atoˇrimus´ı spolupracovat s program´atory, aby naˇslimezi ovl´ad´an´ıma animac´ıkompromis. Z d˚uvodu st´alevˇetˇs´ıhorozvoje hardwarov´etechnologie maj´ıanim´atoˇrist´ale vˇetˇs´ıvolnost ve vytv´aˇren´ıtechnologi´ı a algoritm˚u,kter´epom´ahaj´ıpostavy oˇzivitve virtu´aln´ımsvˇetˇe. Tato pr´acese zamˇeˇrujena cel´yproces, od pˇr´ıpravy postavy, k metod´am samotn´eanimace a vyuˇzit´ıtˇechto animac´ıv poˇc´ıtaˇcov´ych hr´ach. Pr´aceobsa- huje kapitolu o reprezentaci postav v poˇc´ıtaˇcov´egrafice, zp˚usoby jejich tvorby, ´upravy, manipulace a z´asadynutn´epro budouc´ıanimaci. V dalˇs´ıˇc´astijsou pops´any obecn´eprincipy poˇc´ıtaˇcov´eanimace. Co to je vlastnˇeanimace, jak´ymi zp˚usoby se vytv´aˇr´ı,jak se ovl´ad´a,jak se ukl´ad´a,atd. Dalˇs´ıˇc´astse jiˇzzamˇeˇruje na animaci humanoidn´ıch postav pomoc´ıkostern´ıanimace.