Monday, November 05, 2007

Niskobudžetni head tracking sistem tutorijal

IL2 Forgoten Battles, uvod u head tracking

Pojava Track IR-a i sličnih uređaja koji pokrete glave igrača prenose na "virtuelnu glavu" u video igrama i simulatorima, unela je revoluciju u igre iz prvog lica, a naročito u simulatore letenja, vožnji itd...

Od igre do igre, razlikuje se podrška za ove uređaje, neke podržavaju potpuno kretanje, translaciju i rotaciju oko sve tri prostorne ose, a IL2 Forgoten Battles, koja je nama bitna, podržava rotaciju oko dve ose (pitch i yaw - X i Y).

Kod igara koje podržavaju više prostornih osa, head tracking radi tako što prijemni uredjaj, najčešće postavljen na monitoru, prati položaj 3 ili 4 markera na glavi igrača koji mogu biti IR LED ili obične LED diode ili tačkasti reflektori na kačketu i preko njih izračunava položaj i kretanje kamere u igri. U nasem (IL2) slučaju dovoljan je samo jedan svetlosni marker.

U međuvremenu, došlo se na ideju da se u kombinaciji sa određenim software-om, za praćenje svetlosnih markera može koristiti i obična web kamera, pa su tako nastali programi Freetrack, Cam2Pan (komercijalan) i Freelook koji od svih pomenutih trenutno najbolje sarađuje sa IL2. On je takođe najjednostavniji za podešavanje.

Šta je potrebno za IL2 niskobudžetni head tracking sistem?

Software:

Freelook (prati kretanje svetlosnog markera i pretvara ga u X i Y koordinate)
NewView (poboljšava kvalitet rada head tracking-a)
SV Mapper (opciono, za podešavanje džojstika za head tracking i kontinualni zum)

FS Autostart je takođe veoma korisna stvar, par reči o njemu >>

Hardware:

Web kamera (sa mogućnošću podešavanja ekspozicije i rada sa 30 frejma u sekundi)
Svetlosni marker (najčešće LED dioda zakačena na slušalice ili kačket)

Svetlosni marker

Za ovo samo treba malo mašte… Marker može biti bilo šta što se da postaviti na glavu igrača, tako da jasno emituje ili reflektuje tačkastu svetlost, dovoljno jaku da je software izdvoji iz okoline i kontinualno prati njene pokrete. Takođe, bitno je da marker ima širok ugao prostiranja svetlosti, tako da ga program može pratiti i kada je glava zaokrenuta za 90 stepeni u odnosu na normalan pogled ka monitoru.

Ja sam u početku koristio jednu običnu LED diodu napona 2.1V zakačenu na slušalice koja se napaja sa USB-a (5V) i kojoj je jedina mana nedovoljan vidljivi ugao.

Bolje rešenje može biti kineska LED lampa koja poseduje kaiš za glavu i koja trenutno košta oko 2 evra. Pošto na sebi ima 7 (9) dioda, ona daje dosta jaku svetlost, tako da i u prostoriji sa jakim osvetljenjem ne dolazi do konflikta između markera i svetla iz okruzenja.

Kao što vidite na slici, potrebno je sa nje skinuti zaštitno sočivo i reflektujuću površinu, upravo zbog proširenja ugla rasprostiranja svetlosti. Za baterije je dobro koristiti punjive jer traju duže, a moguće je uz malu doradu i samu lampu povezati na USB napajanje.

Podešavanje web kamere

Zbog različitih modela kamera, ova podešavanja variraju, najbitnije je isključiti automatsku ekspoziciju kamere, antiflicker i ostalu automatizaciju. Zatim manuelno naštelovati ekspoziciju, kontrast i gamu do toga da se svetlosni marker jasno izdvoji od okoline ili čak, ako je dovoljno jak, potpuno izoluje. To će takođe doprineti boljem frame rate-u kamere.

Rezultat bi trebao da bude sličan ovom na slici:

Ako ne znate kako da pristupite podešavanjima drajvera kamere, jedan od univerzalnih načina je recimo preko MSN Messenger-a. Kliknete na strelicu pri vrhu MSN prozora, zatim Tools> Webcam Settings> Advanced.

Napomena: Izbegavati web kameru Logitech Quickcam Express i slične modele iz niže klase njihovih kamera jer abnormalno opterećuju CPU.

Freelook podešavanje

Kada startujete ovaj program, zapazićete par horizontalnih slajdera koji se odnose na podešavanje osetljivosti na svetlost, kontinualnost pokreta, veličinu mrtvog ugla oko centra, tastera na tastaturi itd.

Na slici su moja trenutna podešavanja:

Threshold treba postaviti tako da je svetlosni marker jedini vidljivi objekat u prozoru. Takođe, svetlost markera treba biti što postojanijeg oblika, da ne varira previše jer će u igri doći do poskakivanja pogleda. Ukoliko na kameri imate prsten za manuelno podešavanje fokusa, zamućenje slike će ivicu markera učiniti manje krzavom i to će poboljšati kvalitet trackinga.

Smoothing se odnosi na kontinualnost pokreta, premalo Smoothing-a će dati krzave pokrete sa dosta poskakivanja, dok će preteran Smoothing biti neprecizan i "zanosiće" pogled. Ovo treba podesiti po sopstvenom ukusu.

Configure Keyboard opcija traži tastere koji će biti korišćeni za uključivanje/ isključivanje head tracking-a i centriranje pogleda. Bitno je podesiti da taster za centriranje bude isti onaj koji se koristi za centriranje pogleda u igri, tako da se jednim pritiskom pogled usmeri na centar i koordinate u programu resetuju na 0. Poželjno je taster za centriranje mapirati na džojstiku zbog česte upotrebe.

Softzone definiše veličinu mrtvog ugla oko centra unutar kog program ne prenosi kretanje u igru, čime izbegavamo smetnje prlikom nišanjenja.

Soften određuje koliko naglo će pogled preći iz mrtvog ugla u aktivnu površinu.

Sensitivity se globalno odnosi na brzinu kojom će se pogled u igri pomerati.

Kada podesite sve parametre, obavezno sačuvajte podešavanja jer program to neće uraditi automatski.

NewView podešavanje

NewView je tu radi poboljšanja odziva pogleda u igri u odnosu na input koji dobija za X i Y osu iz Freelook-a. Kada ga instalirate u željeni folder i startujete Config.exe, potrebno je kliknuti na dugme za dodavanje DLL fajla u registry. Ima još par podešenja u vezi sa Hat Switch-em u koje se nisam uplitao, već sam samo podesio krivu odziva za X i Y.

Kada u igri prebacite pogled na Gunsight mod (Shift + F1), zatim pritisnete Shift na tastaturi, ako se pogled automatski sa nišana spusti na kontrolnu tablu, znači da je NewView u funkciji.

SV Mapper podešavanje

Ako vaš džojstik nema svoj software za programiranje tastera, SV Mapper omogućuje da se svakom tasteru na stiku pridoda komanda za određeni taster na tastaturi. Tako da SV Mapper možemo iskoristiti za potrebe uključivanja-isključivanja i centriranja head trackinga, zatim za kontinualni zum, teamspeak itd.

Ja sam konkretno za potrebe head trackinga I kontinualnog zuma iskoristio hat switch, tako da njegovo pomeranje hat gore-dole daje zoom in-zoom out, pomeranje u levu stranu je za ukljucivanje i iskljucivanje head tracking-a, a pritiskom na desnu stranu centrira pogled.

Za potrebe Freelook-a, u SV Mapper-u je potrebno levom i desnom hat switch-u dodeliti tastere koje smo odabrali za on/off i centriranje, a za kontinualni zum gornjem i donjem switch-u dodeljujemo taster koji je u igri rezervisan za po jedan korak napred/nazad i dajemo im osobinu ponavljanja kao na slici da bi smo dobili kontinualni prelaz.

~Salute~

6 komentara:

Anonymous said...

svaka cast majstore :)

Predrag said...

Hmmmm... možda si me i ubedio da i ja napravim nešto slično. Jako me teško ubediti.
Trajče - 102nd-YU

Djordje Veljovic said...

thank you people :)

Nils said...

Greetins from Denmark!

Anonymous said...

Да, вероватно тако да је

Anonymous said...

треба проверити:)