ERK'2022, Portorož, 150-153 150 Koraki v digitalni animaciji: ˇ studija primera Miha Marinko, Gorazd Gorup, Blaˇ z Koˇ sir, as. Blaˇ z Meden, prof. dr. Narvika Bovcon Fakulteta za raˇ cunalniˇ stvo in informatiko, Univerza v Ljubljani, Veˇ cna pot 113, 1000 Ljubljana E-poˇ sta: mm7523@student.uni-lj.si, gg6898@student.uni-lj.si, bk4686@student.uni-lj.si, Narvika.Bovcon@fri.uni-lj.si, Blaz.Meden@fri.uni-lj.si Abstract In this paper we introduce our approach to making a digital animation. We present the whole process which consists of script writing, drawing storyboards, making 3d models, texturing, animating and rendering. We talk about our approach to each step, list the software and assets that were used and also describe our approach to dealing with large files and render optimization. We uti- lize the presented processes in creation of a short ani- mated film. 1 Uvod Digitalna animacija je vrsta umetnosti, ki je s tehniˇ cnega vidika zelo zanimiva, saj vkljuˇ cuje raznovrstne procese in orodja, ki so lahko zelo kompleksni. Zanimalo nas je, kakˇ sna je pravzaprav teˇ zavnost izdelave animiranega filma in kakˇ sne izzive predstavlja. Cilj naˇ sega projekta je bil izdelati kratki animirani film in odkriti postopke, potrebne za izdelavo animacij ter organizacijo dela. 2 Pregled podroˇ cja Digitalna animacija je proces raˇ cunalniˇ sko generiranih animiranih slik. Sodobna digitalna animacija obiˇ cajno uporablja raˇ cunalniˇ sko grafiko. Raˇ cunalniˇ ska animacija je v osnovi naslednik stop-motion tehnike animacije [2]. Kratki samostojni digitalni animirani filmi so se zaˇ celi ˇ ze v poznih sedemdesetih letih, kmalu pa je bila raˇ cunal- niˇ ska grafika vkljuˇ cena tudi v celoveˇ cerne filme, kot je film Tron. Prvi film, v celoti narejen z raˇ cunalniˇ sko gra- fiko, je bil Toy Story leta 1995, ki sta ga ustvarili film- ski hiˇ si Disney in Pixar. Digitalni animirani filmi da- nes predstavljajo velik del filmske industrije, elementi raˇ cunalniˇ ske grafike pa se pojavijo v skoraj vsakem filmu. Animirani filmi se veˇ cinoma izdelujejo v za to speci- aliziranih filmskih studiih in filmskih hiˇ sah, ki navadno svojih postopkov in orodij ne delijo z javnostjo. Vˇ casih produkcije objavijo posnetke in material za boljˇ si vpo- gled v njihovo delo [5], vendar je ta vsebina omejena in izpuˇ sˇ ca ali poenostavlja nekatere stopnje razvoja animi- ranega filma. Treba je omeniti tudi nestanovitnost ustvarjalnega pro- cesa, ki se mora prilagajati potrebam ustvarjalcev. Na spletu in v strokovnem ˇ ctivu s tega podroˇ cja je zato ve- likokrat mogoˇ ce najti le okvirne smernice za razvoj ani- miranega filma, ki razen nekaterih podrobnosti izhajajo iz sploˇ snih smernic za izdelavo filmskih vsebin. Iz teh razlogov in cene orodij, procesov in strojne opreme je ljubiteljsko izdelovanje animiranih filmov velik izziv. Blender Foundation, leta 2002 ustanovljena funda- cija, ki skrbi za razvoj odprto-kodnega 3D modelirnega in animacijskega orodja Blender, ˇ ze od leta 2005 izdeluje kratke animirane filme, ki sluˇ zijo kot tehnoloˇ ske demon- stracije in testi orodja Blender. Razvoj filmov je zlasti v zadnjem ˇ casu zelo odprt, zato ima lahko kdorkoli vpogled v sam potek izdelave [6]. Leta 2019, po izidu kratkega animiranega filma Spring, je njegov reˇ ziser Andreas Goralczyk na konferenci Blen- der Conference 2019 predstavil potek izdelave filma [3]. V predstavitvi je opisal korake izdelave animiranih fil- mov (snemalna knjiga, izdelava likov, animacija, osvetli- tev ...), upravljanje s produkcijskimi viri, razporeditev da- totek, organizacijo dela in sodelovanje ustvarjalcev iz veˇ c razliˇ cnih stopenj razvoja. ˇ Ceprav se predstavitev osre- dotoˇ ca na produkcijo v orodju Blender, je vseeno dovolj sploˇ sna. Na spletu se nahajajo tudi druge predstavitve produk- cijskih postopkov za izdelavo animiranih filmov, ki so si po kakovosti zelo razliˇ cni [4]. Obstajajo tudi teˇ caji in platforme, ki uˇ cijo izdelavo animiranih filmov [8]. 3 Zaˇ cetek projekta Prva osnova za projekt je bila zgodba. Ker smo imeli omejen ˇ casovni razpon, smo si morali zastaviti nekaj ome- jitev. Prizoriˇ sˇ c dogajanj naj bi bilo ˇ cim manj. Prav tako smo se odloˇ cili, da v filmu ne bo prisotnih ljudi, ˇ zivali in kompleksnih struktur, ker bi to zahtevalo naprednejˇ se znanje in ˇ casovno zahtevno modeliranje. Ker smo vse- eno hoteli dinamiˇ cno zgodbo in junake v filmu, smo se odloˇ cili, da bosta glavna junaka filma robota, poˇ starski robot (Poˇ starbot) in pometaˇ c (Pometaˇ c). Na tem mestu smo napisali veˇ c potencialnih zgodb, iz katerih smo iz- brali tisto, ki je po naˇ sem mnenju imela primerno raz- merje med izvedljivostjo in zanimivostjo. Paziti je bilo potrebno na dejanja in dogajanje v zgodbi, saj bi to lahko moˇ cno vplivalo na zahtevnost procesa animiranja. Iz izbrane zgodbe smo potem napisali scenarij za ani- macijo. Poleg scenarija smo naredili ˇ se pregled kadrov, kjer smo vsakemu doloˇ cili opis, objekt v fokusu ter pre- mik in nivo kamere. Kadrom smo doloˇ cili pomembnost, 151 da bi lahko kasneje po potrebi izpustili manj pomembne. 4 Priprava konceptov Z doloˇ cenim seznamom kadrov in scenarijem smo lahko zaˇ celi z izdelovanjem konceptov. Narisali smo skice glav- nih likov in izdelali preproste 3D modele. Na njihovi osnovi smo opredelili sklepe in njihove omejitve, kako se robota lahko premikata ter kako bosta izraˇ zala ˇ custva. Na primer, ker Poˇ starbot v konˇ cni razliˇ cici nima obraza, je bilo potrebno preostanek njegovega telesa naˇ crtovati tako, da je lahko izraˇ zal ˇ custva prek telesne mimike. Sledila je izdelava snemalne knjige (slika 1) v pro- gramu Storyboarder. V njej smo predstavili vse kadre v obliki skic. Konˇ cni izdelek te faze je bila animacija s 55 slikami (ang. frame), ki naj bi predstavljala vse po- membne gibe v filmu. Slika 1: Snemalna knjiga Kasneje v projektu se je izkazalo, da se naˇ crtovanju scenarija in konceptov nismo posvetili dovolj natanˇ cno, saj smo morali uvesti veˇ c sprememb. Sprva smo naˇ crtovali kar 40 razliˇ cnih kadrov, vendar smo zaradi ˇ casovnih ome- jitev zgodbo prestrukturirali in skrajˇ sali na 20 kadrov. 5 Izdelava 3D modelov in tekstur Veˇ cino 3D modelov smo izdelali sami v odprtokodnem orodju za 3D raˇ cunalniˇ sko grafiko Blender. Zaˇ celi smo z modeliranjem osnovnih oblik, ki pribliˇ zno zajamejo sil- hueto robota, in na njih gradili podrobnosti. Po modeli- ranju je sledilo teksturiranje, ki je bilo najprej veˇ cinoma proceduralno (se pravi matematiˇ cno generirano). Ko smo bili zadovoljni z osnovnimi teksturami, smo z barvanjem tekstur (ang. texture painting) dodali ˇ se znake obrablje- nosti in umazanije, kar modele naredi bolj realistiˇ cne. Kot liku, ki je v fokusu veˇ cino animacije, smo ro- botu poˇ starju (Poˇ starbotu) (slika 2) posvetili najveˇ c po- zornosti. Da je njegova vloga prepoznavna, ima na spre- dnjem delu narisano kuverto, njegova glava pa je v obliki ameriˇ skega nabiralnika. Da bi bil robot bolj ekspresiven, smo ga naredili ˇ cim bolj podobnega ˇ cloveku. Pri mode- liranju smo se zgledovali po robotih iz animiranega filma WALL-E in po slikah nabiralnikov, kamer, robotov in dru- gih predmetov. Pri oblikovanju robota Pometaˇ ca (slika 3) smo iskali navdih predvsem pri ˇ cistilnih strojih za ˇ ciˇ sˇ cenje velikih Slika 2: Teksturirani 3D model poˇ starskega robota povrˇ sin in strojih za ˇ ciˇ sˇ cenje cest. Na sprednji strani ima dve vrteˇ ci se metli, ki predstavita robotovo glavno na- logo. Spredaj ima zaslon s kvadrati, ki predstavljajo oˇ ci, s katerimi liku pripiˇ semo osebnost. Slika 3: Teksturirani 3D model robota pometaˇ ca Scena predstavlja ulico v primestni soseski (slika 4). V sredini scene je cesta, ki se na obeh straneh rahlo dvi- gne v travnati pas s ploˇ cnikom, za njim pa so dvoriˇ sˇ ca in hiˇ se. Hiˇ se smo delno zmodelirali sami, nekatere pa smo prenesli iz spletne platforme cgtrader. Materiale za hiˇ se smo izdelali sami proceduralno in s pomoˇ cjo tekstur iz spletnih platform, kot sta BlenderKit in AmbientCG. Da smo se izognili dodajanju dodatnih detajlov v daljavi, smo med hiˇ sami dodali ograjo. Na travnatem pasu smo v nakljuˇ cnem vzorcu razporedili travo in dodali drevesa in grmovje. Modeli rastlin so bili pridobljeni iz brez- plaˇ cnega paketa vegetacije Maxtree [9]. Njihove mate- riale smo prilagodili tako, da se bolje ujemajo z ostalimi deli scene. Kot dodatne elemente smo izdelali ˇ se uliˇ cne svetilke in poˇ stne nabiralnike. Zadnji korak je bil izde- lava gradbiˇ sˇ ca in pripadajoˇ cih modelov, kot so prometni znak in stoˇ zci (slika 5). 6 Animiranje Postopek animacije je bil sestavljen iz dveh faz – iz nameˇ sˇ canja okostij na 3D modele in iz animiranja sa- mega. 152 Slika 4: Pogled na sceno od daleˇ c Slika 5: Scena z gradbiˇ sˇ cem 6.1 Nameˇ sˇ canje okostij V programu Blender in podobnih 3D orodjih je mogoˇ ce modele animirati kot celoto po poloˇ zaju, rotaciji in veli- kosti ter nekaterih drugih lastnostih. Animiranje na tak naˇ cin je preprosto, a se ne obnese, ko ˇ zelimo model pri- lagajati na ravni posameznih ogliˇ sˇ c in povrˇ sin, ali pa ko ˇ zelimo, da se deli modela premikajo odvisno od drugih delov. Zaradi tega smo uporabili okostja. Postopek name- ˇ sˇ canja okostij (ang. rigging) je obsegal analizo 3D mo- dela in njegovih delov, modeliranje sistema kosti in ve- zavo okostja na 3D model. Za potrebe projekta smo dolo- ˇ cili, da sta okostje potrebovala modela Poˇ starbota in Po- metaˇ ca zaradi zahtevnejˇ sih premiˇ cnih delov, ki bi jih brez okostja teˇ zko animirali, ter modela pisma in deske zaradi interakcije z modelom Poˇ starbota. Modelom smo doloˇ cili premiˇ cne dele, njihove naˇ cine premikanja (translacija, rotacija, ...) in njihova teˇ ziˇ sˇ ca premikov (ang. origin). Potem smo sestavili okostja s pomoˇ cjo Blenderjeve strukture Armature [7, Armatures]. Okostja smo opremili z ustreznimi funkcijami obnaˇ sanja (ang. constraints), ki so kostem doloˇ cale razmerja in po- sebne omejitve gibanja. Nazadnje smo okostja povezali z modeli preko nanaˇ sanja vpliva (ang. weight painting) kosti na ogliˇ sˇ ca. Model poˇ starbota je bil sestavljen iz 26 premiˇ cnih delov, zato je bila potrebna predhodna analiza modela. Roke so bile sestavljene iz ne-trivialnega mehanizma ome- jenih rotirajoˇ cih sklepov in premiˇ cnih batov. Okostje je vsebovalo dva sistema – krmilnega, s katerim upravljamo med animiranjem, in pomoˇ znega, ki je skrbel za nad- zor gibanja pod pokrovom. Pomoˇ zni sistem se je delil v gruˇ ce, ki jih je nadzirala posamezna kost iz krmilnega sistema (slika 6). 6.2 Animiranje kadrov S pripravljenimi okostji smo se lahko lotili animiranja. Pri animiranju smo se zanaˇ sali na vizualizacije iz sne- Slika 6: Poˇ starski robot s kostmi malne knjige in opise iz pripravljenega pregleda kadrov. Zaradi ˇ casovnih omejitev in preprostosti nekaterih kadrov nismo delali igranih referenˇ cnih posnetkov, ˇ ceprav je to uveljavljena praksa pri animiranju. Za potrebe animiranja smo zaradi zahtevnosti scene uporabili preproste nadomestne kulise, kjer so bili priso- tni le elementi, ki so bili za animiranje nujno potrebni. To so bili predmeti, ki smo jih animirali, in deli prizora, ki smo jih potrebovali za referenco (npr. tla in objekti, s katerimi so imeli animirani predmeti interakcijo). Prvi korak animiranja je bila postavitev zaˇ cetnega sta- nja prizora - zaˇ cetnih poloˇ zajev predmetov, kamere itn. Sledila je postavitev modelov v kljuˇ cne poze (ang. bloc- king), ki naj bi jih vrˇ sili tekom prizora. V orodju Blen- der je to mogoˇ ce preko kljuˇ cnih sliˇ cic (ang. keyframes), ki hranijo informacije o trenutnem stanju animiranih ko- sti ali lastnosti entitet. Dobili smo okviren naˇ crt gibanja, ki smo ga izboljˇ sali v povezovalni (ang. splining) fazi. Da smo dosegli ˇ zeljeno gibanje, smo prilagodili ˇ casovno umestitev kljuˇ cnih sliˇ cic in med njimi namesto privzete interpolacije napeljali krivulje, ki jih je mogoˇ ce nadzoro- vati s kontrolnimi toˇ ckami. S tem je gibanje postalo bolj tekoˇ ce in brez preskokov. Vˇ casih je bilo potrebno ˇ se dodatno usklajevanje pre- mikov kamere in objektov v kadru ter reˇ ziranje interakcij med posameznimi predmeti (npr. Poˇ starbot in pismo), kjer smo uporabili funkcijo obnaˇ sanja Child of med kos- tema dveh okostij. Pri animiranju je bilo treba upoˇ stevati tudi predho- dne in naslednje kadre zaradi pretoka gibanja in usmer- janja gledalˇ ceve pozornosti, vse smernice dobre anima- cije (npr. 12 principov animacije [10]) in ˇ casovno ome- jitev samega procesa. Marsikje je bilo potrebno vpeljati bliˇ znjice in tvegati nepravilnosti v konˇ cni animaciji. Tako veˇ cina kadrov ni nikoli dosegla ˇ se tretje, izpopolnjevalne (ang. polishing) faze animiranja, ki je za profesionalen izdelek zelo pomembna. Nekaj teˇ zav je predstavljal tudi privzeti naˇ cin rota- cij kosti, ki se je med fazo animiranja ˇ se posebej izrazil. Blender podpira veˇ c naˇ cinov rotacije, privzeto uporablja rotacijo s kvaternioni, moˇ zne pa so ˇ se razliˇ cne kombina- cije Eulerjeve rotacije. Veˇ cina kosti je bila nastavljenih na kvaternionsko rotacijo, ki ima ˇ stiri animirane parame- 153 tre. Zaradi narave kvaternionov je krivulje teh parame- trov zelo teˇ zko prilagajati, ker zanje ni intuitivne pod- lage. Poleg tega je prihajalo do teˇ zav pri rotacijah, veˇ cjih od 360°, ker je program interpoliral gibanje po najkrajˇ si poti. Reˇ sitev je bila hipna menjava naˇ cina rotacije za po- samezno kost, ˇ ce smo teˇ zavo opazili dovolj zgodaj, oz. “na gosto” dodajanje kljuˇ cnih sliˇ cic s popravljeno rota- cijo (na nekaterih mestih je bila med zaˇ cetkom rotacije in njenim koncem vsaka sliˇ cica kljuˇ cna), kjer drugaˇ ce ni ˇ slo. 7 Optimizacija projektnih datotek 7.1 Optimizacija porabljenega video pomnilnika Ena izmed glavnih omejitev osebnih raˇ cunalnikov pri pro- fesionalnih animiranih filmih je koliˇ cina video pomnil- nika oziroma VRAM-a na potroˇ sniˇ skih grafiˇ cnih karticah. ˇ Zal je tudi naˇ s projekt priˇ sel do stopnje, kjer nam je to predstavljalo problem. Blender se je zruˇ sil zaradi preve- like zasedenosti video pomnilnika. Naˇ sa scena ima s travo poraˇ sˇ cene zaplate, pri ˇ cemer je trava sestavljena iz posameznih travnih bilk in poslediˇ cno vsebuje zelo veliko koliˇ cino poligonov. To smo optimizi- rali z avtomatskim razporejanjem trave, tako da je gostota veˇ cja blizu kontrolne toˇ cke, z daljavo pa se manjˇ sa. Kon- trolno toˇ cko smo postavili blizu kamere in tako je gostota trave tam velika, v daljavi, kjer se detajli ne opazijo, pa je redkejˇ sa. ˇ Se en razlog za poˇ casno delovanje so bile velike teks- ture na drevesih in travi, ki smo jih dobili iz drugih virov. Drevesa smo uporabljali predvsem kot elemente v ozadju, zato visoka loˇ cljivost tekstur ni pomembna. Teksture smo zmanjˇ sali z orodji iz zbirke Microsoft PowerToys in s tem porabo VRAM-a zmanjˇ sali dovolj, da ni bilo veˇ c proble- mov z zmrzovanjem in zapiranjem Blenderja. 7.2 Optimizacija velikosti datotek Ker smo na projektu istoˇ casno delali trije na razliˇ cnih lo- kacijah, smo uporabili sistem Synology Drive za skupno rabo datotek na streˇ zniku. Naˇ se projektne datoteke so po- stale velike (scena veˇ c kot 1GB) in poslediˇ cno je vsako shranjevanje na streˇ znik vzelo veliko ˇ casa. Reˇ sevanja tega problema smo se lotili s povezavami med verigo da- totek [7, Link & Append]. Vsak 3D model (npr. stavbe, drevesa, trava, prome- tni znaki itd.) smo shranili v svojo datoteko in ga potem s pomoˇ cjo povezave vstavili v sceno. Ker ustvarimo le referenco na osnovno datoteko, scena ostane manjˇ sa, do- daten plus pa je, da se ob spremembi osnovnega 3D mo- dela ta posodobi v vseh datotekah, kjer je vstavljen kot povezava. Da pri animaciji nismo imeli performanˇ cnih proble- mov, smo za vsak kader naredili novo datoteko, v kateri sta bila zgolj karakterja in osnovni deli scene, ki so po- trebni za animacijo. Ko je bil kader pripravljen za izri- sovanje (ang. rendering) smo ustvarili ˇ se eno novo dato- teko, v katero smo povezali animirana karakterja, glavno sceno in po potrebi dodatne predmete. Na ta naˇ cin smo se izognili dolgim ˇ casom nakladanja na streˇ znik, razen ko smo direktno spreminjali osnovne datoteke. 8 Rezultati Slika 7: Izseki konˇ cne animacije Rezultat naˇ sega dela je bila animacija dolga 2 minuti in 40 sekund dostopna na povezavi [1]. Na njej je veˇ c vidnih napak, ki bi se lahko popravile s ponovno revizijo vseh posameznih kadrov. Dokler animacija ni izrisana v veˇ cji loˇ cljivosti in z veˇ c vzorci, je teˇ zko opaziti vse pro- bleme, ˇ zal pa si zaradi ˇ casovnih in raˇ cunalniˇ skih omejitev nismo mogli privoˇ sˇ citi veˇ c sprotnih testnih stopenj. ˇ Ce odˇ stejemo te napake, animacijo izriˇ semo na viˇ sji kvaliteti in dodamo zvoˇ cne efekte, je po naˇ sem mnenju primerljiva z otroˇ skimi risankami. Literatura [1] Poˇ starbot in pometaˇ c, https://youtu.be/ o20N9ik7-tY [2] Computer animation. Dostopano: 18. junij 2022. Do- stopno na: https://en.wikipedia.org/wiki/ Computer_animation [3] Spring Production Pipeline. Dostopano: 18. junij 2022. Dostopno na: https://studio.blender. org/training/pipeline-and-tools/ spring-production-pipeline/ [4] Film Production Pipeline. Dostopano: 18. junij 2022. Do- stopno na:https://www.youtube.com/watch?v= kKZlblh1qiQ [5] DreamWorks Animation Pipeline. Dostopano: 18. junij 2022. Dostopno na: https://youtu.be/ ru0tQRJ4qKs [6] Blender History. Dostopano: 18. junij 2022. Dostopno na: https://www.blender.org/about/history/ [7] Blender docs. Dostopano: 18. junij 2022. Dostopno na: https://docs.blender.org/manual/en/ latest/index.html [8] CGCookie spletno mesto. Dostopano: 18. junij 2022. Do- stopno na: https://cgcookie.com/ [9] Maxtree. Dostopano: 18. junij 2022. Dostopno na: https://maxtree.org/ [10] Understand Disney’s 12 principles of anima- tion. Dostopano 22. junij 2022. Dostopno na https://www.creativebloq.com/advice/ understand-the-12-principles-of-animation