Mi ez? Időgép?
kd — szeptember 18, 2009 - 11:10

Ezzel a kérdéssel és ledöbbent ábrázattal fogadta lakótársunk, hogy ezzel kütyüvel a fejemen hackelek a gép előtt. Valójában az csak a következő projectem lesz, ez még csak egy fejmozgás követő segédeszköz a FreeTrack programhoz.
A FreeTrack a TrackIR 4 Pro nevű kereskedelmi termék teljesen ingyenes, nyílt forráskódú klónja, célja pedig az, hogy a számítógépes játékokban a nézetváltást különféle gombnyomkodások helyett a fejünk mozgatásával valósítsuk meg, ami egy sokkal realisztikusabb, könnyebben tanulható módszer.
Ez elsősorban a szimulátorok szerelmeseinek jön jól, hiszen segítségével sok játékban teljes szabadsággal nézelődhetünk a virtuális pilótafülkében. Odabent megtekinthettek egy kis klippet, hogy is működik ez a gyakorlatban (Live for Speed c. játékkal) illetve további infók is olvashatók a cuccról.
Nem készítettem saját videót, mivel ez a jól fésült ázsiai fiatalember már remekül demonstrálta korábban, hogy is működik a gyakorlatban. Nekem is pont így csinált.
A konstrukció lényege az, hogy a FreeTrack egy webkamera vagy WiiMote segítségével lekövet bizonyos viszonyítási pontokat, amelyek mozgását TrackIR protokoll szerinti nézetváltássá, joystick mozgássá vagy akár billentyűlenyomássá tud alakítani. Mivel a pontok felismerése optikai úton történik, így célszerű olyan jelölést alkalmazni, amit egyszerű a háttértől elkülöníteni. Erre tökéletesen megfelelnek az infravörös tartományban sugárzó ledek. Ezeknek a fénye szabad szemmel nem látható ugyan, de szinte minden kamera érzékeny rá. IR LED helyett használható hagyományos, látható tartományban sugárzó fényforrás vagy éppen élénk színű vagy jó fényvisszaverő képességű tetszőleges felület is.
A FreeTrack négyféle összeállítást támogat.
A legegyszerűbb forma, hogy csak egy pontot használunk. Pl. egy ledet.
Ezzel a megoldással csak 2 dimenziós szabadsági fokunk lesz, azaz csak a fej oldalra történő fordítását és előre-hátra történő bólintását tudjuk érzékelni. Sok játékban ez is elegendő.
A teljes térbeli, 6 szintű, szabadsághoz, azaz ahol a fej vízszintes és függőleges döntése mellett az oldalirányú döntést és a 3 tengely mellett elmozdulásának lekövetéséhez, ahogy az pl. a fenti videón is látható, 3 vagy 4 pontra van szükség.
A 4 pontos egy elavultabb megoldás.

Az újabb verziók már inkább a 3 pontos verziókat támogatják, amiből kétféle elrendezés is lehetséges:
Függőleges:



Háromszög (ezt valósítottam meg én is, ez látható a nyitóképen)



Sam Fisher is ezt használja:

Ez pedig egy fényvisszaverős, passzív megoldás. Ehhez ajánlott erős megvilágítás szemből, amit, hogy ne legyen zavaró, szintén célszerű infraledekkel megoldani.



A hardware rész után jöjjön a szoftver. Rengeteg beállítási lehetőség van, szerencsére nemigen kell bütykölni. A legtöbb esetben elegendő csak első indításkor kiválasztani, hogy mi hány pontos modellt használunk, majd hátradőlni a székben, megnyomni a Center feliratú gombot és ezzel túl is vagyunk a kalibráláson. Persze ha az alapbeállítások nem megfelelők, teljesen személyre szabhatunk mindent, tengelyenként állítható a forgás és elmozdulás érzékenysége, a mozgás simítása, eggyemás. Szerencsére próbálkozni nem vakon kell, egy virgonc karózott koponya mutatja az aktuális beállításnak megfelelő mozdulatokat:

Ha megépítettük a modellt, beállítottuk a FreeTracket, nincs más dolgunk, mint elindítjuk szeretett játékunkat és már forgolódhatunk is kedvünkre. A támogatott játékoknál egy gombnyomással aktiválhatjuk a szabad nézőmódot (Live for Speedben elég volt az Options -> View -> Look function beállítást Axis-ra tenni) és csobbanhatunk is a virtuális valóságban.
Azt hiszem, mindenkinek érdemes kipróbálni ezt a programot, mert egészen más játékélményt nyújt, mint a fix kameraállásos, gombbal nézegetős mód. A modell összeállítása egyszerű, nem igényel komolyabb barkácsolási ismeretet. Elegendő csak 3 ledet egy megfelelő méretű ellenállással sorba kötni (5V esetében többnyire 27 ohmossal) és már kész is. A webkamerát nem számítva 200 forint alatti befektetést és fél óra munkát igényel.
Az én prototípusom még nem tökéletes, ki fogom próbálni a függőleges modellt is, illetve egy-két praktikát a ledek látószögének növelésére. Ha van valami eredmény, beszámolok róla.
Addig is jó kísérletezést mindenkinek, aki bepróbálja. Ha bármi kérdés van, tegyétek fel bátran.

Megcsináltam a függőleges
kd — október 4, 2009 - 13:17Megcsináltam a függőleges verziót is, ez kicsit jobban sikerült, pontosabb lett a követés.
A látószög növelése érdekében lereszeltem a ledeket illetve sikerült beállítanom a webkamerámat normálisan, így fixre be tudtam építeni a floppylemez darabot a látható fény kiszűrésére, nem esett az FPS, mint korábban.
Most már tényleg kényelmesen el tudok fordulni minden irányba olyan mértékben, hogy tovább már nem lenne értelme, mert nem látnám a monitort.
Most már csak az összeszerelés minőségén lehetne javítani. Valahol megbújik egy kis érintkezési hiba, de ritkán jön elő, olyankor lekenek magamnak egy taslit és megy is tovább
Ha valaki gondolkozik a megvalósításon, talán érdemesebb ezt a modellt összeszerelni, mert ezt könnyebb pontosan belőni.
Ma délután még annyit
kd — szeptember 18, 2009 - 19:38Ma délután még annyit csináltam, hogy végrehajtottam egy ehhez hasonló műtétet a webkamerámon és eltávolítottam az infravörös szűrőt belőle.
A történet valami olyasmi, hogy ezek az olcsó kamera CCD-k majdnem akkora részt érzékelnek az infravörös tartományból is, mint a láthatóból, ezért egy kis, speciális réteggel bevont műanyag lapkát szerelnek a lencsék mögé, ami kiszűri az infra nagy részét, ezáltal lesznek valóságosak a színek.
Ezt a filtert a legtöbb kamerában viszonylag egyszerű eltávolítani, nekem még a testet sem kellett szétszednem, mert egyszerűen ki lehetett tekerni az optikát. A szűrő bármikor visszaszerelhető, ha normál üzemmódban is szeretném használni az eszközt (nem szoktam).
Mire jó ez? Mivel IR ledeket használtam, így az általuk sugárzott fény sokkal jobban érvényesül a képen. Megbízhatóbb lett a felismerésük és sokkal nagyobb szögből is megtalálja a program őket (így valószínűleg megúszom a másik, brutálisabb látószögnövelő trükköt, nem kell lecsiszolnom a ledek elejét)
A végeredmény nagyon jó lett, mivel a kamera automatikusan alkalmazkodott az új fénytartományhoz, egy normálisan bevilágított szobából is csak a 3 ledem látható a képen szép, 30fps-es sebességgel. Viszont erős fényforrások, pl a mögöttem levő szpotlámpa fénye már bezavar. Ez nem nagy probléma, mivel tudom úgy állítani a kamerát, hogy a fejem benne legyen, a szpot meg ne.
Próbaképp beraktam a lencsék mögé egy kis, méretre vágott floppylemez-darabot. A mágneses adathordozók (hang- és videokazetta vagy mágneslemez) anyaga olyan, hogy a látható fény nagy részét megfogja, viszont a teljes infratartományt átengedi, így tökéletesen alkalmazható a kiszerelt szűrő ellentétjeként.
Így még tovább javult a ledek képe, ráadásul a legfényesebb izzó is csak halvány derengésként volt látható a három hófehér pötty mellett, viszont valamiért a képkockaszám leesett a másodpercenkénti 8-9-re, ami játékon belül már darabos nézetváltást okozott.
Arra gyanakszom, hogy mivel a kamera érzékelte. hogy alíg jut be fény az érzékelőre, annak ellenére is megnövelte a záridőt, hogy én felülbíráltam, hogy ne tegye, mivel nemcsak az fps esett, de elmosódott lett a mozgókép, a ledek csíkot húztak.
Amíg nem jövök rá, hogy tudnám megerőszakolni, addig marad floppy nélkül.
Hozzászólás