Timo Kinnunen
Särkiniementie 16 A 41
70700 Kuopio
Finland

Klikkaa tästä siirtyäksesi Timon Serverimaailma kotisivun etusivulle - Click this link to jump to the main page of Timos' Serverimaailma homepage

Klikkaa tästä siirtyäksesi Timon kirjoittamat suomen- ja englanninkieliset filosofiset tarinat ja tutkielmat -sivulle - Click this link to jump to the page of Timo's Finnish, and English philosophical researches and stories

Klikkaa tästä siirtyäksesi tutkielmani Ihminen ja tietokone - Man and computer pääsivulle - Click this link to jump to the main page of my study Ihminen ja tietokone - Man and computer

TOWARDS AN INTEGRATED VIEW OF 3-D COMPUTER ANIMATION

David Zeltzer

Tr. into Finnish by Timo Kinnunen

Computer Graphics and Animation Group, The Media Laboratory,
Massachusetts Institute of Technology, Cambridge, MA 02139, USA

Jotta voitaisiin automatisoida animaatiota ja laajentaa sitä kolmiulotteiseksi (3-D) on luotava ja manipuloitava kolmiulotteisia hahmoja, kuten niitä maailmoja, joita ne tulevat "asuttamaan". Abstraktointi ja adaptoituva liike ovat avainmekanismeja käsiteltäessä vapausasteiden ongelmaa, mikä viittaa kontrollointi-informaation ohjausvoimaan koordinoitaessa keinotekoisten hahmojen liikettä silloin, kun linkkien määrä on hyvin suuri. Animaation kontrolloinnin muotojen kolmeksi hierarkiseksi tasoksi on ehdotettu: OHJAUS (guiding), ANIMATOINTITASO (animator-level), ja TEHTÄVÄNRATKAISUJÄRJESTELMÄT (task-level systems). Ohjaus soveltuu parhaiten hienojakoisiin yksityiskohtiin, mutta ei mutkikkaiden liikkeiden kontrollointiin. Animatointitason ohjelmointi on voimakas, mutta myös vaikea. Tehtävänratkaisujärjestelmät antavat soveltuvan kontrollointimahdollisuuden mutkikkaita liikkeitä varten, ja sen tehtävät sinällään mahdollistavat liikeosien kontrollin. Tässä tutkimuksessa keskustellaan näiden kontrollitasojen integroinnista. Avainsanoja: Tietokoneanimaatio - Simulaatio - Ihminen-tietokone vuorovaikutekenttä

ANIMATION AS SIMULATION

Tänä päivänä vallitsee erimielisyyttä kolmiulotteisen tietokoneanimaation luonteesta. Pitäisikö systeemin perustua simulaatioon, avainruutuihin (keyframing), tai animaation ohjelmoitikieleen. Pitäisikö vuorovaikutuksen tapahtua graafisten näyttöjen kautta, vai näppäimistöllä? Tässä tutkimuksessa tarkoituksenani on tuottaa käsitteellinen viitekehys kolmiulotteista animaatiota varten yleisesti, ja hahmojen animaatiota varten erikseen. Automaattinen väliintulo (inbetweening) on ollut mielenkiinnon kohteena jo käytettäessä tavanomaista tietokoneavusteista kaksiulotteista animaatiota (Burtnyk and Wein 1976; Catmull 1978). Tästä näkökulmasta ajatellen tuntuisi luonnolliselta siirtyä automaattisen väliintulon (inbetweening) käyttöön myös kolmiulotteisessa animaatiossa, ja itse asiassa onkin kehitetty lukuisasti sentapaisia systeemejä (Chuang and Entis 1983; Gometz 1984; Magnenat-Thalmann and Thalmann 1983). Tässä tutkielmassani väitän, että kolmiulotteinen avainruudutus (keyframing) kuuluu ensimmäiselle kolmesta hierarkian tasoista animoitaessa keinotekoisia hahmoja. Tuotettaessa vakuuttavia henkilöhahmo-animaatioita, referoivat kaksiulotteisen animaation käyttäjät jatkuvasti eläviä malleja, tai tutkivat elävistä malleista tehtyjä kuvasarjoja, tai siirtävät suoraan kuvasarjojen erillisistä,liikkumattomista kuvaruuduista niissä liikkuvia hahmoja (rotoscoping). Tämä tarkoittaa sitä, että henkilöhahmoanimaatio ei ole prosessi, jossa käsiteltäisiin viivoja ja muotoja kaksiulotteisella pinnalla, eikä se ole myöskään yksinkertaisesti vain hahmojen litistämistä, venytystä, tai muulla tavoin hahmojen liioittelua ja karikatyyrien muodostamista niistä. Thomas ja Johnston (1981) tekivät täysin selväksi, että Disneyn palkkaamien animaattoreiden menestys perustui siihen, että he perehtyivät pitkiä aikoja ihmisten ja eläinten liikkumistapojen tarkkailuun ja opiskeluun valmistellessaan erityistä kuvajaksoa. Henkilöhahmon onnistuminen riippui täysin siitä, kuinka hyvin animaattori ymmärsi kuvattaviin liittyvää kinematiikkaa, ja liikkeiden struktuuria ja ajoitusta, kuten myös sitä, kuinka liikkeen saisi näkymään myös henkilöhahmojen ollessa vaatetettuina. Kun tällaiset elementit hallittiin, niin silloin animaattori saattoi kehittää henkilöhahmoihin persoonallisuutta tietyillä liioitteluilla, tai tiettyjen attribuuttien jättämisellä vähemmälle huomiolle. Niin pitkään kun animatointi vaatii lukuisten piirrosten valmistamista käsin, tulevat yksinkertaisuus ja valmistuksen taloudellisuus olemaan sen olennaisimpia elementtejä. Kolmiulotteinen tietokoneanimaatio on kuitenkin kokonaan erilainen medium. Animaattorin energia ei enää suuntaudu piirtämiseen, ja välintulon monotonisuuteen (tedium of inbetweening). Sen sijaan kohteena on ympäristön luominen -mikromaailmojen luominen, ja niiden asuttaminen mielenkiintoisilla henkilöhahmoilla. Koska kuvaruutuja ei enää luoda käsin, niin yksinkertaistettujen ja tyyliteltyjen kuvitehahmojen sijasta saavutamme tietokoneanimaation suurimmalta osaltaan kiinnittämällä huomiomme komiulotteisuuden simulointiin, valaistukseen, taustaan, ja pintojen tekstuuriin. Animatoidut kuvat voivat saada lisää kompleksiutta ja tulla detaljoidummaksi; ne tulevat näyttämään realistisemmilta, mikäli niin halutaan, tai vakuuttavammin omaan maailmaansa kuuluvilta. Tämä koskee myös hahmojen käyttäytymistä, kuten myös niiden objektien maailmaa, ja niiden kaikkien fysikaalista ulkonäköä. Komiulotteinen tietokoneanimaatio on siten simulaatioprosessi sanan kaikkein yleisimmässä merkityksessä; objektien spesifiointi ja niiden tranformointi. Tietokoneen käyttö simulaation mediana ei ole uutta; Turing osoitti jo kaikkiaan, että tietokone voisi simuloida itseään, tai mitä tahansa muutakin -tätä teemaa esittivät usein mm. Alan Kay (kay and Goldberg 1977; Kay 1985). Varhaisimpien graafisten sovelteiden tutkijain päämääränä oli apprehensioida maailman visuaalista kompleksiutta opiskelemalla valon vaikutustapoja, varjoa, tekstuuria jne. Nykyinen synteettinen mielikuvitus on saavuttanut lähes valokuvallisen realistisuuden tietyissä geometrisesti ja stokastisesti kuvattavissa oleviin objekteihin ja ymäristöihin nähden. Nyt tehtävänä on yrittää apprehensioida maailman proseduraalista monimutkaisuutta, mikä vaatii, kuten tulemme näkemään, tietokonemalleja monista komplekseista, tai ainoastaan osittain ymmärretyistä artikuloidun liikkeen dynaamisista ja inversiivin kinematologian prosesseista, kuten myös terveeseen järkeen perustuvaa suunnittelua ja ongelmanratkaisuja. Kuinka me voimme spesifioida ja koordinoida objekteja, joita tahdomme animatoida? On olemassa kolme perustavaa lähestymistapaa:

1. OHJAUSMALLISSA (guiding mode) voimme eksplisiittisesti kuvata ne käyttäytymiset, joista olemme kiinnostuneita,
2. ANIMATOINTITASOLLA (animator-level) voimme kuvata käyttäytymisiä algoritmisesti jollakin ohjelmoinnin notaatiolla,
3. TEHTÄVÄNRATKAISUSYSTEEMEISSÄ (task-level) voimme kuvata käyttäytymisiä implisiittisesti tapausten ja suhteisiinasettumisten termein.

Tarkoituksiamme varten soveltuu kiinteistä linkeistä artikuloitujen struktuurien kontrollointi ja koordinaatio hyvin ajatellen kolmiulotteista piirteistä animaatiota. Erityyppiset skaalaukset ja muut muotojen transformaatiot ovat tärkeitä, mutta sittenkin toissijaisia ajatellen motorista kontrolloitia. Seuraavassa luvussa tutkimme sitä perustavanlaatuista ongelmaa, jonka kohtaamme yrittäessämme koordinoida kenotekoisten hahmojen liikkeitä, ja tarkastelemme mekanismeja, joilla käsitellä hahmojen animaation mutkikasta kokonaisuutta. Myöhemmin havaitsemme, että mainitut kolme hierarkista tasoa ovat tärkeitä hyödynnettäessä mekanismeja.

THE DEGREES OF FREEDOM PROBLEM

Olennainen ongelma koordinoitaessa keinotekoisten hahmojen liikkeitä liittyy soveliaiden liittymävariaabelien (joint variables) arvojen generointiin, joilla kontrolloidaan jokaisen linkin asemaa ja orientaatiota. Liittymät voidaan muotoilla alemmiksi pareiksi (Denavit and Hartenberg 1955) kuten rotaatioksi, tai liukuviksi liittymiksi, tai ne voivat olla vielä kompleksisempia, kuten ihmisen polvea kuvaavassa detaljoidussa mallissa. N -liittymäiselle kuviolle voidaan ajatella n -dimensionaalinen asettumisen avaruus (pose space), johon me liitämme koordinaattiakselin jokaista n -vapausastetta varten, ja n -komponenttisen asettumisen vektorin, joka täydellisesti spesifioi erityisen konfiguraation. Jotta voitaisiin animatoida toisiinsa liittyvien kuvioiden liikettä, on asettumisen vektori spesifioitava jokaista kuvaruutua varten erikseen kokonaiskuvien sekvenssissä. Jotta voitaisiin animatoida yhden minuutin mittainen kokonaiskuvien sekvenssi, jossa liike on kompleksista, ja kuvio on detaljoituva niin, että siinä on 30 linkkiä, niin tarvitaan 10 000 arvoa, joilla spesifioidaan liittymäarvot, jotka mahdollistavat sen, että jokaisessa kuvaruudussa on toisistaan poikkeavat konfiguraatiot. Jopa silloin, kun kokonaiskuvien sekvenssi on avainruudutettu (keyframed) niin, että avainruudut (keyframes) seuraavat toisiaan kahden sekunnin välein, tarvitsee spesifioida 30 asettumisen vektoria (pose vectors) -lähes tuhat arvoa. Tämä olkoon esimerkkinä vapausasteiden ongelmasta (The degrees of freedom problem, DOF) (Turvey et al. 1982), mikä viittaa ohjausinformaation määrällisen volyymin tarpeeseen koordinoitaessa keinotekoisten hahmojen liikettä, kun linkkien määrä on suuri, kuten esimerkiksi ihmishahmon kohdalla. Tässä on syy siihen, miksi animatoijat eivät pidä komiulotteisesta henkilöhahmoanimaatiosta. Tietenkään emme ole kiinnostuneita satunnaisesta liikkeestä (random motion): kuvion liikkeiden tulee olla "oikeita" tietyssä mielessä, jotta niillä olisi käyttöä. Robottiohjelmoija saattaa toivoa energiankäytön optimointia, ja animatoija sitä, että kuviot liikkuisivat jollakin ekspressiivisellä tavalla. Ajatellen asiaa tältä kannalta, on animaation ongelma hakemisessa (search). Meidän ei ainoastaan pidä generoiman asettumisten vektoreita (pose vectors), vaan myös löytää erityinen variaabeleiden joukko välittömästä asettumisen avaruudesta (pose space). Jos jokaisella kolmestakymmenestä liittymästä on vain kaksi mahdollista asettumisen tapaa, niin sitä vastoin mahdollisia konfiguraatioita asettumiselle on yli miljoona! Komplisoidaksemme ongelmaa todettakoon, että monet kiinnostavista kuvioista ovat kinesteettisesti redundantteja; niillä on "ylimääräisiä" vapausasteita, jotka tarjoavat monia vaihtoehtoisia ratkaisumalleja. Niillä on ehkä lukematon määrä asettumisten vektoreita (pose vectors), joista kaikki antaisivat tyydyttävän ratkaisin liikkeen ongelmaan. Ihmisen käsivarsi on redundantti, koska sormilla on mahdollista poimia jokin esine pitämällä kyynärpäätä eri asennoissa. Tämä tarkoittaa sitä, että käsivarrella on monia konfiguroitumisen mahdollisuuksia, joissa sillä on silti tietty, kiinteä asema avaruudessa. Tämä redundanssi toisaalta mahdollistaa tietyn joustavuuden, tavoiteltaessa kädellä jotakin, tai tehtäessä sillä jotakin mutkikkaasti rakentuneessa ymäristössä. Tästä syystä johtuen individuaalit voivat kehittää käsiensä liikkeisiin heille luonteenomaisia ilmaisullisia tyylejä.

ADAPTIVE MOTION

Adaptoituva liike liittyy kuvankontrolloijan kykyyn käyttää hyväkseen ympäristön informaatiota, kuten kuviota itseäänkin kontrollointiprosessissa. Tämä tarkoittaa sitä, että voidaan hyödyntää takaisinkytkentöjä, joilla liikeratojen etsintää ohjataan mahdollisten konfiguraatioiden valtavasta avaruudesta. Jotta tämä voitaisiin tehdä, ainakin koskien objektien ja niiden pintojen avaruudellista sijaintia ja liikettä siinä koskien, on takaisinkytkennän oltava saatavilla animatointiin käytettävässä ohjelmistossa, eikä juuri niin, että se mahdollistuisi aliohjemilla, kuten tavallista. Fyysiset interaktiot kuvioiden ja objektien välillä ovat mutkikkaita reaalisessa maailmassa: koskettamista, raaputtamista, työntämistä, puhumattakaan erilaisista mahdollisuuksista työstää erilaisia pintoja liittyen automaattiseen työstötekniikkaan, joka on kiinnostanut CAD/CAM:ia ja robotiikkaa. Niinpä tällaisten erilaisten fyysisten interaktioiden mahdollisuuksien tulisi tulla animatoinnilla luotujen ympäristöjen kiinteäksi osaksi. Adaptoituva liike mahdollistaa päämääräohjautuvan ja kurinalaisen käyttäytymisen, sillä se sallii animatoijan kuvata liikettä termein, jotka liittyvät kuvioiden ja objektien välisiin suhteisiin. Se tuottaa yleistyvyyttä animatoituihin sekvensseihin, koska käytetty ohjelmisto voi mukautua liikesarjoihin erilaisissa kuvasekvessioissa. Tämä myös auttaa kätkemään sellaiset detaljit animatoijalta, jotka muodostuisivat hänelle taakaksi liiallisen animatointityöhön sen vaiheina liittyvän kontrollointi-informaation muodossa, joka jäisi siten ohjelmoijan huoleksi. Reynolds (1982) on ehdottanut, että animatoijinen tulisi luoda "käyttäytymiselle säännöstöjä" koskien objekteja ja hahmoja kuvitteellisissa mikromaailmoissa. Kun alustavista olosuhde-säännöistä näissä simuloiduissa kaikkeuksissa olisi päästy yksimielisyyteen, voisivat animatoijat istahtaa tuolilleen, ja antaa animaatiosysteemien generoida sekvenssejä. Tämä liittyy kaksiulotteisessa (2-D) animaatiossa vallitsevaan "suoraan eteenpäin" -systeemiin (straight ahead), jolle tuotettaisiin näin kolmiulotteinen (3-D) laajennus (Thomas and Johnston 1981). Adaptoituva liike tekee tämän tekniikan laajennuksen mahdolliseksi myös kolmiulotteisessa tietokoneanimaatiossa.

ABSTRACTION

Abstrahoinnin tärkeys käsiteltäessä tietokoneohjelmoinnin älyllistä kompleksiutta on tunnettua (Shaw 1980), ja se onkin samalla tavoin perustyökalu käsiteltäessä kinesteettistä ja käyttäytymyksellistä artikuloidun liikkeen kompleksiutta. Käyttökelpoisia abstrahoinnin tapoja hahmojen animaation kontrolloinnissa on viisi: strukturaalinen, proseduraalinen, funktionaalinen, ja hahmojen, sekä niiden maailman muotoiluun liittyvä.

Structural abstraction

Strukturaalinen abstrahointi kuvaa kinesteettisiä kuvion ominaisuuksia liittyen transformaatiohierarkian, saatavilla olevien yhdistettyjen liikkeiden luonteeseen, ja siihen, milloin linkit ovat rigidejä ja milloin ne eivät sitä ole (me käsittelemme tässä ainoastaan rigidiä liikettä). Transformaatiohierarkiaan liittyy kaksiulotteisesta systeemeistä tuttujen hierarkioiden yleistäminen kolmiulotteisuuteen. Useimmat kolmiulotteisista animatointisysteemeistä sisältävät joitakin keinoja, joilla voidaan esittää transformaatiohierarkioita, kuten esimerkiksi Crown "scn-assmblr" (Crow 1982)), Blinnin "artic" (Blinn 1982) ja Reynoldsin "ASAS" (Reynolds 1982). Näissä systeemeissä liittymistransformaatiot esitetään yksinkertaisina rotaatioina ja käännöksinä, jotka joskus sisältävät skaalausta, vaikkakin enimmin arkiluloidun liikkeen yleisiä representaatioita, kuten esimerkiksi Denavit-Hartenburgin (D-H) notaatio (Denavit-Hartenburg 1955; Lee 1982), jota on pitkään käytetty mekaanisessa suunnittelussa, ja nykyisin robotiikassa (Paul 1981). "Sdl", eli luurankokuvauskieli (skeleton description language) on työkalu, jolla spesifioidaan niitä strukturalisia aspekteja, joita käytetään "sa":ssa, joka on artikuloitu liikejärjestelmä (Zeltzer 1984). Samantapainen työkalu on "mat", jollainen on käytössä New York Institute of Technology'ssa (Williams 1982). Media Laboratory'ssa olemme kehittäneet valikoiman graafisia työkaluja, jotka on istutettu Symbolics 3600 Lisp Machine'iin, joilla voi sunnitella ja muotoilla liittyvien (jointed) kuvien standardisoituja kinesteettisiä kuvauksia. Nämä kuvaukset on ulotettu koskemaan myöskin D-H representaatiota prismaattisten (prismatic) ja rotaaristen liittymien osalta. Representaatio on laajennettavissa niin, että siihen voidaan lisätä muitakin liittymistyyppejä helposti. Tämäntapainen standardisoitu representaatio on keskeinen monikeskisessä tietokoneympäristössä, jossa työskentelee useita ohjelmoijia ja animoijia käyttäen monenlaisia tietokoneita, ja jotka haluavat jakaa tuotettua graafista dataa ja hyödyntää tuotettuja ohjelmistoja. Lisäksi voimme helposti integroida robottiohjautuvat kontrollialgoritmit animaatio-ohjelmistoon, koska D-H notaatio tarjoaa miellyttävän ja voimakkaan representaation tällaisille motorisen kontrollin tekniikoille.

Procedural abstraktion

Proseduraalinen abstrahointi (Tennent 1981) on sellainen liikealgoritmin representaatio, joka on riippumaton sen kuvion struktuurista, jota se kontrolloi. Esimerkiksi DOF ongelma ei ole kovinkaan vakava robottimanipulaation tapauksessa, jossa on kuusi tai seitsemän liittymistä (joint). Jopa sellaisenaankin pelkistettynä eivät ihmiset kovinkaan hyvin onnistu laskemaan tarvittavia liittymiskulmia (joint angles) kontrollodessaan yksinkertaista manipulaattoria, ja liikeratojen laskennalliseen määritykseen turvaudutaan usein (resolved motion) (Whitney 1972; Klein and Huang 1983). Tämä merkitseekin sitä, että syöttönä annetaan kohteen määränpääasema ja liikesuunta, ja että manipulaatiokontrolleri laskee automaattisesti tarvittavan asettumisvektorin (pose vector), jolla annettu määränpää saavutetaan. Liikkeen laskennallinen määrityskontrollointi on tärkeä esimerkki proseduraalisesta abstrahoinnista ratkaistaessa DOF ongelmaa: on määritelty se laskentatapa, joka transformoi syöttöparametreja, eli kohteen sijaintia ja orientaatiota tulosteobjektiksi, jossa on sellaiset liittymiskulmien arvot, jotka orientoivat lopputulosteen (the end effector) toivottuun sijaintiin työskentelytilassa, mikäli mahdollista. Laskennallinen määrityskontrolli on riippumaton siitä, millainen erityinen kinesteettinen struktuuri on vallitsevana, ja sitä voidaan soveltaa kuvioihin, joissa on 6 tai 8, tai useampiakin linkkejä, ja myös ihmishahmoja koskien sitä voidaan käyttää kontrolloimaan niin käsivarsien kuin raajojenkin liikkeitä (Girald and Masiejewski 1985; Ribble 1982). Muita esimerkkejä proseduraalisesta abstrahoinnista ovat putoavien esineiden liikeratojen laskeminen, törmäävien esineiden liikeradat, tai loivien käännösten laskeminen gereroitaessa pehmeitä liikkeitä. Tällaisia ominaisuuksia tarjotaan usein animatoijille valmiina pakettina, mutta niitä voi myös hän itse konstruoida korkean tason ohjelmointikielten animointisysteemeissä.

Functional abstraktion

Robottikädessä linkkien lukumäärä on pieni, ja käsi toimii yhtenä kinesteettisenä kokonaisuutena. Kuvioille, joissa linkkejä on enemmän me kuitenkin haluamme yhdistettäväksi niin ne strukturaaliset- kuin proseduraaliset elementit, jotka ovat välttämättömiä tiettyyn luokkaan kuuluviin liikkeisiin. Vaihtoehtoisesti voimme pakottaa liikkeen ohjautumaan tiettyjen liittymisten mukaisesti. Kutsumme tällaista abstrahointia funktionaaliseksi, mikä on tärkeä siksi, että animatoija voi faktoroida asettumisavaruuden (pose space) motorisiksi taidoiksi (motor skills). Mikäli tunnemme liikkeen yleisen muodon, on meidän enää tarkasteltava asettumisen osa-aluetta koko asettumisten avaruudessa. Sanokaamme, että haluamme kuvion käden tavoittelevan jotakin objektia, ja tiedämme, mitä liittymiä meidän on liikuteltava, tai ainakin suunilleen tiedämme tämän, ja tiedämme myös, että kyseessä on hyödyllinen liike, joka toistetaan usein. Voimme ryhmittää tämän liittymisliikkeiden joukon tehtävään "tavoittaminen", ja sitten käyttää sovelluksessa yhtä tai useampia mahdollisuuksia (ehkä laskennallisesti määritelty liike). Kun tällainen motorinen taito on määritelty, voidaan itse taidon luomisen detaljit poistaa työskentelystä, mikä tarkoittaa sitä, että meidän tarvitsee käyttää vain tiettyjä, soveltuvia parametreja, kuten päämääräsijainti, nopeasti tai hiljaa, kovaa tai pehmeästi -luodaksemme motorisen ohjelman, jolla taito saavutetaan. Spesifioidessaan funktionaalisia abstraktioita "tavoittamisesta", tai muista tehtävistä, säästyy animatoija asettumisvektoreiden rakentamisen taakasta, ja voi sen sijaan muotoilla liikkeitä korkeammalla suoritettavien tehtävien ja tapausten tasolla. Funktionaalinen abstrahointi mahdollistaa meille implisiittisten päämäärinen saavuttamisen kuvioiden liikkeissä. Jäsentämällä kuvioiden liikkeet uudelleen potentiaalisiksi liikkeiksi taitojen repertuaariin voi animatoija assosioida tapahtumia ja suhteita taitoihin (funktionaalisella abstrahoinnilla), jotka kuvioidenkontrolleri "tuntee". Lisäksi voimme ulottaa funktionaalisten abstrahointien referoituvuuden muihin funktionaalisiin abstrahointeihin, jolloin on mahdollista konstruoida käyttäytymisiä yksinkertaisempien liikkeiden valikoimasta.

Character abstraction and world modeling

Fysikaalisessa maailmassa kuviot ja objektit ovat vuorovaikutuksessa mutkikkaalla tavoin monilla tasoilla ja monin detaljein. Adaptoituva liike vaatii vähintään tehokkaan geometrisen representaation törmäystestejä ja polkusuunnittelua bvarten: päämäärästäohjautuva animaatiokontrolli vaatii lisäksi sofistikoituneempia mekanismeja, jotta tieto voitaisiin esittää. Osa ongelmasta liittyy korkealaatuisen graafisen databasen strukturointiin, jotta vältettäisiin pitkiä hakuja pintaelementtien luetteloista sanokaamme törmäystestien tapauksessa. Pikemminkin haluaisimme huomioida ainoastaan ne kokonaisuuden objektit, jotka ovat "lähellä" kuviota. Tämä tarkoittaa sitä, että data on organisoitava huolellisesti spatiaalisesti siten, että etsintä tapahtuu aina soveliaalla detaljitasolla. Lukuisista hierarkisista datanstrukturointimetodeista, joilla hakua voidaan nopeuttaa, on esitetty raportteja (Clark 1976; Fuchs et al. 1980; Rubin and Whitted 1980). Franklin (1981) kuvaa joukkoa algoritmeja, jotka soveltuvat useamman alueen testaukseen (intersection testing) aivan yhtä hyvin.

Suurempi ongelma on esittää attribuutteja, funktionaalisuutta, ja objektien välisiä suhteita kokonaisuudessa (scene) niin, että voidaan yleisesti simuloida niiden välisiä interaktioita ja käyttäytymisiä. Me haluamme tämä representaation olevan yhdenmukaisen niin, ettei agenttien ja objektien välillä ole eroa. Tämä tarkoitta sitä, että siinä missä ihmiset ovat jossakin suhteessa aktiivisia agentteja, he myöskin noudattavat lakeja, jotka ovat newtonilaisen mekaniikan mukaisia; joku henkilö putoaa alastönäistynä kalliolta juuri samalla tavoin kuin kivi. Toisaalta voi olla, että animatoija haluaa tuolien ja pöytien tannsivan ympäri huonetta isännän poistuttua. Olisi helppoa otaksua sellaisen käyttäytymisen tietoisiksi aiheuttajiksi näitä objekteja, jotka muutoin ovat inanimantteja. Meidän on siten spesifioitava kolme seikkaa objektista: mikä se on, millaisten objektien kanssa se esiintyy, ja kuinka se käyttäytyy. Fysikaalisten objektien representaatio-ongelma liittyy aktiivisesti keinotekoisen älyn tutkimukseen (Wasserman 1985). Selvästikin objektit voidaan kuvata yleistyvyyden hierarkiassa, ja sellaisissa tapauksissa, joissa erityisiä seikkoja esiintyy, yleisempien objektiluokkien spesialisaatioina. "Periytyvyys" (inheritance) on avaintermi, joka tarkoittaa sitä, että objekti-tapaukset voivat käyttää sellaisia attribuutteja ja proseduureja, joita käyttävät muutkin niiden luokkaan kuuluvat objektit. Periytyvyydet ovat asetusarvoja (default values), jotka voidaan korvata spesifioimalla erityisiä arvoja näitä lohkoja (slots) varten tapauksissa itsessään. Myös moninkertaista periytyvyyttä (multiple inheritance) tarjotaan, jossa objekti voi periä attribuutteja useammastakin kuin yhdestä sitä koskevasta vallitsevasta luokasta. Tästä syystä hierarkian yleistyvyyttä kuvaa pikemminkin monikerrostuva tasojakauma (lattice) kuin yksinkertainen puu. Useat ohjelmointisysteemit kannattavat tällaista näkemystä objektien representaatiosta, mikä on myös hyvin kuvattu kirjallisuudessa (Stefik et al. 1983; Tesler 1981).

Objektin paikantuminen sellaiseen yleistyvyyden tiettyyn tasopintaan kertoo siitä, mitä se on, ja miltä se näyttää (kuinka sitä voidaan muokata). Voimme kuvata objektin struktuurin assosioimalla jokaisen ylseistyvyyden tasopintaleikkauksen trasformaatiohierarkiaksi, kuten kuvattu. Leikkauspinta ihmishahmoa varten voidaan assosioida pinnalle puurakenteeksi, jotka kuvaavat liittymiä ja linkkejä, joista kuvio muodostuu. Jokainen linkeistä vuorostaan voisi olla tapaus, joka liittyy monoliitiseen objektiin, joka sijaitsee toisaalla yleistyvyyspinnalla. Ihmishahmojen luokan tapaukset perivät tällaisen strukturaalisen kuvauksen paikallisine variaabeleineen, jotka kuvastavat erityisen ihmishahmon sijaintia ja liikettä. Strukturaalisen kuvauksen tapaan tulisi jokaisella objektilla olla siihen assosioituva käyttäytymyksellinen kuvaus. Yksinkertaisia objekteja varten voisivat tällaiset kuvaukset olla myös yksinkertaisia. Prototyyppimäiset fysikaaliset objektit esimerkiksi saattaisivat totella joitakin newtonilaisen mekaniikan lakeja. Artikuloiduilla kuvioilla voisi olla jo koko joukko kykyjä, kuten käveleminen ja esineiden tavoittelu. Koska käyttäytymisiä voidaan periä, voivat ihmisfiguurit periä myös sellaisia ominaisuuksia, jotka liittyvät newtonin mekaniikan mukaiseen käyttäytymiseen, jota niiltä odotammekin. Lisäksi on välttämätöntä representoida objektien välisiä mekaanisia interaktioita rajoittunein, ja hyvin määritellyin suhteisiinasettumisten termein. Koska me haluamme esittää muuttuvaa maailmaa, on näiden suhteisiinasettumisten oltava dynaamisia, ja sisällettävä objektien välisiä linkkejä, jotka merkittävästi tukevat kontakteja, sisältöjenottoa, epsilon-proksimiteettia, ja myös tietoa siitä, milloin objekti on toisen osa, tai toisen objektin liikkuva osa. Tällaista suhdetta voidaan hyödyntää objekteihin, jotka itsessään ovat mutkikkaita liittymärakenteita, ja joilla jokaisella on oma strukturaalinen kuvauksensa, kuten on laita esimerkiksi auton moottorin ollessa osa autoa. Lopuksi, ratkaistaessa yksinkertaista motorista ongelmaa, haluamme liittää yleistä tietoa objektien kuvauksiin. Se tarkoittaa sitä, että kykenemme enkoodaamaan sentapaista tietoa, kuten "joku poistuu tavallisesti huoneesta etsien oven, jonka avaa". Näin ei ole laita aina animaatiossa, ja siksi representaatioiden tulisi olla helposti muotoiltavissa. Joka tapauksessa tällainen tieto edustaa kulttuurillisia individuaalien oppimia seikkoja, ja on yleistä tietämystä (common knowledge), jonka hallitsemme ovien avaamisista. On sopivaa assosioida tällaista tietoa objekteihin itseensä. Se tarkoittaa sitä, että muotoillessamme mikromaailman fysikaalisia ja geometrisia ominaisuuksia, täytyy maailmaan sisällyttää objektien saatavissa olevaa kulttuurista informaatiota. Tutkimme parhaillaan tekniikoita, joilla sellaista informaatiota voisi enkoodata käyttäytymyksellisen kuvausten yhdenmukaistamiseksi koskemaan kaikkia yleistyvyyden tasojen objekteja.

Text-mediated and device-mediated interaction

Animointisysteemin voimakkuus on riippuvainen täydellisesti siinä käytetystä abstrahointimekanismista ja adaptoituvan liikkeen hallintavälineestä; mikä ei suoranaisesti liity animatojan käytettäväksi tarjoutuviin ohjausvälineisiin, kuten joystickiin. On tehty paljon, jotta tietokonegrafiikkaan voitaisiin liittää oheislaitteistovuorovaikutusta (device-mediated interaction), jollainen työ alkoi jo silloin, kun ohjelmointikielinä ainuina vaihtoehtoina olivat Fortran ja assemblykoodaus ihmisen ja tietokoneen välisessä kommunikaatiossa (Baecker 1969; Sutherland 1963). Kuitenkin ohjelmointikieli tulee todennäköisesti säilymään valinnan mediumina algoritmien ja mutkikkaiden spatiaalisten, temporaaristen ja käyttäytymyksellisten suhteiden kuvauksessa. Tekstimedia vuorovaikutus liittyy kirjoittamiseen. Kehitystä on tapahtunut, ja tulee edelleen tapahtumaankin hyvin pitkälle näppäimistön ergonomiassa, ja erityisesti puheentunnistuksessa (speech recognition), joita voidaan käyttää ihminen/ tietokone vuorovaikutekentässä (interface). Samaan aikaan on ilmaantunut useita muitakin funktioita, kuten poimiminen (picking), paikallistaminen (locating), ja luonnehtiminen (sketching), jotka edellyttävät graafista kuviota sinällään interaktion kanavaksi. Äärimmäisin esimerkki graafisesta interaktiosta lienevät tapaukset, joissa esimerkiksi lennetään lentosimulaattorilla, tai ohjataan kuusijalkaista science-fiction robottia joystickilla. Nämä ovat kuitenkin laajoja simulaatio-ohjelmia, jotka rakentuvat mutkikkaista proseduureista. Käyttäjä on interaktiossa systeemiin korkealla hierarkian abstrahointitasolla, ja nimenomaan organisaatio sallii systeeminkäyttäjän tekevän mm. kädellään pieniä liikkeitä, tai ohjausliikkeitä joystickilla, jotka sitten vahvistetaan merkityksellisiksi ja komplekseiksi kontrollisignaaleiksi, joilla sitten on siten myös voimakas vaikutus. Seuraavissa luvuissa tulemme näkemään, kuinka kolme kontrolloinnin tasoa liittyvät adaptoituvan liikkeen hallinnan työvälineystöön ja abstrahointimekanismeihin.

A THREE LEVEL HIERARCHY FOR CHARACTER ANIMATION

Voimme luokittaa animatointijärjestelmät ohjaukseen (guiding), animatointitasoon (animator level) ja tehtävänratkaisusysteemeihin (task level systems). (Myös robottien ohjelmoinnissa käytetään samanlaista luokitusta, vrt. Lozano-Perez 1982).

Guiding

Ohjaussysteemit (guiding systems) ovat sellaisia, ettei niihin liity mekanismeja, joilla käyttäjä määrittelisi abstrahoituvuutta, tai ohjaisi adaptoituvaa liikettä. Ohjaussysteemejä on hyvin monenlaisia, kuten liikkeen nauhoittaminen (recording) (Calvert et al. 1980; Ginsberg and Maxwell 1983), muodon interpolointi (Gomez 1984), avain-trasformaatiosysteemit (Chuang and Entis 1983; Gomez 1984; Williams 1982) ja notaatioon perustuvat systeemit (Calvert et al. 1982; Weber et al. 1978). Liikkeen nauhoituksessa (motion recording) käytetään useammanlaisia välineystöjä (devices), joilla kinesteettistä dataa liikkuvista kuvista hankitaan. Kinesteettistä dataa käytetään sitten animatoitujen kuvioiden kontrollointiin. Sellaiset systeemit rajoittuvat usein laboratorio-olosuhteissa suoritettuihin ihmisen liikkeitä koskeviin mittauksiin, mutta jotka silti tarjoavat potentiaalisesti tarkastellen runsaan ihmisen liikkeitä koskevan data-aineiston. Muodon interpolaatio (shape interpolation), tunnettu myös "metamorfoosina", on kaksiulotteisen avainruudutuksen (keyframing) kolmiulotteinen vastine. Jos vastaavuus on yhden-suhde-yhteen ajateltaessa erillisten objektien kuvapisteitä ja pintoja, voidaan väliintulokuvaruudut (inbetween frames) laskea interpoloimalla objektien välisten datapisteiden keskinäiset välimatkat. Avain-trasformaatiosysteemissä (key-trasformation systems) manipuloidaan kokonaisia objekteja suhdetrasformaatioilla. Väliintulokuvaruudut (inbetween frames) generoidaan interpoloimalla trasformaatioparametrit, ja trasformoimalla objekteja. Tällaiset systeemit mahdollistavat trasformaatiohierarkioiden spesifioimisen ja siten myös artikuloidun liikkeen muodostamisen. Sellaisessa avain-asettumis -systeemeissä (key-pose systems), kuten BBOP, tuotetaan myös "p-curve facility" (Baecker 1969) niin, että käyttäjä saattaa graafisesti spesifioida nopeuksia. Notaatioperusteiset systeemit (notation based systems) ovat esimerkki tekstiohjauksesta, jossa käyttäjä kuvaa liikkeen koreografisena notaationa, tai sen alfanumeerisina vastineina (i.e. Calvert et al. 1982).

Limitations of guiding systems

Ohjaussysteemissä (guiding systems) animatoijan täytyy ennalta spesifioida liikkeen detaljit. Tämä on järkevää ainoastaan niukkapiirteisissä ympäristöissä. Otaksukaamme, että ihmishahmo kävelee luonnollisella tavalla muotoutuvassa maisemassa. Kävelyaskeleita ei ole vaikea gereroida käytettäessä avainruudutusta (keyframing) tai muodon interpolaatiota (shape interpolation), mutta tässä tapauksessa se vaatii suuren määrän intermediatiivisia konfigurointeja, jotta kävely näyttäisi luonnolliselta. Tämä johtuu siitä, että väliintulokuvaruudut (inbetween frames) lasketaan huomioimatta muita kuvakentän objekteja. Tällöin voi tapahtua, että jalka uppoaa lattiaan, tai kuvio kävelee seinän läpi. Pahempaa on, jos kuvio käveleekin toiseen suuntaan kuin on aiottu, koska silloin mitään aiemmista avainkonfiguraatioista ei voida käyttää. Ohjauksessa animatoijalla on lähes täydellinen kontrolli kuvion liikkeisiin. DOF -ongelmasta johtuen tämä on samalla sekä siunaus, että riesa. Animatoija on vapaa suunnittelemaan ekspressiivisiä liikesarjoja "in toto", mutta mutkikkaampien kuvioiden, tai mekanismien tämä on vaativa- , tai kenties mahdotonkin tehtävä, vaikka käytettävissä olisikin hyvin sunniteltu oheislaiteohjattu vuorovaikutekenttä (device-mediated interface) (Lundin 1982). Useimmat ohjaussysteemit (guiding systems) sisältävät ennalta-asetettuja proseduraalisia abstrahointeja liikkeen pehmentämiseen, jotka perustuvat yhteen -tai useampaankin "spline" -tekniikkaan (Rogers and Adams 1976). Usein nämä työkalut sallivat animatoijan säätää "spline" -parametreja, kunnes jokin toivottu profiili on työstetty. Kysweinen tekniikka sallii animatoijan myös tarkemmin simuloida kiinteiden kehojen dynamiikkaa, kuten nopeutumista ja hidastumista inertia- ja painovoiman vaikutuksessa, sillä eihän sellainen liike näytä luonnolliselta, joka on hyppivä, vaikka onkin suuntautumiseltaan lineaarinen, ja sen katseleminen on myös epämiellyttävää. (Tavanomaisessa animaatiossa liikkeen nopeutuminen liittyy ilmaukseen "ease in", ja sen hidastuminen ilmaukseen "ease out", ja se on laskettava käsin, tai käyttäen taulukoita). Yleisesti tarkastellen "splining" tarjoaa soveliaan monenlaisten transformaatioiden nopeuksien kontrollointitavan, kuten kokojen- ,muodon,- ja värien muutoksiin liittyviä keinoja, ja myös asettumisiin ja orientaatioon liittyviä kontrolleja. Parametrisoitujen (kuvaus) käyrien käyttämisen arvo animaation kontrolloinnissa todettiin jo aiemmin, ja se on yhä aktiivisen tutkimuksen kohteena (e.g. Kochanek and Bartels 1984). Samalla kun nämä "spline" -käyrät ovat voimakas simulaatiomekanismi, ei tämä tekniikka yksin riitä yleiseksi ratkaisuksi DOF -ongelmaan, koska monien trasformaatioiden kontrollointi vaatii useiden kuvauskäyrien generoimista ja hienosäätöä. Tähän mennessä on tuotettu lukuisia mielenkiintoisia animaatiosekvenssejä käyttäen ohjaussysteemejä mm. lukuisissa kaupallisissa tuotteissa ja yliopistolaboratorioissa. Koska niissä ei kuitenkaan tarjota voimakkaista abstrahointimekanismeja, ja koska adaptoituva liike ei ole lainkaan mahdollista, eivät ohjaussysteemit sovellu mutkikkaiden kuvioiden kontrollointiin, ja niiden liikkeiden ohjaukseen komplisoiduissa ympärisöissä. (Voisi tietysti ajatella, että kuvauskäyrät, joita myöten kuvioiden eri osat "liikkuvat" kolmiulotteisessa avaruudessa kullekin "annetuilla" nopeuksilla saataisiin "noudattamaan" tiettyjen käyrästönosien osalta mm. kuljettavan pinnan muodostusta, ja että ne ohjelmoitaisiin "väistämään" avaruudessa esiintyviä objekteja niin, että osa "väistöistä" olisi "kovia", ja osa "pehmeitä" -riippuen objektien "laadusta", suom. huom.).

Animator-level systems

On suunniteltu lukuisia animatointitason systeemejä (animator level systems), jotka sallivat animatoijan spesifioida liikettä algoritmisesti. Jotkut näistä systeemeistä tarjoavat jossain määrin sekä adaptoituvan liikkeen- ja abstrahoinnin hyödyntämistä, vaikka niitä ei ole erityisesti suunniteltu henkilöhahmo-animaatioon.

GRAMPS, ASAS, and MIRA

GRAMPS-ohjelma (O'Donnel and Olson 1981) ei sisällä adaptoituvan liikkeen manipuloinnin mahdollisuutta, mutta sen avulla voidaan konstruoida liikemakroja (motion macros), jotka perustuvat funktionaaliseen abstrahointiin. Liittymät (joints) voidaan ryhmittää yhteen ja niiden syöttö derivoida ohjausvalikosta (dials), ja liittymien liike voidaan eksplisiittisesti asettaa tietyn arvojakauma-alueen sisälle. Tämä on hyvä esimerkki ohjausmekanismien interaktiosta (dials) ja funktionaalisesta abstrahoinnista (motion macros). Vaikka ohjelmaa ei olekaan suunniteltu henkilöhahmoanimaatio-systeemiksi, on sitä käytetty generoitaessa mielenkiintoisia ihmishahmojen animaatioita. Craig Reynoldsin ASAS (Reynolds 1982) tarjoaa valikoiman alemman tason mekanismeja, jotkas soveltuvat sekä abstrahointiin -että adaptoituvaan liikkeeseen. Näyttelijäparadigma (actor paradigm) tarjoaa eksplisiittisellä tavalla yleisen abstrahointimekanismin, ja sallii trasformaatiohierarkioiden määrittämisen (strukturaalisen abstrahoinnin), ja myös käyttäytymyksellisyyden (proseduraalisen ja funktionaalisen abstrahoinnin kautta). Viestinantomekanismi mahdollistaa adaptoituvan liikkeen työkaluohjauksen, koska animatoidut entiteetit raportoituvat fysikaalisten attribuuttiensa osalta, kuten myös sisäisten tilojensa suhteen. Toinen äskettäin raportoitu animaatiojärjestelmä MIRA (Magenat-Thalmann and Thalmann 1983) perustuu lähesisesti näyttelijäparadigmaan liittyvään ohjelmoitiparadigmaan, nimittäin data-abstrahointiin (Shaw 1980). MIRA tarjoaa valikoiman tärkeitä abstrahointiominaisuuksia, jotka muistuttavat ASAS:n vastaavia. MIRA ei ole viestienantosysteemiin perustuva, joten animatoija voi asettaa ja tutkia erilaisten datatyyppien arvoja ja variaabejeja niin, että kuvioita ja objekteja voidaan käyttää generoitaessa liikkeitä.

TEMPUS

Norman Badlerin johtama ryhmä Pennsylvalian yliopistossa on pitkään tutkinut inhimillisten liikkeiden representaatiota ja niiden esittämistä kuvana. He ova kehittäneet TEMPUS -ohjelman (Korein et al. 1983; Badler 1982), jossa kyetään analysoimaan ja esittämään realististen ihmishahmojen liikkeitä työavaruudessa. Vaikka TEMPUS ei olekaan yleiseen tarkoitukseen valmistettu animaatiosysteemi, on siinä pitkälle kehiteltyjä piirteitä inhimillisten hahmojen liikkeitä ja muodonmuokkausta koskien, kuten myös liikeratojen laskennallisen määrityksen kontrolli (resolved motion control). Koska TEMPUS on rajoitettu, päinvastoin kuin MIRA ja ASAS, vain inhimillisten hahmojen asettumiseen ja orientoitumiseen, voi TEMPUS olla pitkälti oheislaiteohjattu (device-mediated). Käyttäjä poimii liikkeitä graafisen näytön luettelosta (menu), ja kontrolloi liikkeitä näyttöön simuloiduilla potentiometreillä. Käytettävissä ovat koko hahmon rotaatio ja traslaatio, kuten myös valittujen liittymien (joints) rotatointi, ja raajojen laskennallisesti määriteltävä liikkuminen (resolved motion of the limbs). TEMPUS ei sisällä adaptoituvaa liikettä, ja abstrahointimahdollisuudet, joita käyttäjä voi käyttää, ovat myös rajatut parametrittömiin makroihin (parametreless macros), joiden avulla käyttäjä voi ryhmittää liikekomentoja. Joustava laskennallistesti määriteltävä liikealgoritmi asetettaessa ihmiskehon raajojen asetoja kolmiulotteisessa avaruudessa on askel kohti tehtävänratkaisutason animaatiota (task-level animation).

Discussion

Koska on mahdollista käyttää välineohjatusti adaptoituvaa liikkeensäätöä, ja määrittää strukturaalisia, funktionaalisia ja proseduraalisia abstrahointeja tarjoavat animatointitason systeemit (animator level systems) merkittäviä parannuksia ohjaukseen DOF -ongelmaa ajatellen. Mutta kuten tavallista, on köyden pää äkkiä vetävän käsissä (trade off). Ohjaussysteemit (guiding systems) ovat suhteellisen helppoja oppia ja käyttää, mutta eivät riitä mutkikkaampien hahmojen animaatioon. Animatointitason systeemit (animator level systems) tarjoavat taas toisaalta yleisten ohjelmointikielten käytön kautta tietojenkäsittelyllistä voimaa, mutta samanaikaisesti sitovat käyttäjät ohjelmankehittelyn pbroblematiikkaan. Thalman et al. (Magneat-Thalmann and Thalmann 1983). Huomattakoon, että "otti" peräti 14 kuukautta tuottaa [YKSI] 13 -minuutin pituinen elokuva, mikä selkeästi valottaa ongelmaa. Ongelma on siis siinä, että vaikka onkin mahdollista kehittää kompleksien liikkeiden hallintaa ASAS:lla tai MIRA:lla, se ei välttämättä ole helppoa, koska kumpikaan kieli ei eksplisiittisesti tarjoa tukea kehitettäessä funktionaalisia abstrahointimalleja, tai hallitessa adaptoituvaa liikettä. Thalman et al. pitivätkin tärkeänä integroida ohjaava systeemi, MUTAN (Fortin et al. 1983), joka liittyi heidän ohjelmaskeemaansa. Palaan integrointikontrollin muotoihin myöhemmin.

Task level animation

Tehtävänratkaisutasolla (task level)) täytyy animaatiosysteemin sisältää motoristen ohjelmien suorittamismahdollisuuksia, joilla hahmoja kontrolloidaan, ja näiden motoristen ohjelmien tulee kyetää itsessään generoimaan tarvittavia asettumisen vektoreita (pose vectors). Jotta tätä voitaisiin niiltä odottaa, on käytettävissä oltava tietoa kuivioista, objekteista ja koko niiden ympäristöstä, joka sisältää tietoja niiden asemasta, fysikaalisista attribuuteista, ja niiden funktionaalisuudesta. Toisessa tutkimuksessani (Zeltzer 1983) luonnehdin erästä lähestymistapaa, jolla ratkaista tehtävänratkaisutason (task level) animaatiota, jossa motorinen käyttäytyminen generoidaan taitojen hierarkiasta (esitettynä luetteloina (Minsky 1975) tai näyttelijöinä (Hewitt 1979) objekti-orientoituneessa systeemissä) valitsemalla ne sellaisten sääntöjen mukaan, jotka suhteuttavat meneillään olevan toiminnan seuraavaksi esitettäväksi toivottuun toimintaan. Albus The Bureau of Standards -yhtiöstä on suunnitellut robottikontrollisysteemin, joka perustuu hierarkiseen tauluvalintaohjautuviin laskentaelementteihin (table-driven computing system) (Albus 1981). Powers on suunnitellut käyttäytymiskontrolli-hierarkian, joka perustuu servomekanistiseen teoriaan (Powers 1973). Molemmat näistä jälkimmäisistä lähestymistavoista näyttävät toimivan hyvin alemmanasteisessa motorisessa kontrollissa, jollaista me voisimme kutsua vaisto-ohjautuvaksi käyttäytymiseksi (instinct-driven behavior), mutta näyttävät heikoilta, mikäli niiltä vaaditaan symbolista vuorovaikutusta ympäristönsä kanssa. Tehtävänratkaisutason (task level) motorinen kontrolli on vaikea ongelma, jota tutkivat parhaillaan tiedemiehet, robotiikan asiantuntijat, ja tietysti myös ne, jotka ovat kiinnostuneita korkean tason animaatiosysteemeistä. Lähitulevaisuudessa voimme odottaa kehitettävän yksinkertaisten käyttäytymisten generointiin kykeneviä prototyyppisiä systeemejä. Se, kuinka nopeati sellaiset systeemit laajenevat riippuu siitä, kuinka hyvin opimme ymmärtämään motorista kontrollia itseään. Tehtävänratkaisutason (task level) kontrollissa animatoija voi ainoastaan spesifioida erityisten liikkeiden suhteen laajoja toiminnan linjoja, ja animaatiosysteemi on kuitenkin täynnä hienoja yksityiskohtia. Se, onko tällainen lähestymistapa sovelias riippuu erityisestä soveltamisesta. Asiantuntematon voi hyvinkin tyytyä asetusarvoliikkeiden (default movements) käyttöön, ja kuvioihin, joita systeemi tarjoaa huomioiden kohtuullisen ajankäytön ja kustannukset, ja siten animatointi hakee jonkinlaisen kultaisen keskitien. Erittäin asiantunteva käyttäjä esimerkiksi esittävän taiteen piirissä saattaa haluta lähes täydellistä hienojenkin nyanssien kontrollia liittyen hahmojen liikkeeseen muodostaakseen kuvasekvensseistä ilmaisullisesti niin rikkaita kuin mahdollista. Kuitenkaan halu liikkeen ilmaisullisten laatuominaisuuksien kontrollointiin ei tarkoita pelkästään puhdasta systeeminohjausta generoimalla asettumisvektoreita (pose vectors). Animatoijan on kyettävä saavuttamaan eritasoisia kontrollihierarkioita generoidakseen uudenlaisia motorisia taitoja, tai muotoillakseen jo hallittuja taitoja.

Integration of control modes

Ohjaus (guiding) on vallitseva nykyisten interaktiivisten animaatiosysteemeiden muoto. Tarve yhdistää kaikkien kolmen tason muodot juontuu siitä, että erillisinä käytettyinä ne eivät, taloudelliselta kannalta ajatellen, tarjoa riittävää kontrollia. Ohjaus (guiding) soveltuu parhaiten hienojen yksityiskohtien käsittelyyn, mutta sen avulla ei voida kontrolloida komplekseja liikkeitä. Animatointitason (animator level) ohjelmointi on voimakas, mutta vaikea hallita. Tehtävänratkaisutason (task level) systeemit mahdollistavat kompleksien liikkeiden kontrollin sulkeistamalla liikkeen detaljit ohjauksellisuuden ulkopuolelle. Osin mahdollinen ratkaisu piilee soveltamalla ohjaus (guiding) tekniikkoja liikkeen kontrollin hierarkian erityisissä kohdissa. Avaimena on kyky jäsentää liikkeiden repertoaari käsiteltävissä olevaksi, hierarkisesti organisoituneeksi motoristen taitojen kompositioksi. "Browsers" -notaatio, kuten sitä käytetään työkaluna "Smalltalk" issa (Tesler 1981) tai "Loops" issa (Stefik et al. 1983) tarjoaa voimakkaan metodin, jolla saavutetaan motoristen taitojen ohjauskontrolli. Otaksukaamme, että minulla on RGB monitorissani varjostettu ihmisen hahmo. Terminaalinäytössäni minulla on representaatio, josta ilmenee hahmon struktuuri ja sen osaamat taidot. Otaksukaamme, että valitsen kuvauskäyrän grafiikkataulukosta. Jos nyt spesifioin tämän kuvauskäyrän niin, että se edustaa eritystä liittymän rotaatiota (joint rotation) l. osoitan sen kuvaavan pikkusormen liikettä terminaalinäyttövalikostani, niin minun tulisi välittömästi nähdä ihmishahmon sormen liikkuvan adekvaatilla tavalla RGB näytössä. Otaksukaamme edelleen, että osoitan terminaalinäyttövalikosta toimintaa "tavoittele jotakin vasemmalla kädelläsi", tulisi minun nähdä RGB näytön ihmishahmon avaavan ja sulkevan sormiaan nopeudella, jonka olen määrittänyt. Annan sitten valikosta toimintakäskyn "kävele", jolloin käskyn seurauksena ihmishahmo kävelee näyttöruudun poikki, ja tällä kertaa kuvauskäyrä, jonka olen jo edellä valinnut, voisikin kuvata kävelynopeutta. Tällainen modulinen, hierarkisoituva organisaatio sallii käyttäjän indentifioida ne liikekvaliteetit, joita tulee säätää, ja samalla lokaisoida muutosten tuottamat vaikutukset. Tällainen on yhdenmukaistuva motoristen taitojen representaatio, johon kuuluu taitojen esittäminen, ja niiden säätöjen spesifioinnin, jotka ovat mahdollisia, ja myös lisäksi yhdenmukaisen mekanismin, jossa p-käyrät interaktoituvat taitojen kanssa.

Conclusion

Olen esittänyt käsitteellisen analyysin kolmidimensionaalisesta tietokoneanimaatiosta simuloitavien objektien ja niiden käyttäytymisten prosessointina, jossa animatoija manipuloi niitä mikromaailmassa. Vapausasteiden ongelma (degrees of freedom) on keskeinen kysymys artikuloitujen kuvioiden koordinoinnissa. Tietokoneanimaatiosyteemien tulisi perustua soveltuviin peruskäsitteisiin, kuten adaptoituvaan liikkeeseen (adaptive motion), ja viiteen abstrahointimekanismiin, joilla animatoija voi manipuloida mielenkiintoisia piirteitä ja ympäristöjä ekspressiivisellä tavalla. Keskustelu kolmesta kontrolloinnin moodista viittaa hyvän ohjauksen (guiding) kriteeriin ja animatointitason systeemeihin (animation level systems). Ohjaussysteemit (guiding systems) ovat tänä päivänä saaneet eniten huomiota osakseen, ja interaktiivisia, oheislaiteohjattuja (device-mediated) vuorovaikutekenttiä (interface) on käytetty pelkästään standardilla tavalla kommunikoitaessa tietokoneen kanssa, jota todistaa "hiiriohjattujen ikkunoiden" (mouse-and-window) käyttö tietokoneen ohjauksessa. Yleisesti tietokoneen ohjaus tulisi nähdä mekanismina, jolla kehitetään ja kontrolloidaan kompleksien systeemien käyttäytymistä, eikä pelkästään keinona poimia vaihtoehtoja, piirtää viivoja, tai generoida skaalariarvoja erilaisia trasformaatioparametreja määriteltäessä. Kuten edellä jo on ehdotettu, me haluaisimme kyetä tavoittamaan fysikaalisen oheislaitteen kautta syötetyn tiedon monitoritulosteen muodossa, jossa käyttäytymykselliset hierarkiat (behavioral hiearchy) tulostuisivat erilaisina ilmaisutasoina. Samalla kun hahmon merkitys riippuu yksittäisestä prosessista, joka sitä kuvaa, on vaikeaa löytää soveliaita parametreja kompleksien prosessien kontrollointiin, kuten kasvoihin liittyvien ilmausten kontrolloiminen (cf. Parke 1982; Platt 1981). Kun on määritelty luonnollinen kontrollointivalikko, ei ole vaikeaa käyttää syöttöoheislaitteita (input devices) parametrien arvojen integratiiviseen generointiin. On olemassa kaksi toisiaan täydentävää suunnittelun teemaa: Kuinka me voimme "sukeltaa" ohjausmekanismeihin niin, että voimme tuottaa kompleksia käyttäytymistä? Kuinka syöttöoheislaitemodulit (input device modules) voivat toimia "hahmovahvistuksen" standardeina, joita helposti voidaan uudelleensuunnata kuvioidenkontrollihierarkian eri funktioihin? Animatointitason (animator level) kielten tulisi sisältää muotoiluominaisuuksia ja piirteitä, joita odotamme voimakkailta ohjelmointikieliltä. Kätkemällä käyttäjältä ohjelmoinnin avulla tehdyt ratkaisut, tai päällystämällä syntaksi sokerilla ei ole läheskään niin tärkeää kuin tarvittavan animaation ekspressiivisen voiman kehittäminen. Tämä ei ole oikea paikka keskustelulle automaattisen ohjelmoinnin tulevaisuudesta, tai viimeisimpien ohjelma-paradigmojen ansioista, koska tärkeintä on käyttäytymisen algoritminen kuvaus; "tee tämä, tee tuo" on olennaisin ja fundamentaalisin tapa kommunikoida suoritettavaan liikkeeseen liittyvästä toiveesta. Usein "naiivi käyttäjä" oppii nopeasti animaatiokielen syntaksin frustroitumalla siitä, ettei kieli olekaan riittävän voimakas. Animatointitason (animation level) kielten ja systeemien tulisi siten kombinoida yhteen kaikkea sitä, mitä ohjelmateknologiasta tiedetään -liittyen mekanismeihin, joilla abstrahoidaan funktionaalisuutta ja kontrolloidaan adaptoituvaa liikettä. Lopuksi: Adaptoituva liike on eräänlainen muoto törmäystesteistä (collision testing), ja siten laskentaperusteisen liikekontrollin tulisi sisältyä ainakin osittain peruselementtinä kolmiulotteiseen animaatiosysteemiin. Kolmiulotteisen tietokoneanimaation taide ja tiede jatkaa kehittymistään kohti hypoteettisten maailmojen simulointia, täydennettynä fysiikan laeilla ja kuvioiden hallitsemilla käyttäytymisillä repertoaareilla. On opittava konstruoimaan ja kontrolloimaan näitä simulaatioita, joilla tietokoneanimaatiolle annetaan sen ekspressiivinen voima.

References

[1] J.S. Albus, Brains,Behavior and Robotics, Byte Books, Peterborough, NH (1981).

[2] N.I. Badler, Design of a Human Movement Representation Incorporation Dynamics, Course Notes, Seminar on Three.Dimensional Computer Animation, ACM SIGGRAPH 82 (1982).

[3] R.M. Baecker, Picture-driven Animation, Proceedings AFIPS Spring Joint Computer Conference, vol 34, pp. 273-288 (1969).

[4] J.F. Blinn, Systems Aspects of Computer Image Synthesis, Course Notes, Seminar on Three Dimensional Computer Animation, ACM SIGGRAPH 82 (1982).

[5] N. Burtnyk and M. Wein, Interactive Skeleton Techniques for Enchanging Motion Dynamics in Key Frame Animation, Commun ACM 19:564-569 (1976).

[6] T.W. Calvert, J. Chapman, and A. Patla, The Integration of Subjective and Objective Data in the Animation of Human Movement, Proc ACM SIGGRAPH 80, Comput Graphics 14::198-203 (1980).

[7] T.W. Calvert, J. Chapman, and A. Patla, Aspects of The Kinematic Simulation of Human Movement, IEEE Computer Graphics and Applications, 2:41-50 (1982).

[8] E. Catmull, The Problems of Computer-Assisted Animation, Proc ACM SIGGRAPH 78, Computer Graphics, 12:348-353 (1978).

[9] R. Chuang and G. Entis, 3-D Shaded Computer Animation -Step-by-Step, IEEE Computer Graphics and Applications, 3:18-25 (1983).

[10] J.H. Clark, Hierarchical Geometric Models for Visible Surface Algorihms, Comm ACM, 19:547-554 (1976).

[11] F.C. Crow, A More Flexible Image Generation Enviroment, Proc ACM SIGGRAPH 82, Computer Graphics, 16:9-18 (1982).

[12] J. Denavit and R.B. Hartenberg, A Kinematic Notation for Lower-Pair Mechanics Based on Matrices, J Appl Mech, 23:215-221 (1955).

[13] D. Fortin, F.J. Lamy, and D. Thalman, A Multiple Track Animator System for Motion Synchronization, Proc ACM SIGGRAPH/SIGART Workshop on Motion, pp. 180-186 (1983).

[14] W.R. Franklin, 3-D Geometric Databases Using Hierarchies of Inscribing Boxes, Proc Canadian Society for Man-Machine Interaction, pp. 173-180 (1981).

[15] H. Fuchs, Z. Kedem, and B. Naylor, On Visible Surface Generation by A Priori Tree Structures, Proc ACM SIGGRAPH 80, Computer Graphics, 14:124-133 (1980).

[16] C. Ginsberg and D. Maxwell, Graphical Marionette, Proc ACM SIGGRAPH/SIGART Workshop on Motion, pp. 172-179 (1983).

[17] M. Girald and A.A. Maciejewski, Computational Modeling for the Computer Animation of Legged Figures, Proc ACM SIGGRAPH 85, Computer Graphics, 19:263-270 (1985).

[18] J.E. Gomez, Twixt: A 3-D Animation System, Proc Eurographics '84, North-Holland (1984).

[19] C. Hewitt, Control Structure as Patterns of Message Passing, In: R.H. Brown (ed.) Artificial Intellicence: an MIT Perspective, MIT Press, Cambridge, MA, pp. 433-465 (1979).

[20] A. Kay and A. Goldberg, Personal Dynamic Media, Computer, pp. 31-41 (1977).

[21] C. Klein and C. Huang, Review of Pseudoinverse Control for Use with Kinematically Redundant Manipulators, IEEE Transaction on Systems, Man, and Cybernetics, Vol. SMC 13, pp. 245-250 (1983).

[22] D.H.U. Kochanek and R.H. Bartels, Interpolating Splines with Local Tension, Continuity, and Bias Control, Proc ACM SIGGRAPH 84, Computer Graphics, 18:33-41 (1984).

[23] J. Korein, J. Korein, G. Radack, and N. Badler, TEMPUS User Manual (Unpublished), Dept. of Computer and Information Science, University of Pennsylvania, Philadelphia, PA (1983).

[24] C.S.G. Lee, Robot Arm Kinematics, Dynamics, and Control, Computer, 15:62-80 (1982).

[25] T. Lozano-Perez, Robot Programming, AI Memo 698, MIT, Cambridge, MA (1982).

[26] D. Lundin, 3-D Modeling, A Personal Orthodoxy, Course Notes, Seminar on Three Dimensional Computer Animation, ACM SIGGRAPH 82 (1982).

[27] N. Magenat-Thalmann and D. Thalman, The Use of High-Level 3-D Graphical Types in the Mira Animation System, IEEE Computer Graphics and Applications, 3:9-16 (1983).

[28] M. Minsky, A Framework for Representing Knowledge, In: P. Winston (ed.) The Psychology of Computer Vision, Graw-Hill, New York (1975).

[29] T.J. O'Donnel and A.J. Olson, GRAMPS -A Graphics Language Interpreter for Real-Time, Interactive, Three-Dimensional Picture Editing and Animation, Proc ACM SIGGRAPH 81, Computer Graphics, 15:133-142 (1981).

[30] F.I. Parke, Parametrized Models for Facial Animation, IEEE Computer Graphics and Applications, 2:61-68 (1982).

[31] R. Paul, Robot Manipulators: Mathematics, Programming, and Control, MIT Press (1981).

[32] S.M. Platt and N.I. Badler, Animating Facial Expressions, Proc ACM SIGGRAPH 81, Computer Graphics, 15:245-252 (1981).

[33] W.T. Powers, Behavior: The Control of Perception, Aldine Publishing Co., Chigago (1973).

[34] C.W. Reynolds, Computer Animation with Scripts and Actors, Proc ACM SIGGRAPH 81, Computer Graphics, 16:289-296 (1982).

[35] E.A. Ribble, Synthesis of Human Skeletal Motion and the Design of a Special-Purpose Processor for Real-Time Animation of Human and Animal Figure Motion, M.S. Thesis, The Ohio State University (1982).

[36] D.F. Rogers and J.A. Adams, Mathematical Elements for Computer Graphics, McGraw-Hill, New York (1976).

[37] S. Rubin and T. Whitted, A 3-Dimensional Representation for Fast Rendering of Complex Scenes, Proc ACM SIGGRAPH 80, Computer Graphics, 14:110-116 (1980).

[38] M. Shaw, The Impact of Abstaction Concerns on Modern Programming Languages, Proc of the IEEE, 68:1119-1130 (1980).

[39] M. Stefik, D. Bobrow, S. Mittal, and L. Conway, Knowledge Programming in Loops: Report on an Experimental Course, AI Magazine, 4:3-13 (1983).

[40] I.E. Sutherland, Sketchpad: A Man-Machine Graphical Communication System, Proc AFIPS Spring Joint Computer Conf., 23:329-346 (1963).

[41] R.D. Tennent, Priciples of Programming Languages, Prentince-Hall, Englewood Cliffs, NJ (1981).

[42] L. Tesler, The Smalltalk Enviroment, Byte, 8:90-147 (1981).

[43] F. Thomas and O. Johnston, Disney Animation: The Illusion of Life, Abbeville Press, New York (1981).

[44] M.T. Turvey, H.L. Fitch, and B. Tuller, The Problems of Degrees of Freedom and Context-Conditioned Variability, In: J.A.S. Kelso (ed.), Human Motor Behavior, Lawrence Erlbaum Assocates, Hillsdale, New Jersey, pp. 239-252 (1982).

[45] K. Wasserman, Physical Object Representation and Generalization, AI Magazine, 5:28-42 (1985).

[46] L. Weber, S.W. Smoliar, and N.I. Badler, An Architecture for the Simulation of Human Movement, Proc ACM Ann. Conf., pp. 737-745 (1978).

[47] D.E. Whitney, The Mathematics of Coordinated Control of Prosthetic Arms and Manipulators, Transactions of the ASME, J Dynamic Systems, Measurement, and Control, 122:303-309 (1972).

[48] L. Williams, BBOP; Course; Notes; Seminar on Three Dimensional Computer Animation ACM SIGGRAPH 82 (1982).

[49] D. Zeltzer, Knowledge-based Animation, Proc ACM SIGGRAPH/SIGART Workshop on Motion, pp. 187-192 (1983).

[50] D. Zeltzer, Representation and Control of Three Dimensional Computer Animated Figures, Ph. D. Thesis, The Ohio State University (1984).