Tobii Eye Tracker

Сайт: Virtuálna Univerzita Mateja Bela
Курс: Tvorba hier a používateľského zážitku
Книга: Tobii Eye Tracker
Напечатано:: Guest user
Дата: пятница, 5 июня 2026, 23:13

1. Sledovanie pohľadu (Eye Tracking)

Čo je to?

Sledovanie pohľadu, známe aj ako Eye Tracking, je technológia, ktorej hlavnou funkciou je sledovať/zaznamenávať pohyby a polohu očí vzhľadom na umiestnení hlavy človeka. Tieto údaje sa môžu použiť na určenie smeru pohľadu alebo bodu v prostredí, na ktorý sa osoba pozerá. Sledovanie pohľadu sa vykonáva pomocou špecialneho hardvéru a softvéru, pozostávajúceho z kamery a zdroja svetla (najčastejšie infračerveného). Kamery zaznamenávajú pohyby očí a softvér spracúva údaje. Vďaka tomu môžete sledovať a analyzovať rôzne aspekty činnosti očí, ako napríklad fixácia (okamih, keď sa oči zastavia a sústredia na jeden bod), saccades (rýchle pohyby očí) alebo žmurkanie. Taktiež vďaka tomu môžeme zistiť kam človek pozerá v určitom kontexte, napríklad na aké obrázky, videá, webové stránky alebo fyzické prostredie. To nám umožňuje hlbšie pochopiť, ako ľudia interagujú so svojím prostredím a na čo sa sústreďuje pozornosť.

Na čo sa používa?

Sledovanie pohľadu sa používa v mnohých odvetviach na rôzne účely.

Niektoré z nich sú:

  1. Výskum ľudského správania: Táto metóda sa často využíva pri výskume správania a pozornosti. Môže pomôcť pochopiť, na čo sa ľudia sústredia, a tým nám poskytnúť užitočné informácie o tom, ako funguje ľudský mozog.

  2. UX a UI dizajn: Sledovanie pohľadu sa často využíva pri testovaní používateľského rozhrania (UI) a zážitku (UX). Pomáha dizajnérom zistiť, na čo sa používatelia pozerajú, kedy a prečo, aby tak mohli vytvárať intuitívnejšie a efektívnejšie dizajny.Eye-tracking: a comprehensive guide - UX Design Course 100% Online with  Unlimited Mentor Support

  3. Marketing a reklama: V oblasti marketingu a reklamy sa sledovanie pohľadu využíva na testovanie efektívnosti reklamných kampaní. Môže pomôcť zistiť, na ktoré časti reklamy sa ľudia najviac pozerajú a ako sa na ne sústredia.
    Shelf Impact - Eye Tracking | Packaging Research | MM

  4. Medicína a psychológia: V medicíne sa sledovanie pohľadu používa na diagnostikovanie a liečenie rôznych porúch, vrátane autizmu, ADHD, parkinsonovej choroby a mnohých ďalších.

  5. Automobilový priemysel: V automobilovom priemysle sa sledovanie pohľadu využíva na zlepšenie bezpečnosti vodičov. Systémy sledovania pohľadu v autách môžu sledovať smer pohľadu vodiča a upozorniť ho, ak sa zdá byť unavený alebo aksa nevenuje dostatočnú pozornosť ceste.
    Eye tracking | Volkswagen Newsroom


1.1. História sledovania očí

Výskum sledovania očí sa začal skôr, ako by sme očakávali. Dnešná technológia sa môže zdať veľmi moderná, ale jej korene siahajú až do 19. storočia. História sledovania očí je zaujímavým príbehom pokroku a inovácií. Hoci táto technológia prešla dlhú cestu, stále má veľký potenciál ďalšieho vývoja a využitia v budúcnosti.

Stručný prehľad kľúčových momentov v histórii sledovania očí:

  • 19. storočie - prvé experimenty: Prvé pokusy sledovania pohybov očí sa uskutočnili v polovici 19. storočia. Francúzsky oftalmológ Louis-Emile Javar zistil, že namiesto jemných pohybov pri čítaní knihy, robia oči rýchle skoky, tzv. saccades.
  • 1900 - 1950 - ďalší pokrok: Systematický výskum sledovania očí sa začal v jeho dvadsiatom storočí. Edmund Huey vytvoril prvé zariadenie na sledovanie očí, ktoré zaznamenáva pohyby očí na film. Koncom roka 1935 Guy Thomas Buswell ako jeden z prvých použil eye-tracking na štúdium čítania a umeleckých diel.
    Eye-tracking: a comprehensive guide - UX Design Course 100% Online with  Unlimited Mentor Support
  • 1960 - 1980 - elektronický vek: V tomto období sa sledovanie očí stalo elektronickým. Robert Yerkes a John E. Rashbass prispeli k rozvoju techník, ktoré využívajú elektronické systémy na meranie pohybov očí. Technológiu zdokonalili v roku 1971 Monty A. Monty a J. W. Senders, keď predstavili prvé mobilné zariadenie na sledovanie očí.
  • 1980 - 2000 - digitálna revolúcia: S príchodom osobných počítačov a digitálnej technológie sa sledovanie očí stalo presnejším a rozšírenejším. Začalo sa používať v oblastiach, ako je psychológia, medicína, marketing a dizajn.
  • 2000 - súčasnosť: Sledovanie očí je v súčasnosti sofistikovanou technológiou, ktorá sa používa v mnohých odvetviach. Vďaka infračervenej technológii je sledovanie očí presnejšie, účinnejšie a jednoduchšie ako kedykoľvek predtým. Od použitia v dizajne UX a umelej inteligencie, cez lekárske aplikácie až po zlepšenie bezpečnosti v automobilovom priemysle.
    Tobii Pro screen-based eye tracking systems | Bitbrain

1.2. Ako funguje sledovanie očí

Aby ste pochopili, ako funguje sledovanie očí, je dôležité pochopiť základné kroky a technológiu tohto procesu.

  1. Získavanie obrazu: Na začiatku procesu prichádza na rad hardvér alebo zariadenie na sledovanie očí. Toto zariadenie obsahuje jednu alebo viacero jeho kamier, ktoré snímajú oči pozorovateľa.

  2. Osvetlenie: Mnohé moderné sledovacie systémy používajú na osvetlenie očí infračervené svetlo. Pomocou tohoto svetla môže kamera zachytiť dôležité detaily očí na neskoršiu analýzu, napríklad polohu zrenice a miesta odrazu na rohovke.

  3. Analýza obrazu: Zaznamenané obrazy očí sa analyzujú pomocou algoritmov na spracovanie obrazu. Softvér identifikuje polohu zreničky a miesta odrazu na rohovke. Tieto informácie sa použijú na výpočet smeru pohľadu a uhla pohľadu používateľa.

  4. Mapovanie zobrazenia: Na základe smeru pohľadu sa potom určí konkrétny uhol pohľadu na obrazovku alebo iné prostredie. Toto spojenie je kľúčové pre určenie, na ktorú časť obrazovky sa používateľ pozerá.

Presnosť sledovania očí môže závisieť od mnohých faktorov vrátane kvality použitého hardvéru a softvéru, konfigurácie osvetlenia, polohy a pohybu hlavy diváka. Napriek tomu moderné systémy sledovania očí ponúkajú vysokú úroveň presnosti a môžu byť veľmi užitočným nástrojom pre mnohé výskumné a komerčné aplikácie. 

1.3. Najbežnejšie metriky pri meraní očí

Na analýzu údajov získaných prostredníctvom sledovania očí sa používajú rôzne metriky.
Tu sú niektoré z najbežnejších:

  1. Fixácia: Sú to momenty, keď sa pohľad zastaví a zameria sa na konkrétny bod v prostredí. Trvanie fixácie a miesto, kde k fixácii dochádza, sú dôležitými ukazovateľmi záujmu a pozornosti.

  2. Saccade: Ide o rýchly pohyb očí. Saccade môžu poskytnúť informácie o tom, ako sa používateľ pohybuje v prostredí.

  3. Žmurknutie: Frekvencia a trvanie žmurknutia môžu poskytnúť informácie o únave a strese.

  4. Reakcia zreničiek: Ide o zmenu veľkosti zreničiek v reakcii na rôzne podnety. Naše zreničky sa napríklad rozšíria pri slabom osvetlení alebo keď sme emocionálne vzrušení.

  5. Dráha skenovania: Poskytujú užitočné informácie o tom, ako používateľ skúma vizuálne prostredie. 

1.4. Typy zariadení na sledovanie očí

Rôzne úlohy a aplikácie si vyžadujú rôzne typy zariadení na sledovanie očí. Výber zariadenia teda závisí od konkrétnych potrieb. Medzi faktory, ktoré treba zvážiť, patrí presnosť merania, spoľahlivosť, jednoduchosť použitia, mobilita a cena. 

Tu sú niektoré z najbežnejších:

  1. Náhlavné zariadenia: Tieto zariadenia môžu byť napríklad okuliare či prilby, ktoré obsahujú sledovacie zariadenia. Sú užitočné v prostrediach, kde sa očakáva, že sa používatelia budú pohybovať, alebo kde je potrebné presne sledovať pohyby hlavy a očí. Systémy virtuálnej a rozšírenej reality často používajú tieto typy zariadení.

  2. Mobilné sledovacie zariadenie: Sú navrhnuté tak, aby boli prenosné a mohli sledovať oči používateľa v rôznych prostrediach. Vyrábajú sa v rôznych formách, no najčastejšie sa pripevňujú na okuliare.

  3. Vstavané sledovacie systémy: Tieto systémy sú priamo integrované do zariadení, ako sú počítače, mobilné telefóny a automobily. Tieto systémy sa čoraz viac používajú v komerčných a priemyselných aplikáciách.


1.5. Kalibrácia

Kalibrácia je nevyhnutným krokom pri používaní technológie sledovania očí vrátane zariadenia Tobii Eye Tracker. Kalibrácia pomáha vyladiť systém sledovania pre každého používateľa a jeho jedinečné vlastnosti očí.


Na kalibráciu zariadenia Tobii Eye Tracker sú potrebné tieto kroky:

1. Pred začatím kalibrácie sa uistite, že zariadenie Tobii Eye Tracker je správne umiestnené. Zariadenie by malo byť pred vami, približne vo výške očí (hlavné ale je aby zariadenie vždy bolo vždy nasmerované na vaše oči).

2. Softvér Tobii (inštalačku nájdete v prílohách) má zabudovanú funkciu kalibrácie. Nájdete ju v nastaveniach softvéru alebo v používateľskom rozhraní. 

3. Počas kalibrácie sa na obrazovke zobrazí séria bodov, ktoré je potrebné sledovať. Je dôležité zachovať pokoj a sústrediť sa na každý bod, kým automaticky nezmizne.

4. Po dokončení procesu kalibrácie softvér analyzuje údaje a vytvorí model sledovania očí prispôsobený používateľovi. 

2. Tobii Eye Tracking - softvér na vývoj

Súpravy vývojárskych nástrojov (SDK) uľahčujú integráciu do aplikácií a hier. Spoločnosť Tobii poskytuje podporu a dokumentáciu pre Unity a Unreal Engine, takže vývojári môžu využívať výhody sledovania očí bez ohľadu na zvolenú platformu, sú ale medzi nimi určité rozdiely.

Unity vs Unreal: Which Game Engine Is Best For You | Xsolla


Unity:

SDK pre Unity je ideálny pre projekty, ktoré si vyžadujú rýchlu iteráciu a vytváranie prototypov. Unity je obzvlášť dobrý pri vývoji 2D a mobilných hier. Ak je teda vaša aplikácia zameraná na tieto oblasti, SDK pre Unity môže byť najlepšou voľbou. Unity je napísané v jazyku C#. Tento jazyk sa vo všeobecnosti považuje za jednoduchší a prístupnejší jazyk, čo je výhodné pre tých, ktorí sa práve učia programovať.


Unreal Engine:

Unreal Engine je známy svojou schopnosťou vytvárať vysokokvalitné 3D prostredia a má skvelé nástroje na vizualizáciu údajov. V tomto Engine sa používa jazyku C++, ktorý sa všeobecne považuje za sofistikovanejší jazyk. Ponúka však výhody v oblasti výkonu a ovládania, ktoré sú dôležité pre najnáročnejšie aplikácie.

2.1. Unity - import Tobii SDK

Po nainštalovaní Unity si v Unity Hub vytvoríme nový projekt


V zozname šablón zvolíme 2D, projekt si pomenujeme a vytvoríme



Po vytvorení projektu importujeme Tobii SDK cez Windows -> Package Manager



Kde cez + zvolíme možnosť pridania z disku a vyberieme package.json z rozbaleného Tobii Unity SDK (stiahnuť)




Importujeme Gaze Point Data



2.2. Bludisko

Po naimportovaní Tobii SDK pridáme obrázky do Resources (klasickým presunutím priamo do Unity), ktoré sme si stiahli v úvode


 

Pridanie bludiska do scény - presunieme obrázok s názvom maze do ľavej časti (Hierarchy), následne naň klikneme a v pravej časti (Inspector) nastavíme Scale na X = 5 a Y = 5, čím sa nám bludisko zväčší na presnú kocku

 

 

Pridanie bariér pre bludisko – do bludiska je potrebné pridať bariéry aby postavička nemohla chodiť cez steny. Cez tlačidlo Add Component pridáme Polygon Collider 2D, ktorý nám automaticky vygeneruje bariéry tam kde sú steny bludiska.

 

 

Úprava bariér - Môže sa stať, že niektoré bariéry sa nevytvorili správne a bude ich treba upraviť. V pravej časti zapneme Edit Collider a upravíme všetky zle vytvorené steny pomocou zeleného štvorca, ktorý sa nám zobrazí po prejdení kurzorom cez čiaru.

 

Po úprave ešte zablokujeme otvorené časti bludiska (tak ako vidieť na obrázku), aby postavička nemohla ujsť.



Hladšie steny v bludisku – aby sa postavička nezasekávala pri kolízií so stenou, pridáme Physics Material 2D. Klikneme pravým tlačidlom v resources a zvolíme Create -> 2D -> Physics Material 2D



Následne mu nastavíme Friction na 0 a presunieme celý materiál do Materialu bludiska



Pridanie postavičky
– pridáme do Hierarchy obrázok s názvom Ghost a rovnako ako pri bludisku mu nastavíme Scale na X = 0.15 a Y = 0.15 a Position na X = 0 a Y = 0. V Hierarchy zvolíme Main Camera a presunieme ju na ghost (pri kamere tiež nastavíme Position na 0). Vďaka tomuto sa bude kamera hýbať zároveň s postavičkou (teraz môžeme zase zvoliť ghost a presunúť ho v scéne do ľavého horného rohu (na začiatok bludiska).

 


Nastavíme bariéru a komponent na ovládanie postavičky – pridáme Componenty s názvom Capsule Collider 2D Rigidbody 2D, pri ktorom nastavíme Gravity Scale na 0 (aby postavička v bludisku neklesala) a pod Constraints zaškrtneme Freeze Rotation (inak by sa postavička začala točiť dookola)



Pohyb postavičky – na pohyb postavičky sa musí použiť script napísaný v jazyku C#. V Resources klikneme pravým a zvolíme Create -> C# Script, ktorý pomenujeme: MovePlayer a následne ho otvoríme. Automaticky sa nám vytvorila šablóna scriptu kde budeme používať funkciu Update (vyvoláva sa každý frame), do ktorej vložíme kód pre pohyb postavičky.

Prvotne si skúsime ovládanie cez WASD/šípky:

Keďže naša hra je 2D, musíme zisťovať len šírku a výšku a to pomocou Input.GetAxis(""), kde návratová hodnota je od -1 až po 1. Napríklad keď držíte ľavú šípku tak je -1, keď pravú tak 1 a keď ani jednu tak je hodnota 0.

float x = Input.GetAxis("Horizontal");

float y = Input.GetAxis("Vertical");

 

Postavičke budeme nastavovať rýchlosť (velocity) pohybu daným smerom. Ovládať budeme konkrétne komponent RigidBody2D (vytvorili sme pri tvorbe postavičky), ktorý vyhľadáme cez GetComponent. Ak chceme zvýšiť rýchlosť postavičky, stačí do Vector2 za x a y dosadiť napríklad *3.

GetComponent<Rigidbody2D>().velocity = new Vector2(x*3, y*3);

 

Celý kód


Po spustení by sa nám postavička ešte nedala ovládať, preto potrebujeme priradiť script ku konkrétnemu objektu (ghost). Stačí zobrať script z Resources a presunúť ku komponentom. Následne môžeme spustiť hru (horné tlačidlo play).

 

Pridanie kľúča a dverí – na prejdenie bludiska potrebujeme východ (dvere), no aby to nebolo príliš jednoduché, pridáme do bludiska kľúč na odomknutie dverí. Do Hierarchy vložíme obrázky keyexit. Scale kľúča nastavíme X a Y na 0.05 (presunieme ho napríklad do ľavého dolného rohu) scale dverí nastavíme na 0.1 a presunieme ho do pravého dolného rohu (kde bude náš exit) tak, aby do nich postavička vedela naraziť.


Nastavenie kolízie kľúča a dverí – pri objektoch keyexit vytvoríme komponent Polygon Collider 2D. V komponente kľúča zaškrtneme Is Trigger, vďaka čomu budeme vedieť zistiť kolíziu postavičky a kľúča.


V scripte MovePlayer pridáme premennú a funkciu čo s

a vyvolá po prejdení cez objekt s tagom „key“

public static bool exitKey = false;

 

private void OnTriggerEnter2D(Collider2D other)

{

if (other.tag == "key") {

            exitKey = true;

}

}

 

Taktiež pridáme funkciu, ktorá sa vyvolá pri kolízií hráča a objektu s tagom „exit“

private void OnCollisionEnter2D(Collision2D other)

{

if (other.gameObject.tag == "exit" && exitKey) {

            print("toto je koniec!");

      }

}


Celý kód



Nastavenie tagov
– aby sme mohli v scriptoch rozlišovať objekty, musíme im nastaviť tagy.

Pridáme 3 tagy: ghost, key, exit
 

Po vytvorení tagov nastavíme všetkým trom objektom správny tag zo zoznamu.


Vymazanie kľúča – po tom čo hráč získa kľúč, odstránime celý objekt. Vytvoríme si nový script s názvom Key, následne vložíme funkciu, ktorá sa vyvolá len keď cez kľúč prejde objekt s názvom „ghost“, teda postavička.

private void OnTriggerEnter2D(Collider2D other)

{

if (other.tag == "ghost") {

            Destroy(gameObject);

}

}

 

Po uložení presunieme script ku komponentom objektu key. Inak by script nefungoval.

Celý kód


Teraz môžeme hru otestovať, a v prípade že postavička zobrala kľúč, tak sa po kolízií s exitom zobrazí v konzole text.


Ovládanie pomocou Eye Trackeru – v scripte MovePlayer pridáme do funkcie Update nasledujúci kód:

GazePoint gazePoint = TobiiAPI.GetGazePoint();

if (gazePoint.IsRecent())

{

   // -0.5 z dôvodu že kamera je vždy v strede a gazePoint počíta jednotky z rohu hernej obrazovky

   double x = (gazePoint.Viewport[0]-0.5);

   double y = (gazePoint.Viewport[1]-0.5);

   GetComponent<Rigidbody2D>().velocity = new Vector2((float)x*7, (float)y*7);

}

Pridáme Tobii.Gamingzakomentujeme časť kódu pre pohyb WASD

using Tobii.Gaming;


Celý kód



Možnosť ukončenia hry
– v scripte MovePlayer pridáme do funkcie Move podmienku na sledovanie stlačenia ESC (fungovať bude až pri skompilovanej hre)

if (Input.GetKeyDown(KeyCode.Escape)) {

Application.Quit();

}


Prejdenie bludiska – po ukončení bludiska sa zobrazí výherná obrazovka. V scripte MovePlayer pridáme do funkcie OnCollisionEnter2D:

SceneManager.LoadScene("winscreen");


Uložíme aktuálnu scénu pod názvom Level1 a uložíme do priečinku Scenes v projekte



Vytvoríme novú scénu File -> New Scene



 

Hierarchy pridáme 3D object -> Text – TextMeshPro a následne vyskočí okno kde Importujeme TMP



Upravíme vytvorený nápis a vycentrujeme



Vytvoríme nový script NewGameResources, vďaka ktorému po stlačení medzerníku začneme novú hru. Do scriptu vložíme:

using UnityEngine.SceneManagement;


a do funckie Update

if (Input.GetKeyDown("space")) {

SceneManager.LoadScene("Level1");

}

 

Po uložení tento script presunieme do komponentov Textu.

Celý kód


Scénu uložíme pod názvom winscreen

Aby sme sa vedeli presúvať na inú scénu, potrebujeme všetky pridať do Build Settings File -> Build Settings... Vymažeme odtiaľ starú scénu a pridáme z pričinka Scenes scény Level1, winscreen a zatvoríme. 


Hru už len otestujeme...