TassuAnimaatio luento 21 Tik Animaatio ja mallintaminen 2. Avainkuvat ja interpolointi
TassuAnimaatio luento 22
TassuAnimaatio luento 23 Sisältö avainkuvatekniikka yleisesti lineaarinen interpolaatio esimerkkinä, ongelmana derivaatan epäjatkuvuus interpolaatio yleisesti: parametrisillä funktioilla painotettu summa ohjeuspisteistä esimerkkeinä Bezier ja B-splini: eivät kulje ohjauspisteiden kautta interpoloiva splini: käyriä välipisteiden kautta jatkuvuusehdot: C0 - C1 - C2 - C Hermiten käyrä: ekvivalenssi Bezierin kanssa kardinaalisplini: tangentiaalinen jatkuvuus –Catmull & Rom: automaattinen tangentin asettaminen –Kochanek & Bartels: tension, continuity, bias parametrinen vs. geometrinen jatkuvuus parametrointi käyränpituuden suhteen, käyrän pituuden laskenta liikkeen ajoituksen määrittely erillisellä funktiolla pisteiden laskeminen käyrällä –suora sijoitus summakaavaan; optimointi: monta käyrää peräkkäin vs. rinnakkain –Inkrementaalinen laskenta differenssimenetelmällä –de Casteljaun menetelmä käyrän uudellen parametrointi ja binäärinen ositus
TassuAnimaatio luento 24 Liikkeen määrittely Käsin asettelemalla (perinteinen tapa) Interpoloimalla avainasentoja (keyframing) Erikoistuneilla ohjelmilla (procedural) Rakennekuvauksilla (representational) Satunnaisprosesseilla (stochastic) Käyttäytymissäännöillä (behavioral)
TassuAnimaatio luento 25 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)
TassuAnimaatio luento 26 Esimerkki: pomppiva pallo Parabolinen lentorata, muuttuva nopeus Äkillinen suunnanvaihto törmäyksessä Litistyminen ja venyminen “squash & stretch”
TassuAnimaatio luento 27 Parametrinen määrittely (1) 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
TassuAnimaatio luento 28 Parametrinen määrittely (2) 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 –paloittain splinifunktioilla Parametrikäyrät: (x,y,z) = ƒ(P1,P2,..., t)
TassuAnimaatio luento 29 Parametrikäyrät Vektoriarvoinen yhden muuttujan funktio P(t) = (x,y,z)(t) = ƒ(t) = ( f x (t), f y (t), f z (t) ) Yleensä rajatulla välillä, esim. t [ 0,1 ] Derivaatta on myös vektori Dƒ(t) = dƒ(t)/dt = ( df x /dt, df y /dt, df z /dt )(t) Geometrinen tulkinta on eri asia – x = f(y) ei ole yleeensä funktio MILLOIN – dx/dy ei aina edes määritelty MILLOIN ? – vektorin arvona voi olla muutakin kuin geometriaa, esim. värejä (R,G,B,A) tai nivelkulmia
TassuAnimaatio luento 210 Realistinen interpolointi Jatkuva liike –sijainnin jatkuvuus (ei äkillisiä siirtymiä) –nopeuden jatkuvuus (1. derivaatta) –kiihtyvyyden jatkuvuus (2. derivaatta) Kinetiikka –liikkeen aloitukset ja lopetukset, kiihdytykset, jarrutukset Jatkuvuus muutoksissa -vaihdokset interpoloinnista toiseen Avainkuvan paikallinen vaikutus –vaikutusta vain seuraavaan/edelliseen avainkuvaan asti
TassuAnimaatio luento 211 Interpoloinnin aspekteja Interpolointi vs. approksimointi Jatkuvuus C 0 (ei derivoituva) – jatkuva käyrä C 1 (1. aste) – tangentit samansuuntaisia C 2 (2. aste) – kaarevuus sama C (rajattomasti derivoituva) – määrittely ei paloittainen Mallinnuksessa voidaan tarvita 2. asteen jatkuvuutta, yleensä animaatiossa 1. aste riittää MIKSI –vastaesimerkki: ajoradan kaarteet MIKSI ? Paikallinen vs. globaali kontrolli
TassuAnimaatio luento 212 G-G- G0G0 G1G1 G2G2 Geometrinen jatkuvuus ei jatkuva jatkuva tangentiaalisesti jatkuva kaarevuusjatkuva
TassuAnimaatio luento 213 Palapolynomit eli splinit Matala-asteiset polynomit käteviä parametrifunktioina –laskennallisesti helppoja –derivoituvia (C ) Yhden polynomin käyttö koko käyrällä hankalaa asteluku = vapausasteiden määrä –approksimoiva käyrä ei sivua ohjauspisteitä –interpoloiva käyrä (Lagrange) käyttäytyy villisti pisteiden välillä Ratkaisu: splini eli “palapolynomi” –matala-asteisia polynomikäyriä solmuparien välillä “knot” = käyrällä sijaitseva ohjauspiste –käytännössä yleensä 3 polynomi riittävä –jatkuvuusehdot solmukohdissa järjestettävissä
TassuAnimaatio luento 214 Bezier-käyrä ja B-splini Yksi polynomifunktio koko käyrälle ohjauspisteiden määrä = asteluku+1 Globaali ohjaus –jokainen ohjauspiste vaikuttaa koko käyrään Approksimoiva –interpoloi päätepisteitä Palapolynomi –asteluku valittavissa Lokaali ohjaus –ohjauksen vaikutusalue asteluvun mukaan Approksimoiva –voidaan määritellä päätepisteitä interpoloivaksi –solmupisteet käyrällä mutta eivät ohjattavissa
TassuAnimaatio luento 215 Rationaalisplinit Tavanomainen polynomikäyrä (x,y,z)(t) = P i B i (t) P i = ohjauspiste –kullekin koordinaatille polynomi samasta kannasta B(t) –vektorifunktio on painotettu summa ohjauspisteistä Rationaalikäyrä (x,y,z,w)(t) = P i B i (t) –kullekin koordinaatille rationaalifunktio x(t)/w(t) –ohjauspisteille “painokertoimet” w(t) vapauksia mm. tarkka esitys 2 käyrille (ellipsi/parabeli/hyperbeli) NURBS: “non-uniform rational B-spline” –polynomikantana B-splinit rationaalimuodossa –solmupisteet eivät tasavälisesti parametriasteikolla
TassuAnimaatio luento 216 Matematiikkaa Bezier-käyrän määrittely ja laskenta, ekvivalenssi de Casteljaun kanssa: –
TassuAnimaatio luento 217 Hermiten käyrä Hermiten kantafunktiot (ranskalainen matemaatikko Charles Hermite) Interpoloi ohjauspisteitä ja niissä määriteltyjä tangentteja –johdannainen Lagrangen polynomeista (interpoloi annettuja pisteitä polynomilla) –polynomin aste = 2 x ohj.pisteiden määrä - 1 Käytännöllinen splinikäyrän yhden solmuvälin esittämisessä (2 pistettä 3 käyrä) –kussakin solmussa määriteltävä myös tangentti
TassuAnimaatio luento 218 Hermite (jatkuu) Interpolointi –yleensä 3. asteen polynomit tarjoavat riittävästi vapausasteita (4 kpl): kuljetaan alkupisteen kautta kuljetaan loppupisteen kautta tangentti alussa tangentti lopussa Ekvivalenssi Bezier-käyrän kanssa –Bezier-käyrän päätepisteessä tangentti = 3 x (ohjauspisteiden erotusvektori)
TassuAnimaatio luento 219 Kardinaalisplinit Perustuu Hermiten käyriin –kullakin solmuvälillä polynomikäyrä –lokaali ohjaus: piste + tangentit Tangentiaalinen jatkuvuus (C 1 ) haluttaessa –tangenttivektorit voidaan automaattisesti laskea viereisten ohjauspisteiden avulla Catmull-Rom-splini erikoistapauksena –tangentti = naapuripisteiden erotusvektori / 2 –päätepisteessä tangentti määriteltävä erikseen
TassuAnimaatio luento 220 TCB splini Lue artikkeli: Kochanek & Bartels Kardinaalisplinien laajennus –tangenttivektorit solmupisteissä määrittyvät painotettuna summana naapuripisteistä –kolme parametria (Tension, Continuity, Bias) kullekin ohjauspisteelle
TassuAnimaatio luento 221 Luonnollinen splini Ohjauspisteiden interpolointi fysikaalisesti –taipuisa viivotin pakotetaan menemään pisteiden kautta, tangentteja ei sidota –taivutusenergia minimoidaan –tuloksena 3 splinikäyrä Globaali ohjaus hankalahko laskea
TassuAnimaatio luento 222 Spliniyhteenveto Splinit ApproksimoivatInterpoloivat Bezier B-splinit Beta-splinit Hermiten splinit Kardinaalisplinit Catmull-Rom TCB ”Luonnolliset” splinit
TassuAnimaatio luento 223 Vielä muuta? Harjoitustehtävä – Aiheeseen liittyvää muuta materiaalia –
TassuAnimaatio luento 224 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
TassuAnimaatio luento 225 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.
TassuAnimaatio luento 226 Videot Pixar shorts: –Adventures of André and Wally B. (1984) –Luxo Jr. (1986) –Red’s Dream (1987) –Tin Toy (1988) Klassisen animaation periaatteita, joita näissä videoissa on käytetty (Lasseter 1987) – – mation/principles/prin_trad_anim.htmhttp:// mation/principles/prin_trad_anim.htm