T-111.450 Tietokoneanimaatio ja mallintaminen Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio 02/02 Animaatio / 1 2D Avainkuvatekniikka Sisältö Kerronnallisia asioita, Pixar-pätkiä 3D Avainkuvatekniikka Liikkeen määrittelytapoja Splinit Animaatio / 2 1
2D avainkuvat 2D <> 3D 2D kuvat ovat yleensä projisioita 3D-maailmasta Projisiossa katoaa informaatiota Kuinka toteutetaan rotaatio? Kuinka toteutetaan piiloviivojen poisto? Välikuvien laskenta eri asia kuin kuvien morphaus Animaatio / 3 2D avainkuvat (jatkuu) Ratkaisuvaihtoehtoja: 1. 3D hahmojen tunnistus kuvasta vaikeaa 2. Kuvien korjailu jälkeenpäin editoimalla työlästä 3. Useiden kuvatasojen käyttö ei ratkaise rotaatiota 4. Tikku-ukkojen käyttö määrittelyssä rajoittunutta 5. Tikku-ukot + reunaviivat vähemmän rajoittunutta 6. Rajoitetaan animaatiota hyvin rajoittavaa Tassun esimerkkikuva Animaatio / 4 2
Kerronnallisia asioita Pixar: Wally B. & Luxo Jr. Ohjaaja John Lasseterin SIGGRAPH artikkeli Pixar: Wally B. & Luxo Jr. Animaatio / 5 3D-avainkuvatekniikka Animaatio / 6 3
Parametrinen määrittely Lähtökohta jokainen animoitava ominaisuus on numeerinen muuttuja jokaisessa kuvassa samat toisiaan vastaavat parametrit käyttäjälle parametrit esitetään mieluiten graafisina (pisteen sijainti, viivan suunta, väri, jne.) Mitä hyvänsä voidaan parametroida ja siten animoida olion paikka/nopeus, asento, koko ja muoto osien suhde kokonaisuuteen (esim. silmät päässä) esineiden värit ja tekstuurit (mm. heijastusominaisuudet) valolähteet (paikka, väri, suunta, rajaus, jne.) kameran paikka, asento, kuvakulma, syvyystarkkuus, jne. ääni (rakenne, kaiku, Doppler-efekti, jne.) proseduraalisen määrittelyn parametrit hierarkkinen oliokeskeinen ajattelutapa Animaatio / 7 Parametrinen määrittely (jatkuu) Avainkuva (keyframe) määrittelee yhdessä animoitavan parametrijoukon tietyssä animaation vaiheessa koko kuva voi muodostua eri tahtiin animoitavista kerroksista täsmällinen aika/kuvanumero voidaan määritellä erikseen Välivaiheet (inbetweens) muodostetaan interpoloimalla lineaarisesti, jatkuvilla polynomeilla => ongelmia splinifunktioilla Animaatio / 8 4
Liikkeen määrittely Käsin asettelemalla (perinteinen tapa) Interpoloimalla avainasentoja (keyframing) Erikoistuneilla ohjelmilla (procedural) Rakennekuvauksilla (representational) Satunnaisprosesseilla (stochastic) Käyttäytymissäännöillä (behavioral) Animaatio / 9 Liikkeen määrittely (jatkuu) Vaikka proseduraalista animaatiota varten on kehitetty skriptikieliä, on avainkuvatekniikka suosituin: välikuvien laskenta vähentää käsityötä helppo käyttöliittymä (ei ohjelmointia) voi ohjatusti poiketa säännönmukaisuudesta (juuri halutunlaisen liikkeen ohjelmointi on vaikeaa) sekä liikkeen että muodonmuutoksen määrittely samalla kertaa 3D animaatiossa 4 ulottuvuutta (paikka + aika) Animaatio / 10 5
Realistinen interpolointi Jatkuva liike liikkeen jatkuvuus nopeuden jatkuvuus (1. derivaatta) kiihtyvyyden jatkuvuus (2. derivaatta) Paikallinen vaikutus Kinetiikka liikkeen aloitukset ja lopetukset, kiihdytykset, jarrutukset Jatkuvuus muutoksissa - vaihdokset interpoloinnista toiseen Animaatio / 11 Splinikäyrät Interpolointi vs. approksimointi Jatkuvuus 0. aste jatkuva käyrä 1. aste tangetit samansuuntaisia 2. aste kaarevuus sama mallinnuksessa voidaan tarvita 2. asteen jatkuvuutta, mutta yleensä animaatiossa 1. aste riittää Paikallinen vs. globaali kontrolli Animaatio / 12 6
Splinikäyrät (jatkuu) Kompleksisuus yleensä 3. asteen polynomit tarjoavat riittävästi vapausasteita (4 kpl): kuljetaan alkupisteen kautta kuljetaan loppupisteen kautta tangentti alussa tangentti lopussa Animaatio / 13 Bezier käyrät & B-splinit Approksimoivia Globaaleja (voidaan tehdä paikalliseksi esim. kuutiollinen Bezier) B-splinit paranneltu Bezier käyristä Beta-splinit laajentavat B-splinejä korkeamman asteen jatkuvuusehdoilla Käytetään myös pintojen tekoon, NURBS Animaatio / 14 7
Hermite splinit Hermiten kantafunktiot (ranskalainen matemaatikko Charles Hermite) Interpoloiva Lokaali ohjaus 2. asteen jatkuvuus voidaan saavuttaa, jos luovutaan lokaaliudesta Tarvitaan tangenttivektorit kullekin pisteelle Animaatio / 15 Kardinaalisplinit Perustuu Hermiten kantafunktioihin Lokaali ohjaus Tangenttivektorit lasketaan viereisten ohjauspisteiden avulla Catmull - Rom splini tietty parametrivalinta kardinaalisplineillä Splini-appletti Animaatio / 16 8
Kochanek & Bartels TCB splini Kardinaalisplinien laajennus Tension, Continuity, Bias SIGGRAPH artikkeli Ulkopuoliset rajoitteet, esim. Luxo Jr. Animaatio / 17 Spliniyhteenveto Splinit Approksimoivat Interpoloivat Bezier B-splinit Beta-splinit Luonnolliset splinit Hermiten splinit Kardinaalisplinit Catmull-Rom TCB Animaatio / 18 9
Nopeuden hallinta Edelliset keskittyivät paikan jatkuvuuteen Aikaulottuvuus tekee interpoloinnin haasteellisemmaksi Toteutetaan interpolointiparametrin muutosta säätelemällä ( s(t) ) funktion oltava monotoninen funktion oltava jatkuva Kirjassa paljon tekstiä kaaren pituuden laskennasta Animaatio / 19 Nopeuden hallinta (2) Tyypillinen tavoite Ease-in/Ease-out (vain päätepisteille, ei väliohjauspisteille) Voidaan toteuttaa sin-funktiolla Laskennallisesti helpommalla päästään määrittelemällä kiihtyvyys nopeus saadaan integroimalla kiihtyvyys paikka saadaan integroimalla nopeus Voidaan luonnollisesti tehdä myös splineillä, vaikkapa TCB:llä K&B:n T/C-esimerkin tapaan. Animaatio / 20 10