Harkka 3 - In Your Friend's face
Kolmannessa harjoituksen aiheena oli vuorovaikutustekniikka, ja tehtävänä hyödyntää jotakin "ei-perinteistä" käyttöliittymää tai vuorovaikutustekniikkaa ohjelmassa.
Olimme päättäneet, että hyödynnämme myös tässä harjoituksessa Facebook-teemaamme. Niinpä mietimme lähinnä miten Facebookin kanssa voisi hyödyntää erilaisia käyttöliittymiä. Saimme idean pelistä, jossa web-kameran sekä mikrofonin ohjaamana kasteltaisiin Facebook-kavereita vesipyssyllä.
Toteutus
Pelissä Facebook-kaverit tippuvat alaspäin ruudun yläreunasta. Pelaajan tehtävänä on estää kavereita pääsemästä alas. Pelin vuorovaikutuslogiikaksi muodostui seuraava: käyttäjä ohjaa ruudun alalaidasta lähtevän vesisuihkun suuntaa ja voimakkuutta kameran avulla. Tarvittaessa hän pystyy tietyn aikamääreen välein laukaisemaan äänellään "vesipommin", joka pyyhkii kerralla kaikki kaverit pois.
Kamera-ohjaus toteutettiin JMyron-kirjaston avustuksella ja ääniohjaus Minim-kirjastolla. JMyron osoittautui hieman ongelmalliseksi valinnaksi, sillä se ei suostunut toimimaan Java 1.6:n kanssa ja jouduimme asentamaan koneillemme sopivat Java 1.5 -versiot. Lisäksi JMyronin kameratunnistus osoittautui melkoiseksi tehosyöpöksi ja jouduimme laskemaan käytettävää kameraresoluutiota.
Törmäsimme jälleen ongelmiin Facebook-autentikaation kanssa. Aikaisemmissa harjoituksissa käytetty palvelinpohjainen autentikaatiojärjestelmä ei toiminut, sillä ohjelmaa ei kamera- ja mikrofoni-kirjastoista johtuen pysty ajamaan applettina. Jouduimme tyytymään secret keyn sijoittamiseen ohjelmakoodiin ja käyttäjäjoukon rajaamiseen Facebookin ohjelma-asetuksista.
Mitä opin
Harjoituksessa opin erityisesti liikkeentunnistuksen toteuttamisesta kameran perusteella. Oli hyvä kokeilla eri algoritmeja ja huomata kuinka moni asia tunnistukseen vaikuttaa.
Opin jälleen että Java-kirjastojen ja -ympäristöjen kanssa voi olla erinäisiä yhteensopivuusongelmia. Opin myös, että suorituskyky voi olla ongelmana vielä nykyisillä konetehoilla ja suhteellisen yksinkertaisilla tehtävillä. Ohjelman suorituskyvyn seurantaa ja pientä optimointia tuli opeteltua harjoituksen myötä.
Kokeile ohjelmaa
Käyttääksesi ohjelmaa sinun tarvitsee olla Facebookissa ohjelman sallittujen käyttäjien listalla. Ota yhteyttä allekirjoittaneeseen jos haluat listalle.
Lataa:
- Lähdekoodit ja kirjastot (zip)
- Mac OSX app (zip)
- Windows exe (zip), ei testattu
Vaatimukset:
- Java 1.5
- JMyron-kirjaston vaatimukset
- QTJava (Quictime)
- Webkamera ja mikrofoni


