A Silverlight Klub látogatói már tudják, hogy egy Kinect + Bing Maps integrációs projekten dolgoztunk az elmúlt egy hónapban. A projektből installáció lett az Innováció 2011 kiállításon, ahol készítettünk is pár videót. Itt az első ízelítőnek:
A részletesebb videót a post alján láthatjátok.
A projekttel az volt a célunk, hogy a térképhez egy új, a Kinect-hez és a kiállításhoz jobban illeszkedő gesztus-vezérlést találjunk és implementáljunk. Elég ambiciózus céljaink voltak, amelyeket - tudtommal - senki más nem oldott még meg:
A kiállításra fókuszáltunk tehát ha egy gesztus fárasztó kissé, az nem gond, amíg jól érzi magát a felhasználó. Végtére is valahogy rá kell venni, hogy a következő sorbanállónak átadja a helyét
Az irányításnak könnyen tanulhatónak kell lennie - akár a sorban állva, az előző felhasználót nézve is megtanulható, vagy a képernyőn látható instrukciókat, esetleg a hostess útmutatását követve
Kis gyakorlással az irányításnak elég precíznek kell lennie ahhoz, hogy bármely várost, utcát, vagy - ha elérhető - 3D épületet meg lehessen keresni, természetesen legfeljebb olyan részletességgel ahogy a maga a használt térkép engedi
Már az is szórakoztató és izgalmas kell hogy legyen, ha csak nézzük, hogy más hogy használja a programot.
Úgy döntöttünk, hogy a programnak két külön kezelési módot készítünk. Az első a "Térkép mód", ahol az egész Föld látható, forgatható és zoomolható. A másik a "Repülés mód", ahol a felhasználók szabadon repkedhetnek 3D városok és tájak felett. Ennek a módnak a mantrája a "Superman" volt - és tudtuk, hogy jó úton haladunk, amikor a tesztelők elkezdtek szuperhősöket emlegetni a tapasztaltakkal kapcsolatban.
Készítettünk egy "Könyvjelző" funkciót is, ahonnan a Földnek a Bing Maps által leglátványosabban kidolgozott, legérdekesebb pontjaira lehet elnavigálni - mint például New York, a Grand Canyon, a Mount Everest, Las Vegas, stb. A látogatók igen sokszor használták a könyvjelzőt.
Térkép mód
Térkép módban a jobb kézzel lehet a Földet / térképet mozgatni, míg a jobb lábbal előre / hátra lépve lehet zoomolni. Minél nagyobbat lépünk, annál gyorsabb lesz a zoom, ugyanakkor a Kinect elég érzékeny ahhoz, hogy már kis lépést (pár cm) is érzékeljen, így az igen finom mozgások is lehetővé válnak. Ez a kombináció meglepően hatékonynak bizonyult: akár egy, folyamatos nagyítással is eljuthatunk az űrből utca szintig, miközben a jobb kézzel folyamatosan a képernyő közepén tarthatjuk a célt. Ez jól látható a lenti videóban, 0:48-tól, amikor Manhattan-t közelítem meg az űrből indulva.
Repülés mód
Ha 100 méterre megközelítjük a földet, a program repülés módba vált. Ilyenkor az alábbi gesztusok használhatóak:
Jobb lábbal előre / hátra lépve előre / hátra repülhetünk
A karokat vízszintesen kinyújtva tartjuk a magasságot
Innen kissé felemelve a karokat növeljük a magasságot, leeresztve lejjebb ereszkedünk. Minél inkább megemeljük vagy leengedjük a karokat, annál gyorsabb az emelkedés / süllyedés. Azonban 45 fokon túl a függőleges mozgás leáll, hogy a kéz pihenhessen földbe csapódás nélkül.
Ha több, mint 10.000 méterrel a földfelszín felé emelkedünk, a program visszavált térkép módba
A törzset előredöntve a kamera lefelé fordul. A kamera dőlése arányos a törzsével, de annak többszöröse - így lehetővé válik, hogy egyenesen lefelé nézzünk, miközben még mindig látjuk a képernyőt. Hátradőlve (mint limbózásnál) pedig a kamera felnéz.
Végül, a törzset oldalra döntve a kamera elfordul. Ehhez nem kell a karokat vízszintesen tartani, de legtöbben mégis azt teszik, emlékezve a gyerekkori repülő utánzásokra (igazából ez is adta az ihletet). Sőt, gyerekek esetén nem is kell emlékezni, bár láttunk komoly felnőtt embereket is, akik brummogtak is hozzá...
Kedvencek
A jobb kéz magasra nyújtásával mindkét módban elérhető a "Helyek" panel, ahol 8 kedvenc közül választhatunk. Ez a panel hasonlóan működik, mint az XBox-on a Kinect menü - egy "kéz" kurzort mozgathatunk a kiválasztandó kép / hely fölé, és ott pár másodpercig ott tartva már el is mozdul a térkép a megfelelő helyre. Ezt a panelt a Kinect WPF Toolkit segítségével, alig 1-2 óra alatt készítettük.
Bár mindig van helye a további finomításoknak, nagyon boldogok vagyunk az eredménnyel. Sikeresen találtunk és implementáltunk egy olyan irányítási módot, ami egyaránt precíz és élvezetesen használható. Megmutattuk a látogatóknak (és magunknak is), hogy a Kinect nem csak játékra használható - és a legtöbben valóban mosollyal az arcukon hagyták el a standot, Superman-nek (vagy Supergirl-nek) érezve magukat.
A közeljövőben angol blogomon tovább fogom részletezni a tapasztaltakat, tanultakat, nehézségeket,stb. Ha valami érdekel, kérlek jelezzétek, és megpróbálom a válaszokat beleszőni a blogba!