Kasvoanimaation kaappausjärjestelmä indie-pelikehittäjille
Ahonen, Aki (2013)
Ahonen, Aki
2013
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2013-06-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201306171249
https://urn.fi/URN:NBN:fi:tty-201306171249
Tiivistelmä
Tässä diplomityössä tutustutaan liikkeenkaappaukseen perustuvaan kasvoanimaatioon ja esitellään yksinkertainen ja halpa järjestelmä, joka suorittaa liikkeenkaappauksen nykyaikaisen älypuhelimen videokameran ja liikesensorien avulla. Entistä realistisempi 3D-grafiikka vaatii rinnalleen entistä realistisempaa animaatiota todellisuuden tunnun säilyttämiseksi. Pelissä esiintyvien ihmismäisten hahmojen kannalta tämä on tarkoittanut vaiheittaista siirtymistä käsin tuotetusta animaatiosta kohti liikekaapattua animaatiota, jossa animaatio tuotetaan todellisen ihmisen liikkeistä. Viime vuosina liikekaapatun kasvoanimaation määrä on lähtenyt nousuun suuren budjetin tuotannoissa, ja monenlaisia kasvonliikkeiden kaappaukseen erikoistuneita tuotteita on ilmestynyt markkinoille.
Kasvonliikkeiden kaappauksessa yleisin käytetty menetelmä on asettaa näyttelijän kasvoille selkeästi erottuvia merkkipisteitä ja kuvata kasvoja videokameroilla useista eri suunnista. Merkkipisteiden liikettä seurataan optisesti videokuvan perusteella ja järjestelmän kalibroinnilla tuotetaan järjestelmälle tietoa, jonka perusteella eri kameroiden kuvista voidaan laskea yksittäisten merkkipisteiden kolmiulotteiset sijainnit. Kaappaukseen on toki muitakin menetelmiä, joista subjektiivisesti luonnollisimman tuloksen on viime vuosina antanut merkkipisteetön liikkeenkaappaus, jossa kaapattiin koko kasvojen 3D-malli sekä sen tekstuurit suoraan näyttelijän kasvoilta. Kyseinen peli oli L.A. Noire vuodelta 2011.
Tässä diplomityössä tarkastellaan kasvoanimaation kaappausta indie-pelikehittäjän näkökulmasta. Työn kannalta indie-kehittäjiksi lasketaan kaikki, jotka eivät vaadi lopputulokselta täydellisyyttä, ja joilla on käytössään hyvin rajalliset resurssit, niin rahalliset kuin ajallisetkin. Niinpä liikkeenkaappauksen lähdemateriaalin taltioimiseen valjastettiin yksittäinen nykyaikainen älypuhelin, jonka videokameralla tallennettiin kuvaa näyttelijän kasvoista ja jonka liikesensoreilla kaapattiin hänen päänliikkeitään. Puhelin on kiinnitetty kypärätelineeseen, jotta se liikkuu näyttelijän pään mukana. Itse liikkeenseuranta ja sensoridatan jälkikäsittely suoritetaan työpöytätietokoneella, ja puhelimen vastuulla on vain lähdemateriaalin tallentaminen. Kehittäjän aikaresurssien säästämiseksi järjestelmä suunniteltiin mahdollisimman pitkälle automatisoiduksi.
Toteutetun järjestelmän perusteella nykyaikaisen älypuhelimen ja avoimen OpenCV-tietokonenäkökirjaston avulla on todellakin mahdollista kaapata laadukasta kasvoanimaatiota indie-kehittäjän tarpeisiin nähden. Päänliikkeet jouduttiin kuitenkin laitteistorajoitusten takia kaappaamaan ainoastaan kiihtyvyyssensorin avulla, mikä rajoitti lopputuloksen tarkkuutta verrattuna järjestelmään, joka pystyisi hyödyntämään gyroskooppiakin. Kehitettävää on myös vielä niin tehokkuuden, luotettavuuden kuin animaation luonnollisuudenkin saralla, mutta potentiaalia järjestelmällä on runsaasti.
Kasvonliikkeiden kaappauksessa yleisin käytetty menetelmä on asettaa näyttelijän kasvoille selkeästi erottuvia merkkipisteitä ja kuvata kasvoja videokameroilla useista eri suunnista. Merkkipisteiden liikettä seurataan optisesti videokuvan perusteella ja järjestelmän kalibroinnilla tuotetaan järjestelmälle tietoa, jonka perusteella eri kameroiden kuvista voidaan laskea yksittäisten merkkipisteiden kolmiulotteiset sijainnit. Kaappaukseen on toki muitakin menetelmiä, joista subjektiivisesti luonnollisimman tuloksen on viime vuosina antanut merkkipisteetön liikkeenkaappaus, jossa kaapattiin koko kasvojen 3D-malli sekä sen tekstuurit suoraan näyttelijän kasvoilta. Kyseinen peli oli L.A. Noire vuodelta 2011.
Tässä diplomityössä tarkastellaan kasvoanimaation kaappausta indie-pelikehittäjän näkökulmasta. Työn kannalta indie-kehittäjiksi lasketaan kaikki, jotka eivät vaadi lopputulokselta täydellisyyttä, ja joilla on käytössään hyvin rajalliset resurssit, niin rahalliset kuin ajallisetkin. Niinpä liikkeenkaappauksen lähdemateriaalin taltioimiseen valjastettiin yksittäinen nykyaikainen älypuhelin, jonka videokameralla tallennettiin kuvaa näyttelijän kasvoista ja jonka liikesensoreilla kaapattiin hänen päänliikkeitään. Puhelin on kiinnitetty kypärätelineeseen, jotta se liikkuu näyttelijän pään mukana. Itse liikkeenseuranta ja sensoridatan jälkikäsittely suoritetaan työpöytätietokoneella, ja puhelimen vastuulla on vain lähdemateriaalin tallentaminen. Kehittäjän aikaresurssien säästämiseksi järjestelmä suunniteltiin mahdollisimman pitkälle automatisoiduksi.
Toteutetun järjestelmän perusteella nykyaikaisen älypuhelimen ja avoimen OpenCV-tietokonenäkökirjaston avulla on todellakin mahdollista kaapata laadukasta kasvoanimaatiota indie-kehittäjän tarpeisiin nähden. Päänliikkeet jouduttiin kuitenkin laitteistorajoitusten takia kaappaamaan ainoastaan kiihtyvyyssensorin avulla, mikä rajoitti lopputuloksen tarkkuutta verrattuna järjestelmään, joka pystyisi hyödyntämään gyroskooppiakin. Kehitettävää on myös vielä niin tehokkuuden, luotettavuuden kuin animaation luonnollisuudenkin saralla, mutta potentiaalia järjestelmällä on runsaasti.