Kompiuterinė animacija

Pavyzdys

Kompiuterio ekranas užpildomas viena spalva, pavyzdžiui, juoda. Tada dešiniajame ekrano kampe nupiešiama ožka. Vėliau ekranas vėl užpildomas viena spalva, o ožka perpiešiama arba nukopijuojama ta pačia pozicija šiek tiek kairiau. Šis procesas kartojamas kaskart perkeliant ožką šiek tiek į kairę. Jeigu procesas kartojamas pakankamai greitai, atrodys, jog ožka į kairę juda tolygiai. Ši paprasta procedūra naudojama visiems judantiems paveikslėliams filmuose ir televizijoje.
Judanti ožka yra objekto vietos keitimo pavyzdys. Sudėtingesnės objektų transformacijos, tokios kaip dydis, forma, apšvietimas, efektai – dažnai pareikalauja sudėtingesnių apskaičiavimų ir vaizdo kūrimo kompiuteriniu, vietoje paprasto paveikslėlio perpiešimo ar kopijavimo.

Paaiškinimas

Tam, kad žmogaus akys ir smegenys suvoktų matomą objektą kaip judantį sklandžiai, paveikslėliai turi keistis 12 kadrų per sekundę greičiu ar dar greičiau (kadras – tai vienas baigtinis vaizdas). Paveikslėlių keitimasis didesniu greičiu nei 75–150 kadrų per sekundę poveikio animacijos realistiškumui ar sklandumui neturi. Taip yra dėl akių ir smegenų matomų vaizdų apdorojimo būdo.
Objektams judant mažiau nei 12 kadrų per sekundę greičiu dauguma žmonių gali pajusti vaizdo nesklandumą, nes naujų vaizdų pasikeitimas kadre yra aiškiai matomas, judesiai tampa kampuoti ir mažina realistiško judėjimo iliuziją. Tradicinė, ranka piešta, animacija dažniausiai naudoja 15 kadrų per sekundę greitį, siekiant tausoti reikiamų piešinių kiekį, tačiau paprastai tai yra priimtina dėl stilizuoto animacijos pobūdžio. Kadangi kompiuterinės animacijos vaizdai yra realistiškesni, ji reikalauja didesnio kadrų per sekundę greičio. 
Filmai JAV kino teatruose rodomi naudojant 24 kadrų per sekundę greitį ir to užtenka sukurti tolydaus judėjimo iliuziją. Didesnei vaizdo rezoliucijai naudojami adapteriai.

Istorija

Didžioji dalis pirminės animacijos, kuriai sukurti buvo naudojami skaitmeniniai kompiuteriai, buvo sukurta Edward E. Zajac, Frank W. Sinden, Kenneth C. Knowlton ir A. Michael Noll „Bell Telephone Labaratories“ pirmojoje 7-ojo deš. pusėje. Taip pat ankstyvoji skaitmeninė animacija buvo kurta „Lawrence Livermore Laboratory“.
Kitas ankstyvas žingsnis kompiuterinės animacijos istorijoje buvo žengtas 1973 m. mokslinės fantastikos filme „Westworld“. Filme vaizduojama visuomenė, kurioje robotai dirbo ir gyveno kartu su žmonėmis. Tačiau pirmą kartą 3D Wireframe vaizdai buvo panaudoti jo tęsinyje „Futureworld“ (1976), kuriame matomi kompiuterio pagalba, Jutos universiteto absolventų Edwin Catmull ir Fred Parke, sukurti ranka ir veidas.
Apie naujoves kompiuterinėje animacijoje kasmet yra pranešama kasmetinėje kompiuterinės grafikos ir interaktyvių technologijų konferencijoje – SIGGRAPH, kurioje kiekvienais metais dalyvauja dešimtys tūkstančių kompiuterinių technologijų profesionalų. Kompiuterinių žaidimų ir 3D vaizdo plokščių kūrėjai siekia asmeniniuose kompiuteriuose realiu laiku pasiekti tokią pačią vaizdo kokybę kaip ir CGI filmų bei animacijos. Dėl sparčios pažangos realaus laiko perdavimo kokybei, dailininkai pradėjo naudoti žaidimų variklius perteikti neinteraktyviems filmams. Ši meno forma yra vadinama machinima.
Pirmasis pilnametražis, kompiuteriu animuotas filmas buvo „Žaislų istorija“, sukurtas 1995 m. „Pixar“ animacijos studijoje. Jame pasakojama istorija apie žaislų bei jų savininkų nuotykius. Šis novatoriškas filmas buvo vienas pirmųjų iš daugumos kompiuterinės animacijos filmų.
Kompiuterinė animacija padėjo sukurti tokius didelio populiarumo sulaukusius filmus kaip „Žaislų istorija 3“ (2010) („Disney“,“Pixar“), „Įsikūnijimas“ (2009), „Šrekas 2“ (2004) („DreamWorks Animation“) ir „Ratai 2“ (2011) („Disney“,“Pixar“).

Kompiuterinė animacija Lietuvoje

2002 m. vasario 8 d. Lietuvos teatro, muzikos ir kino muziejuje vyko antikos epo „Odisėja“ vaizdajuostės pristatymas ir atidaryta paroda, vaizduojanti pirmojo lietuviško pilnametražio animacinio filmo kūrimą. Filmas sukurtas kartu su anglų kino menininkais. Jo režisierius – Valentas Aškinis, jis taip pat ir scenarijaus autorius drauge su Jack Ritman. Filmo operatorius – Antanas Abromaitis, dailininkas statytojas – Rolandas Petrokas. Antikos epas filme sužėri įvairiomis spalvomis, suteikdamas ne tik estetinį pasigėrėjimą, bet ir antikos istorijos bei geografijos žinių: Trojos karas, Odisėjo klajonės, Viduržemio jūros salos. Todėl filmo tikslinė auditorija yra ne tik moksleiviai, bet ir suaugusieji.
Vakaro metu buvo parodytas ir Andriaus Abromaičio (sūnaus) Londone sukurtas dokumentinis filmas apie tai, kaip buvo kuriamas animacinis filmas „Odisėja“. Žiūrovams suteikta galimybė pamatyti, kaip studijos dirbtuvėse gimsta dailininkų Jolantos Šiugždaitės, Jurijaus Grigaravičiaus, Rolando Petroko piešiniai. Tai paskutinis animacinis filmas Lietuvoje, sukurtas tokia daug triūso ir lėšų reikalaujančia technika. Beje, kompiuteris buvo naudojamas tik retkarčiais. „Odisėja“ filmuota ant 35 mm juostos, kuri dėl savo brangumo taip pat jau beveik nebenaudojama. Juosta buvo ryškinama ir montuojama Londone, o muziką kūręs kompozitorius Martino Tirimo atvyko jos įrašinėti į Lietuvą su Operos ir baleto teatro simfoniniu orkestru, kuriam dirigavo Vytautas Viržonis. Yra sukurti trys „Odisėjos“ variantai: Europoje rodomas aštuonių, JAV – keturių serijų. Filmo premjera vyko keltų kalba. Lietuvoje filmas buvo rodomas per LNK televiziją, buvo parodytos aštuonios serijos (po 15-ka minučių). Vakaro metu norintieji galėjo įsigyti pusantros valandos trukmės pilnametražio animacinio filmo vaizdajuostę, sukurtą Vilniuje „Vilanimos“ studijoje 1999 metais.

Virtualių animacinių personažų kūrimo metodai

Dažniausiai 3D kompiuterinės animacijos sistemose animatorius sukuria supaprastintos anatomijos personažą, kuris iš pradžių primena tiesiog skeletą ar figūrą, sudėliotą iš pagaliukų. Kiekviena personažo skeleto segmento pozicija vadinama animacijos kintamuoju arba Avaru (angl. avar). Žmonių ir gyvūnų personažuose daugelis skeletinio modelio dalių atitinka tikrus kaulus, tačiau skeletinė animacija taip pat naudojama veido mimikoms animuoti. Pavyzdžiui, filmo „Žaislų istorija“ personažas Vudis turi 700 animacinių kintamųjų (avarų), iš kurių 100 priklauso vien veidui. Kompiuteris ne visuomet perteikia skeletinį modelį tiesiogiai (jis yra nematomas). Skeletinis modelis naudojamas perteikti konkrečią perzonažo pozą, kuri yra perkeliama į paveikslėlį. Taigi keičiant animacinių kintamųjų reikšmes yra sukuriamas judesys, kuomet personažas juda tolygiai nuo kadro iki kadro.
Yra keletas skirtingų būdų kaip sukurti realų judesį naudojant animacinių kintamųjų reikšmes. Dažniausiai animatoriai valdo animacinių kintamųjų reikšmes tiesiogiai. Vietoj to, kad nustatytų kintamuosius kiekvienam kadrui, jie tiesiog nustato esminius taškus ir kompiuteriu interpoliuoja tarp jų. Šis procesas vadinamas keyframing. Jis kilęs iš tradicinės animacijos, kuomet viskas buvo piešiama ranka, nes čia animatorius taip pat viską kontroliuoja savo rankomis.
Kitas, naujesnis metodas, vadinamas veiksmo užfiksavimu (angl. motion capture), naudoja gyvą veiksmą. Tikras aktorius vaidina sceną, kuri vėliau yra animuojama. Jo judesiai yra nufilmuojami, o vėliau viskas perkeliama į animuotą personažą.
Kiekvienas iš šių metodų turi savo privalumų ir nuo 2007 metų tiek video žaidimų, tiek animacinių filmų kūrime abu jie yra plačiai naudojami. Keyframe animacija gali išgauti tokius judesius, kurių realiai butų neįmanoma atlikti, tuo tarpu naudojant veiksmo užfiksavimą galima atkurti tam tikro aktoriaus, gyvo žmogaus subtilybes. Pavyzdžiui, 2006-ųjų filme „Karibų piratai: numirėlio skrynia“, aktorius Bill Nighy sukūrė Davy Jones personažo charakteristiką. Nors pats B. Nighy filme nepasirodė, jo manieros, laikysena bei veido mimikos buvo įrašytos ir naudojamos su kitu personažu. Taigi vaizdo užfiksavimas yra tinkamas tuomet, kai yra reikalingas įtikinamas, realus elgesys, o personažo tipas turi viršyti tai, kas gali būti sukuriama naudojant tradicinius kostiumus (angl. costuming).

Personažų ir objektų kūrimas kompiuteriu

3D kompiuterinė animacija sujungia 3D objektų modelius ir užprogramuoja keyframed judesį. Modeliai konstruojami iš geometrinių figūrų 3D koordinačių sistemoje. Objektai yra lipdomi tarsi iš plastelino, pradedant nuo esminių formų iki specialių detalių. Kaulų animacijos sistema yra sukurta taip kad galėtų deformuoti CGI modelį (pzv. pagaminti vaikščiojančių žmonių modelį). Proceso vadinamo takelažas (angl. rigging) metu, virtualiai marionetei suteikiami įvairūs valdikliai skirti kontroliuoti judesį. Animacinis vaizdas gali būti sukurtas naudojant veiksmo užfiksavimą (angl. motion capture), keyframing arba naudojant abu šiuos modelius.
Tam, kad į animaciją būtų galima perkelti 3D modelius, gali prireikti tūkstančių valdiklių, kaip, pavyzdžiui, Vudžio iš filmo „Žaislų istorija“ personažui buvo naudojami 700 specializuotų animacinių valdiklių. O štai, „Rhythm and Hues Studios“ dirbo dvejus metus, kad sukurtų personažą Aslan filme „Narnijos kronikos: liūtas, burtininkė ir drabužių spinta“. Šis personažas turėjo 1851 valdiklį iš kurių 742 priklausė vien veidui. 2004-ųjų filme „Diena po rytojaus“ dizaineriai naudodami vaizdo nuorodas ir meteorologinius faktus turėjo sukurti ekstremalių oro sąlygų jėgas. 2005-aisiais filmuojant filmą „King Kongas“ aktorius Andy Serkis padėjo dizaineriams tiksliai nustatyti pirminę gorilos buvimo vietą ir naudojo savo paties išraiškas modelio „žmogus" charakteristikos kūrime. Vėliau A. Serkis savo balsu ir vaidyba įkūnijo Golumo personažą trilogijoje „Žiedų valdovas“.

Kompiuterinės animacijos kūrimo įranga

Kompiuterinė animacija gali būti kuriama kompiuterine-animacine įranga. Kartais net ir pati įspūdingiausia animacija gali būti sukurta su gana paprastomis programos, tačiau svarbu atkreipti dėmesį į tai, kad galutinio produkto sugeneravimas dirbant paprastu namų kompiuteriu gali užtrukti labai ilgai. Būtent dėl to, tie video žaidimų animatoriai, kurie nori žaidimus sugeneruoti namuose, yra linkę naudoti mažos rezoliucijos, realias aplikacijas. Tais atvejais, fotorealistinė animacija būna visiškai nepraktiška.
Profesionalūs filmų, televizijos ir žaidimų animatoriai kuria fotorealistinę bei labai detalią animaciją. Žinoma tokio lygio animaciją sukurti namų sąlygomis užtruktų dešimt tūkstančių metų. Kad to išvengti, kuriant dažniausiai naudojami labai galinga kompiuteriai (darbo stotys). Šie kompiuteriai turi nuo 2 iki 4 procesorių, ir nors atrodo, kad jie yra nedaug galingesni už namų kompiuterius, jie yra būtent skirti generavimui. Dažniausiai vienu metu ta patį filmą generuoja didelis skaičius darbo kompiuterių, kurie sukuria tam tikrą generavimo ūkį (angl. render farm). Dirbant šiais kompiuteriais, dažniausiai kompiuteriu animuotas filmas yra sugeneruojamas per vienerius–penkerius metus. Šie kompiuteriai kainuoja nuo $2 000 iki $16 000, nes kaina priklauso nuo generavimo greičio bei kitų techninių parametrų. Taip pat profesionalai naudoja skaitmenines kameras, judesio užfiksavimo, mėlynuosius ekranus, filmų redagavimo įrangą, rekvizitą bei kitus animacijos kūrimo įrankius.

Žmogaus veido kūrimas

Realistiškas žmogaus veido bruožų sukūrimas – vienas iš sudėtingiausių procesų. Kompiuterinė veidų animacija – sudėtingas ir kompleksiškas procesas, kuris įtraukia daugelį animacijos būdų. Remiantis istorija, pirmoji „SIGGRAPH“ pamoka apie „Modernią veidų animaciją“ 1989 ir 1990 metais buvo reikšmingas įvykis šioje srityje, nes apjungė bei įtvirtino įvairius tyrimo elementus, taip sukeliant didelį susidomėjimą tarp tyrėjų.
„Veido emocijų kodavimo sistema“ (sudaryta iš 46 skirtingų veido emocijų, tokių kaip „prikasta lūpa“ ar „prisimerkimas“), kuri vėliau tapo populiaria pavyzdine sistema, buvo sukurta 1976 metais. Tačiau dar 2001 metais, MPEG-4 įtraukė dar 68 naujas veido išraiškas lūpoms, žandikauliams ir kitoms veido dalims, kas atnešė ryškų progresą mikro išraiškų padaugėjime.
Tam tikrais atvejais, siekiant sukurti tokius veidus, kaip avataro, naudojami PAD emotional state model. Jis animacijoje laikomas aukšto lygio modeliu, o MPEG-4 facial animation parameters (FAP) – žemo lygio modeliu. Vidutinio lygio modeliu laikoma Partial Expression Parameters (PEP), kai yra naudojama dviejų lygių struktūra: PAD–PEP kartografavimas ir PEP–FAP transliacijos būdai.

Kompiuterinės animacijos realizmas ateityje

Realizmo sąvoka kompiuterinėje animacijoje gali apibūdinti kiekvieno kadro padarymą fotorealistiniu (scena pateikiama taip, kad būtų panaši į fotografiją) arba animacijos personažus padarant realistinius, „kaip gyvus“. Šiame straipsnyje susitelkiama ties antruoju apibrėžimu. Kompiuterinė animacija gali būti realistinė su ar be fotorealistinio pateikimo.
Vienas iš didžiausių iššūkių kompiuterinėje animacijoje buvo sukurti žmonių personažus, kurie atrodytų ir judėtų lygiai taip, kaip realybėje. Vietoj to dauguma animacinių filmų pateikia personažus, kurie yra antropomorfiniai (antropomorfizmas – žmogaus savybių priskyrimas gamtos reiškiniams, gyvūnams, augalams ir pan.) gyvūnai („Žuviukas Nemo“, „Ledynmetis“, „Madagaskaras“, „Anapus tvoros“, „Rio“, „Kung Fu Panda“), mašinos („Ratai“, „WALL-E. Šiukšlių princo istorija“, „Robotai“), vabzdžiai („Skruzdėliukas Z“, „Iš vabalų gyvenimo“, „Lukas skruzdėliukas“, „Bitės filmas“), fantastikos būtybės ir personažai („Monstrų biuras“, „Šrekas“, „Vėžliukai nindzės“, „Karališka drąsa“, „Didingiausias filmas“) arba žmonės su nerealiomis, animacinius personažus primenančiomis proporcijomis („Nerealieji“, „Bjaurusis Aš“, „Aukštyn“, „Megamaindas“, „Džimis Neutronas: genialus berniukas“).
Viena iš priežasčių, kodėl patrauklius ir realistiškus žmonių personažus padaryti taip sunku, yra „šiurpusis slėnis“ (angl. uncanny valley). Tai situacija, kai tam tikriems dirbtiniams objektams kopijuojant žmogų savo išvaizda ir judesiais, pasiekiama tokia riba, kai realistiškumas tampa atstumiantis. Be to, kai kurias medžiagas, dažnai pasirodančias scenoje – plaukus, drabužius, lapus, skysčius – yra žymiai sunkiau tiksliai atkurti ir animuoti, nei kitas. Dėl šios priežasties buvo sukurtos specialios programinės įrangos ir technologijos, kurios padeda geriau simuliuoti šiais konkrečiais elementais.
Teoriškai kompiuterinė animacija gali pasiekti tokį lygį, kur skirtumas tarp animacijos ir kamera užfiksuoto realaus vaizdo taptų nepastebimas. Kai kompiuterinė animacija pasieks tokį realumo lygį, didelių pasekmių gali sulaukti visa filmų industrija.
Kompiuterinės animacijos tikslas nėra visada stengtis kuo labiau priartėti prie realistiškojo vaizdo. Ji taip pat gali būti pritaikyta „pamėgdžioti“ ar pakeisti kitas animacijos rūšis, tokias kaip tradicinė sustabdyto kadro (angl. stop-motion) animacija („Srovės nublokšti“). Kai kurios jau seniai gyvuojančios pagrindinės animacijos taisyklės, tokios kaip „suspaudimas ir ištempimas“ (angl. squash and stretch), nereikalauja griežtai realistiškų judesių ir toks principas yra plačiai taikomas ir kompiuterinėje animacijoje.

Filmai

CGI trumpametražiai filmai buvo kuriami kaip nepriklausoma animacija nuo 1976-ųjų, nors kompiuterinės animacijos populiarumas (ypač specialiųjų efektų sferoje) šovė į viršų moderniosios JAV animacijos eros metu. Pirmasis TV serialas, visiškai sugeneruotas kompiuteriu buvo „ReBoot“ 1994-aisias, o pirmasis toks filmas – „Žaislų istorija“ 1995-aisiais.

Mėgėjiška animacija

Didelis internetinių svetainių, suteikiančių galimybę jose talpinti savo ir vertinti kitų sukurtus mėgėjiškus filmukus, sudarė sąlygas susikurti ir išpopuliarėti animatorių-mėgėjų bendruomenei.
Programos, kuriomis galima kurti kompiuterinę animaciją, šiais laikais prieinamos kiekvienam. Yra sukurta nemokų ir atviro kodo animacijos kūrimo programų, tokių kaip „Fusio“, „Jashaka“, „Shake“. Pats populiariausias mėgėjų-animatorių formatas – GIF, kuris dėl itin nedidelio svorio lengvai įsikelia į puslapį ir jo neapkrauna.

Detalizuoti pavyzdžiai ir pseudokodai

2D kompiuterinėje animacijoje judantys vaizdai dažnai yra vadinami sprukliais. Spruklys yra vaizdas, turintys su juo susietas koordinates. Spruklio lokacija yra keičiama po truputį, tarp kiekvieno rodomo kadro siekiant priversti spruklį judėti. Šis pateiktas pseudokodas priverčia spruklį judėti iš kairės į dešinę:
var int x := 0, y := screenHeight / 2;
while x < screenWidth
drawBackground()
drawSpriteAtXY (x, y) // draw on top of the background
x := x + 5 // move to the right
Kompiuterinėje animacijoje yra naudojamos skirtingos technikos. Dažniausiai, sudėtinga matematika naudojama norint valdyti trijų dimensijų daugiakampių kompleksus, uždėti „tekstūras“, apšvietimą ir kitus efektus ant daugiakampių ir galiausiai viso vaizdo perdavimui. Sudėtinga grafinė sąsaja gali būti naudojama animacijai sukurti ir jos choreografijos tvarkymui. Kita technika, vadinama konstruktyvia pilnavidure geometrija, charakterizuoja objektus naudojant būlio operacijas įprastoms formoms. Šios technikos privalumas yra tas, jog animacija gali būti sukuriama itin tiksli nepaisant rezoliucijos dydžio.
Pereikime prie tokio paprato vaizdo, kaip kambarys medinėmis sienomis ir pilka piramide kambario centre, perteikimo. Piramidės viršuje yra žibintas, kuris ją apšviečia. Kiekviena siena, grindys ir lubos yra paprasti daugiakampiai, šiuo atveju, stačiakampiai. Kiekvienas stačiakampių kampas yra apibrėžiamas trimis reikšmėmis – X,Y ir Z. X nurodo kiek į kairę ar į dešinę taškas yra nutolęs. Y – kiek į viršų ar į apačią taškas yra nutolęs, o Z nurodo taško nuotolį į ir iš ekrano. Arčiausiai mūsų esanti siena būtų apibrėžiama keturiais taškais: (tokia tvarka: x, y, z). Toliau pavaizduota, kaip siena yra apibrėžiama:
(0, 10, 0)                        (10, 10, 0)

(0,0,0)                           (10, 0, 0)
Tolimiausia siena būtų:
(0, 10, 20)                        (10, 10, 20)

(0, 0, 20)                         (10, 0, 20)
Piramidė sudaryta iš penkių dalių: stačiakampio pagrindo ir keturių trikampių. Norėdamas nubrėžti šį vaizdą kompiuteris remiasi matematiniais skaičiavimais, kurie parodo kaip šis vaizdas turi būti projektuojamas, apibrėžtas trijų dimensijų duomenų ant dvimačio kompiuterio ekrano.
Visų pirma, turi būti nustatomas atskaitos taškas, nuo kurio bus pradedama piešti scena. Šiuo atveju atskaitos taškas yra kambario viduje, šiek tiek virš grindų, tiesiai priešais piramidę.
Pirmiausia kompiuteris apskaičiuos, kurie daugiakampiai yra matomi. Artimiausia siena nebus rodoma, nes ji yra už atskaitos taško. Tolimiausia piramidės pusė taip pat nebus piešiama, nes ją užstoja piramidės priekis.
Toliau kiekvienas taškas projektuojamas į perspektyvinį vaizdą. Dėl perspektyvos labiausiai nuo atskaitos taško nutolusios sienos atrodys trumpesnės negu artimesnės. Norint, kad sienos turėtų tekstūrą, pavyzdžiui, atrodytų lyg medinės, dažniausiai yra naudojama tam tikra technika, vadinama tekstūriniu žymėjimu (angl. texture mapping). Mažas medžio tekstūros paveiksliukas yra tiesiog kopijuojamas, kad užpildytų sienos paviršių. Šiuo atveju piramidės paviršius yra neperšviečiamos pilkos spalvos, todėl sugeneravus vaizdą ji ir bus pilka. Bet nepamirškime ir apšvietimo. Ten kur krenta šviesa spalvas reikia pašviesinti, o ten kur objektai užstoja šviesą – patamsinti.
Taigi, dabar jau galime perteikti pabaigtą sceną kompiuterio ekrane. Jeigu skaičiai nustatantys piramidės poziciją bus kas kart keičiami, tuomet atrodys kad piramidė juda.