← Zpět na přehled PVR
MI-PVR / NI-PVR • Pokročilá virtuální realita

Ovládání a user interface

HCI, 3D rozhraní, výběr a manipulace s objekty, pohyb v prostředí, ovládání aplikace a návrh UI pro aplikace virtuální reality.

Petr Pauš
FIT ČVUT v Praze
Úvod • HCI

HCI – Human-Computer Interaction

Tradiční přístup

  • Vstupní zařízení (input device)
  • Způsob interakce
  • Zpětná vazba

Gulf of execution

  • Rozdíl mezi tím, co uživatel chce udělat, a tím, co mu rozhraní umožňuje přímo provést.
  • Například: Čísla stránky ve Wordu (od 3. strany)
    Cíl: Začít číslovat dokument až od 3. strany.
    Akce v systému: Vložit Konec oddílu (Section Break), odpojit záhlaví/zápatí a až poté nastavit číslovanou řadu od 1.
    Proč je to Gulf of Execution Záměr je jednoduchý, ale provedení vyžaduje znalost skrytých mechanik.

Platí i pro VR

  • Stejné pojetí: vstup, interakce, vazba: ale větší možnosti vstupů (pohled, ruce, hlava, celé tělo).
  • Pohlcení uživatele do prostředí: uživatel je součástí aplikace, rozhraní nemůže být „mimo“ scénu jako na monitoru.

Důsledek pro návrh

  • Chybu, které uživatel ani nevšimne, v klasickém UI odhalí pohled na monitor; ve VR ji ohodnotí až zpětně, protože ovlivnila jeho požitek z prostředí.
  • Rozhraní proto musí okamžitě potvrzovat každou akci: prvek, na který uživatel sahá, má na to reagovat ještě před zmáčknutím tlačítka.
Úvod • 3D rozhraní

3D rozhraní

Kombinace vstupu a zobrazení

Vstup a zobrazení jsou dvě nezávislé osy: aplikace mohou kombinovat 2D i 3D na straně vstupu i na straně výstupu.

  • 2D vstup, 3D zobrazení: např. Blender (myš, klávesnice, scéna na monitoru).
  • 3D vstup, 2D zobrazení: např. 3D myš pro SAGE.
  • 3D vstup, 3D VR zobrazení: virtuální realita; obě osy jsou prostorové.
Vstup Zobrazení Příklad
2D (myš) 3D na monitoru Blender, Unity editor
3D 2D na monitoru SAGE
3D (ruce, head) 3D headset VR aplikace

Proč to řešit

  • 3D vstup + 3D zobrazení klade na UI zcela nové požadavky: prvek musí být umístěn v prostoru, musí být naleznutelný a musí být dosažitelný.
  • Při 3D vstupu s 2D zobrazením (3D myš) má uživatel stále referenční rámec monitoru: rozhraní se navrzuje mnohem snáze.
Úvod • Problémy

Problémy s 3D rozhraním

Prostorový vstup uživatele

  • Ve 2D je rozhraní dáno mřížkou, standardy a dlouhodobě zažitými konvencemi.
  • Ve 3D prostoru z toho moc neexistuje nebo není tak rozšířené
  • Vstup je navíc fyzicky náročnější.
  • Málo definovaných standardů: žádná „GUI knihovna pro 3D“.
  • Málo nástrojů pro návrh 3D UI: wireframingové nástroje počítají s 2D plochou.
  • Menší přesnost vstupu než ve 2D a únava paže při delší práci nataženou rukou.

Výhoda i nevýhoda

  • Menší omezení než ve 2D: prvky nemusí být omezeny plochu monitoru, mohou existovat v hloubce a kolem uživatele.
  • Složitější rozložení prvků: svoboda prostoru znamená, že prvek může být uživateli skrytý za zády, mimo zorné pole nebo v nedostatečné velikosti.
Dopad na design
  • Protože standardy víceméně chybí, každá aplikace si rozhraní navrhuje sama: uživatel si musí zvykat na nové konvence.
  • Důležitost uživatelského testování: jasné věci z pohledu tvůrce mohou být v headsetu uživatelům nejasné.
Úvod • Ukázka

Ukázka UI: čtyři kategorie

Dělení „2D UI ve 3D“ vs. „přirozené 3D UI“ je jen popisné. Zavedená herní a HCI terminologie rozlišuje čtyři kategorie, které se ve VR běžně kombinují (Fagerholt & Lorentzon, 2009: čtyři kategorie herního UI podle vztahu ke světu a postavě).

Diegetické UI

Prvek je součástí světa a příběhu: hodinky na zápěstí, displej na přilbě, obrazovka počítače v místnosti. Postava by ho viděla také. Dead Space

Non-diegetické UI

Čistý HUD překrytý přes obraz: stav života, munice, kompas. Postava ho nevidí, existuje jen pro hráče.

Spatial UI: ploché prvky orientované ke kameře
Spatial UI: panel orientovaný ke kameře („billboard“)

Spatial / prostorové UI

Prvky plovoucí ve světě, ukotvené k pozici nebo povrchu: panely, menu u ruky, štítky nad objekty. Ve VR nejčastější.

Meta UI

Efekt přes celé zorné pole, který mění samotný obraz: krev při zranění, mlha, rozmazání, vinětace. Nese informaci o stavu uživatele.

Diegetické UI: ovládání objekty prostředí
Diegetické UI: páka a tlačítka jako součást světa
▶
Ukázka UI ve VR
▶
Další ukázka UI
Úvod • UX a UI

UX a UI ve VR

VR aplikace se skládají z

  • Prostředí: scéna, objekty, krajina
  • Uživatelského rozhraní: prvky pro ovládání a informaci o stavu

Několik přístupů k UX

  • Spíš prostředí: převažují diegetické prvky: veškerá informace je součástí světa, UI prakticky neexistuje.
  • Spíš UI: převažují non-diegetické a prostorové prvky: bohaté menu, panely a HUD nad jednoduchým prostředím.
  • Většina aplikací je někde mezi: a poměr je třeba vědomě zvolit.
Aplikace postavená na bohatém UI
Aplikace, kde je vše v prostředí
Vše v prostředí
Aplikace se složitým UI
Složité UI
Interakce • Přehled

Běžné akce ve 3D

Pět kategorií činností

V jakékoliv aplikaci uživatel opakuje stále stejné kategorie akcí.
Každá má vlastní způsoby implementace i vlastní úskalí.

  • Interakce s objekty: výběr a manipulace
  • Pohyb: orientace a přesun v prostředí
  • Pohyb v UI: procházení menu a panelů
  • Systémové nastavení: provedení změny nastavení aplikace
  • Systémový stav a Feedback: co se právě děje.

Na co myslet

Akce Hlavní otázka
Výběr objektu Jak uživatel zvolí „tenhle“?
Manipulace Jak změní jeho vlastnosti?
Pohyb Jak se dostane jinam bez nevolnosti?
Nastavení Jak najde a potvrdí volbu?
Pohyb v UI Jak prochází nabídky?
Systémový stav Jak ví, co se právě děje?
Interakce s objekty • Výběr

Interakce s objekty: výběr

Fáze výběru

  • Indikace, který objekt je interaktivní: uživatel musí na první pohled poznat, čeho se dá dotknout.
  • Rozlišení mezi kandidáty: více objektů ve směru pohledu.
  • Výběr objektu: určení konkrétního objektu.
  • Přesun k objektu: pokud je mimo dosah.
  • Potvrzení a možnost výběr zrušit.
  • Spuštění manipulace/editace.

Fittsův zákon

Čím je cíl dále a čím je menší, tím déle trvá se na něj trefit a tím více chyb uživatel udělá.

Problémy v aplikaci

  • Vzdálenost od uživatele: objekt mimo dosah ruky.
  • Viditelná velikost: daleký objekt zaujímá úhlově jen malý prostor.
  • Množství objektů v oblasti: více kandidátů ve směru pohledu.
  • Okluze (překážky): objekt je vidět, ale paprsek k němu neprojde.

Problémy ovládání

  • Motorická přesnost a třes ruky: dlouhý paprsek je úhlově extrémně citlivý.
  • Únava (gorilla arm): nutnost mít ruku v pozici pro zamíření.
Fitts's law

Fittsův zákon ve VR

Předpovídá čas potřebný k dosažení cíle na základě jeho vzdálenosti $D$ a velikosti $W$.

$$\text{Čas (MT)} \propto \log_2\left(\frac{2 \cdot \text{Vzdálenost} D}{\text{Velikost} W}\right)$$ Čím je cíl dále a čím je menší, tím je zásah pomalejší a náchylnější k chybám.

Jak se mění ve 3D a VR?

  • Úhlová velikost vs. vzdálenost: Ve 3D rozhoduje i úhlový záběr objektu z pohledu uživatele.
  • Ray-casting (paprsek/laser): Bleskový pohyb, ale třes ruky na dálku výrazně zmenšuje efektivní velikost cíle ($W$).
  • Direct Touch (přímý dotyk): Fyzický pohyb paže, vysoká přirozenost, ale dochází k únavě (Gorilla Arm).

Klíčové UX dopady pro VR design

  • Zvětšení Hitboxu (Snap & Cone-casting): Paprsek nemusí být čára: využívá se kuželový výběr nebo magnetické přitahování k prvkům.
  • Zakřivené panely (Curved Canvas): Udržují konstantní vzdálenost ($D$) ke všem prvkům UI na obrazovce.
  • Kruhová menu (Pie / Radial Menus): Všechny položky mají stejnou vzdálenost a obrovskou úhlovou výseč $\rightarrow$ minimální čas výběru.
  • Prostorové zakotvení u těla: Umístění UI na zápěstí či do dlaně (diegetické UI) dramaticky zkracuje vzdálenost $D$.
Interakce s objekty • Výběr

Možnosti implementace výběru

Ruka / objekt na ovladači

  • 1:1 mapování ruky na ovladač: ruka kopíruje pohyb ovladače.
  • Přirozené, nejméně se s ním chybuje.
  • Jen na krátké vzdálenosti: v dosahu paže.

Paprsek (ray-casting)

  • Vhodné na dlouhé vzdálenosti: dosáhnu kamkoliv uvidím.
  • Přesné, ale jen pro první objekt ve směru paprsku.
  • V Unity standardní řešení (XR Ray Interactor), výchozí volba většiny frameworků.

Menu (2D)

  • V okolí ruky či paprsku se zobrazí menu s blízkými objekty.
  • Řeší překážky, které paprsek nepřekoná: uživateli nabídne kandidáty, ke kterým nevidí.
  • Položky menu se dají řadit podle vzdálenosti nebo významu.

Prodloužená ruka

  • Na krátké vzdálenosti normálně, na delší nelineárně: ruka se „natáhne“ (go-go gadget technika).
  • Kombinuje přirozenost dosahu v blízkosti s dosahem paprsku.
Interakce s objekty • Architektura

Architektura XR Interaction Toolkitu

Všechny čtyři metody výběru se v Unity implementují jedním návrhovým vzorem. Jeho pochopení je nejlepší způsob, jak přestat psát interakce „od nuly“ pro každý objekt zvlášť.

XRBaseInteractor

Kdo akci provádí

  • Ruka, paprsek, přímý dotyk: každá metoda je jiný interaktor.
  • Nemá referenci na cílový objekt: jen hlásí „mám zásah“ a „je aktivován“.
  • Vyměnit ovladač za ruku tedy znamená vyměnit interaktor, nic víc.
XRBaseInteractable

Na co se působí

  • Tlačítko, páka, uchopitelný objekt: cíl interakce.
  • Neví, čím je ovládán: jen přijímá události hover, select a activate.
  • Objekt sám definuje, jak se vizuálně tváří v každém stavu.
Interaction Manager

Spojení obou stran

  • Páruje interaktory s interaktables podle kolizí a rozesílá události oběma směry.
  • Řeší prioritu, když na jeden objekt míří víc interaktorů.
  • Díky tomu lze přidat novou metodu výběru bez zásahu do kódu objektů.

Proč na tom záleží

Je to aplikace principu „composition over inheritance“ z přednášky o Unity. Kdyby interaktor znal svůj cíl přímo, přidání hand trackingu by znamenalo přepsat každé tlačítko v projektu. Takhle stačí přidat jeden interaktor: a všechna stávající tlačítka fungují dál, včetně vizuálních stavů.

Interakce s objekty • Manipulace

Manipulace s objekty

Co manipulace znamená

  • Změna vlastností objektu: velikost, rotace, vzhled, přesunutí.
  • Použití nějakého nástroje: štětec, spojení, rozdělení, barva.

Možnosti

  • Ruka: přímé uchopení a přemisťování objektu.
  • HOMER: Hand-Centered Object Manipulation Extending Ray-Casting: kombinuje paprsek (přesun na dálku) s rukou (doladění v blízkosti).
  • Zmenšení / zvětšení prostředí: místo manipulace objektu se změní měřítko světa, tím se objekt „sám přiblíží“.

Zkopírovaný mini svět: reprezentace scény v měřítku 1: desítky, držená v ruce. Uživatel sahá na miniatury a změny se promítají do velké scény.

  • Řeší vzdálenost i únavu: ovladač s miniaturní scénou drží u hrudníku.
  • Nevýhoda: miniatury jsou malé a hůř se cílí na detail.
▶
HOMER: paprsek + ruka
▶
VR Interakce v unity
Nelineární ruka

Nelineární ruka (Go-Go gadget technika)

Přímý úchop rukou (Direct Touch) je velmi intuitivní, ale omezuje uživatele jen na objekty v dosahu jeho fyzické paže.

Princip

  • V blízkosti těla (přirozená zóna): virtuální ruka kopíruje pohyb reálné ruky v poměru $1:1$. Vzdálenost virtuální ruky $r_v$ se rovná vzdálenosti reálné ruky $r_r$.
  • Vzdálená zóna: čím více je ruka natažená, tím víc zrychluje. $r_v = r_r + k \cdot (r_r - D)^2$, kde $r_r$ je vzdálenost reálné ruky od těla, $D$ je práh natažení a $k$ je koeficient zrychlení).
▶
Go-Go technika

Výhody Go-Go techniky

  • Zachování metafory přímého úchopu: Na rozdíl od paprsku (Ray-casting) přímý úchop rukou.
  • Snadná rotace a manipulace: Objekt v dlani je přirozenější než na konci dlouhé pevné tyče/paprsku.
  • Jednoduché zaučení: Uživatel okamžitě pochopí princip „natáhnu ruku víc a ona se prodlouží“.

Nevýhody Go-Go techniky

  • Snížená přesnost na velkou vzdálenost: nelineární pohyb náchylný na velké změny na dálku.
  • Fyzická únava: neustále natažená ruka od těla vede k rychlé únavě ramene.
  • Problém s kolizemi: Prodloužená virtuální ruka prochází prostorem a může nechtěně vrážet do jiných virtuálních objektů.
Interakce s objekty • Dvě ruce

K dispozici 2 ruce

Symetrická vs. nesymetrická interakce

  • Symetrická: obě ruce dělají stejnou akci (podnos, přenášení velkého objektu, natahování luku).
  • Nesymetrická: každá ruka má jinou funkci (levá drží objekt, pravá s ním manipuluje).
  • Ovladače i hand tracking dávají k dispozici 6 stupňů volnosti na ruku (6 DoF: pozice + rotace).
  • Většina aplikací využívá nesymetrický režim, ale u fyzikálních úkonů (zvednutí, otočení) se symetrie vyplatí.

Role rukou

  • Nedominantní ruka: pro nepřesnou manipulaci: podepření, přechyťování, nastavení hrubé polohy a orientace.
  • Dominantní ruka: pro přesné doladění nastavovaných parametrů: jemná rotace, zarovnání, doladění hodnot.

Důsledek pro UI

  • Prvky by měly jít ovládat jednou i oběma rukama: nedominantní ruka nesmí být zbytečně vázaná.
  • Uživatelé jsou praváci i leváci: rovnocennost obou rukou je nutnost, ne bonus.
▶
Ukázka bimanuální interakce
Interakce s objekty • Hand tracking

Hand tracking a gesta

Interakce bez ovladače

Sledování rukou je dnes standardem: podporuje ho OpenXR i Meta Quest a Apple Vision Pro bez přídavného zařízení. Uživatel má volné ruce, ale přichází o vše, co ovladač nabízel.

Klíčový problém: chybějící haptika

  • Prst projde skrz virtuální tlačítko: stisk není cítit a uživatel si není jistý, zda akce proběhla.
  • Neexistuje spoušť ani tlačítko pro potvrzení volby: nahrazuje je gesto, a to musí být rozpoznáno.
  • Odezvu proto musí nést obraz a zvuk, výrazně silnější než u ovladače.
▶
Interakce bez ovladačů

Základní gesta

  • Pinch: spojení palce a ukazováčku; nahrazuje stisk tlačítka a je nejspolehlivěji rozpoznatelné.
  • Grab: sevření dlaně; uchopení objektu, aktivuje se až při dostatečném sevření, aby nedocházelo k planým zásahům.
  • Raycast z ukazováčku: paprsek z prstu pro výběr na dálku.
  • Palm / point: dlaň pro vyvolání menu, ukázání pro zamíření.

Co si pohlídat

  • Ruce se navzájem zakrývají: při překřížení kamerám mizí prsty, stav se musí „držet“, ne skokově měnit.
  • Ruce unaví: gesto ve vzduchu nemá oporu; delší práci dopřejte s ovladačem.
  • Přechod režimů: uživatel musí mít možnost volby a vědět, jak se přepíná.
Interakce s objekty • Fyzika

Fyzikální vs. kinematická interakce

Když uživatel objekt uchopí, musíme se rozhodnout, jak přesně bude následovat ruku. Jsou to dva zásadně odlišné přístupy s odlišnými důsledky pro imerzi i výkon.

Kinematická interakce

Objekt pevně následuje ruku: každý snímek se přepíše jeho transformace. Fyzikální engine je vypnutý (isKinematic).

  • Výhody: absolutně přesné a stabilní, nejde přes ruce, levné na výpočet.
  • Nevýhody: objekt prochází zdí a jinými objekty: ruka „propašuje“ předmět skrz překážku.
  • Hodí se pro: nástroje, ukazovátka, lžíce, psací potřeby: kde přesnost dráhy je důležitější než fyzika.

Fyzikální interakce

Objekt je k ruce přitahován silami: Joints, pružiny, změna rychlosti. Ruka je cíl posunu objektu.

  • Výhody: objekt neprojde zdí, reaguje na okolí a na váhu: vyšší imerze, předmět se „chová jako věc“.
  • Nevýhody: výpočetně i implementačně náročnější; špatně nastavená tuhost vede k vibracím a oscilaci na hranici těles.
  • Hodí se pro: přenášené předměty, dveře, zásuvky, skládání a montáž.

Možná kombinace

1. držení

Po uchopení přepnout na kinematický režim: objekt přesně sedí v ruce a nekmítá.

2. uvolnění

Při puštění vrátit fyziku a předat rychlost ruky, aby předmět letěl přirozeně.

3. náraz

Detekovat, že kinematický objekt narazil do překážky, a uvolnit ho: jinak zdí projde.

Interakce s objekty • Doporučení

Doporučení

Neexistuje jedno univerzální nejlepší řešení: vždy záleží na vzdálenosti, přesnosti a účelu interakce.

  • Využít všechny možnosti ovladače: tlačítka, trigger, grab, polohu i hand tracking.
  • Pokud možno snížit stupně volnosti: méně os znamená méně chyb (např. otáčení kolem jedné osy).
  • Rozlišujte vzdálenost:
    • Na blízko (Near-field): Přímý úchop (Direct Touch / Snap): nejpřirozenější a nejrychlejší.
    • Na dálku (Far-field): Paprsek (Ray-casting / Go-Go): spolehlivý na výběr, náročnější na přesnou rotaci.

Volit přirozené řešení

  • Využít běžné možnosti: to, co uživatel znal z klasických aplikací a her, nepotřebuje vysvětlovat.
  • Vlastní metodu zavádět, jen pokud bude opravdu přínosná: vlastní interakce si vždy vyžádá naučení.
  • Možno využít prostředí: tlačítka, páky, kolečka a další prvky světa jako ovládací prvky.

Jak to ověřit

  • Měřit, ne hádat: porovnat čas úkolu a chybovost u dvou metod na stejné skupině uživatelů: testovat v headsetu, ne na monitoru.
  • Sledovat únavu: metoda nejrychlejší na deset pokusů může být po deseti minutách nepoužitelná.
Interakce s objekty • Doporučení

Doporučení (shrnutí)

Parametr Přímý úchop (Direct Touch / Grab) Vzdálený výběr (Ray-casting)
Primární použití Blízké objekty (v dosahu paže) Vzdálené objekty, malé cíle
Výhody Vysoká imerze, intuice, snadná rotace Rychlý dosah bez nutnosti fyzického pohybu
Možný problém Absence hmatového odporu (prsty prochází skrz) Třes ruky na dálku, těžkopádné otáčení v $X, Y, Z$
Řešení problému Vizuální zvýraznění + Haptická vibrace Přitahování (snapping) + 3D Transform Gizmo
Pohyb • Přehled

Pohyb v prostředí (Locomotion)

Základní principy

  • Teleport: posun z jednoho bodu do druhého bez plynulého pohybu.
  • Plynulý pohyb ovladačem: plynulý posun, typicky na thumbsticku.
  • Přirozený pohyb: Skutečná chůze v prostorově omezeném měřítku (Room-scale). Nulová nevolnost, ale omezený prostor.

Rozdíl oproti monitoru

Totéž řešení se na monitoru zdá být v pořádku, v headsetu může způsobovat problémy.

Proč je pohyb komplikovaný

  • Při plynulém pohybu se uživatel hýbe, ale jeho tělo stojí: nesoulad vestibulárního systému s tím, co vidí, způsobuje nevolnost.
  • Proto je locomotion ve VR vždy kompromis mezi volností způsobu pohybu a komfortem uživatele.

Na co zaměřit při implementaci

  • Ví uživatel předem, kam a jak zorientovaný dopadne?
  • Je přesun okamžitý, nebo plynulý: a co se děje během něj?
  • Dokáže se orientovat ve velkém prostoru bez toho, aby se ztratil?
  • Ztrácí během přesunu přehled o okolním prostoru (Spatial awareness)?
Pohyb • Teleport

Teleport

Jak funguje

  • Implementováno ve většině frameworků: výchozí pohyb ve VR.
  • Teleport na místo označené paprskem: uživatel namíří, potvrzuje tlačítkem.
  • Přímý paprsek: vidím cíl, zaměřím přímo na něj.
  • Zaoblený paprsek: křivka „hodí“ cíl za překážku nebo mimo dosah přímého pohledu.
▶
Různé metody pohybu

Doporučení: Nedělat přímý skok

  • Během přesunu ztmavit obrazovku (fade-to-black, vignette).
  • Přidat zvuk a krátkou animaci dráhy.
  • Okamžité vystřídání dvou pohledů bez mezikroku způsobuje motion sickness.

Co doladit

  • Označení cíle: kruh / terč na podlaze, aby bylo jasné, kam uživatel dosedne.
  • Omezení míst: na zeď či stůl se teleportovat nemá; paprsek musí testovat kolizi.
  • Rotace při došlapu: volitelné stočení směrem od cíle (strafe / snap turn) usnadňuje orientaci.
Pohyb • Posun mezi body

Plynulý posun mezi body

Jak se posunout

  • Označení nové pozice a plynulý posun kamery (uživatele): může způsobovat nepříjemný pocit.
  • Pohyb pomocí skutečné chůze: nejpřirozenější, ale omezený rozměrem hrací plochy (Room-scale).
  • Využít další zařízení: trenažér, chodítko, křeslo, omnidirectional treadmill.
  • Posun do bodu pohledu: kam se podívám, tam se posunuji.

Orientace

  • Značení cesty ve velkém prostoru: šipky, trasa na zemi, světelné body.
  • Vytvořit záchytné body: aby se uživatel neztratil.
  • Mapa: pohled shora nebo mini mapa na zápěstí.
Označení cesty a přesun mezi body
▶
Pohyb v Unity
Pohyb • Posun mezi body

Posun mezi body: techniky

Techniky posunu

  • Posun do bodu pohledu: přirozené, ale tvrdé na nevolnost.
  • „Tahání lana“: posun uchycením se objektu v prostoru a přitažením se k němu.
  • Posun vlastního avataru na zvolené místo: svět stojí, pohybuji se jen já.
  • Chůze na místě: napodobení kroku in-place chůzí.

Velký prostor

  • Značení cesty ve velkém prostoru: trasa, kterou uživatel vidí celým zorným polem.
  • Vytvořit záchytné body: zabránit ztracení uživatele v prostoru.
  • Mapa: kontrola polohy, aniž by se musel otáčet dokola.
Posun pomocí uchycení v prostoru

Kdy kterou volit

  • Uzavřená scéna s objekty po ruce: tahání lana; pohyb iniciuje sám uživatel uživatelem, nevolnost je nižší.
  • Rozlehlý prostor: teleport + mapa; plynulý posun na dlouhou dráhu vynechat.
Ovládání aplikace

Ovládání aplikace

Co všechna řešení musí obsahovat

  • Vypnutí, otevření souboru, nastavení grafiky, fyziky …
  • Nutné použít jednoduché kroky: žádná vícestupňová dialogová okna jako na desktopu.
  • Změny by měly být okamžitě vidět: posuvník mění náhled hned, ne po potvrzení.

Kam umístit menu

  • Prvky na zdi: panel v prostoru, který je součástí scény.
  • Na prstech: menu se objeví, když uživatel zvedne dlaň (systém Universal Menu).
  • „Tablet v ruce“: plochý panel držený v ruce, který si uživatel sám polohuje.
  • „Pie menu“: kruhové menu kolem ruky; volba směrem, tedy rychlé a bez čtení.
Kruhové pie menu

Shrnutí

  • Uživatel v headsetu nechce zadávat text a nechce hledat nabídku v hierarchii: ovládání musí být na dva, tři zásahy.
  • Polohovatelný panel („tablet“) je nejuniverzálnější: uživatel si ho sám přiblíží a nakloní do komfortního úhlu.
  • Pie menu je nejlepší tam, kde možností není mnoho a uživatel je zná z minula.
Návrh UI

Návrh UI

Standardní metody fungují

Postupy z klasického návrhu UI platí i pro 3D, jen je třeba trochu pozměnit: všechny pracují s 2D plátnem a je třeba je převést do prostoru.

  • Wireframes a blueprint: i pro 3D se rozložení navrhuje náčrtem, jen přibývá pohled shora a řez prostorem.
  • Volba velikosti v prostoru: 1 unit = 1 m; prvek musí být čitelný ve zvolené vzdálenosti.
  • Typografie: fonty, velikosti písma, barvy, kontrast, řádkování; text daleko menší než několik desítek centimetrů je v headsetu neostrý.
  • Uživatelské testování: v headsetu, s reálnými uživateli, na reálném úkolu.
Náčrtek rozložení UI v prostoru Náčrtek rozložení UI v prostoru
  • Velikost (úhlová): UI prvky by měly zabírat alespoň 3° až 4° zorného pole (FOV).
  • Doporučená úhlová velikost písma je kolem 3,45° (přibližně 6 cm na výšku při vzdálenosti 1 metru, 13 cm při 2 metrech).
  • Bezpatková písma, medium, bold.
  • Nepoužívat čistě černou a bílou: zátěž pro oči.
  • Kontrastní kombinace: šedá/černá na světlém, tmavá na světlém.
Návrh UI

Návrh UI: interakce a vazba

Eliminace chyb

  • Zabránit nechtěnému „kliknutí“: prvek se aktivuje až při puštění prstu, ne při stisku („hover-then-commit“ chování).
  • 3D není vždy nejlepší: plochý panel je občas čitelnější a přesnější než prostorové tlačítko.
  • Hybridní UI: 3D objekty pro interakci se světem, 2D prvky tam, kde se čte a zadává.

Zpětná vazba je důležitá

  • Animace: stisk, zvětšení, rozsvícení, povrchový efekt.
  • Zvuky: kliknutí, potvrzení, zamítnutí; liší stav „označeno“ od „potvrzeno“.
  • Haptická odezva: vibrace ovladače v okamžiku zásahu do prvku.
Animovaná zpětná vazba prvku
Zpětná vazba 3D prvku
„Najeto“ vs. „stisknuto“

Haptika: od vibrací k silové odezvě

  • Vibrace (rumble): dnešní standard ovladačů; rozlišuje jen intenzitu a trvání, nesdělí směr ani tvar objektu.
  • Adaptivní triggery (Force feedback): spoušť klade odpor podle drženého objektu: tuhý u kovu, měkký u gumy, se zarážkou na konci zdvihu.
  • Haptické vesty a rukavice: odezva na těle či prstech; nasazují se v enterprise VR pro nácvik montáže a chirurgických postupů.
  • Pravidlo: haptika musí být okamžitá a krátká: zpoždění nad ~50 ms uživatel vnímá jako chybu aplikace.
Návrh UI

Návrh UI: prostor kolem uživatele

Využít prostor kolem uživatele

  • Možnost využít prostoru kolem uživatele: panely mohou stát vlevo, vpravo i za ním, nikoliv jen „na monitoru“.
  • Dodržet zorné pole v kombinaci s otáčením hlavy: to, co uživatel potřebuje často, musí být v pohodlném záběru hlavy.
  • Neotáčet tělo: prvek, k němuž uživatel musí otočit hlavu i trup, používá zřídka.

Shrnutí

  • 3D rozhraní klade nároky na standardy, přesnost i únavu.
  • Výběr: ruka, paprsek, menu, prodloužená ruka; manipulace: ruka, HOMER, mini svět.
  • Pohyb: teleport s tmavnutím, plynulý posun opatrně.
  • Návrh: okamžitá zpětná vazba, hybridní UI a respekt ke zornému poli.

Zóny kolem uživatele

Zóna Zorné pole Vhodné pro
Přímý směr pohledu $\pm 15^\circ$ od středu obsah, primární úkoly
Periferně, v dosahu hlavy do $\pm 30^\circ$ horiz., $+15^\circ$ vert. stav, hodiny, HUD
Po stranách, vyžaduje otočení nad $\pm 60^\circ$ vyžaduje rotaci celého těla sekundární, volitelné
Za zády Úplně mimo zorné pole Moc nepoužívat: uživatel tam nedohlédne
Návrh UI • Mixed Reality

Mixed Reality (passthrough) UI

Uživatel vidí reálné okolí

U moderních headsetů (Quest 3, Vision Pro) je passthrough standardem. Rozhraní už není jen v naší scéně, ale v reálném prostředí: to je nepředvídatelné.

Problémy, které přibývají

  • Kontrast: bílý panel na bílé zdi zmizí; tmavý text na tmavém stole není čitelný. Řešením je podkladová deska a obrys (scrim + outline), ne jen barva textu.
  • Míchání se reálným obsahem: UI nesmí splývat s fyzickými předměty; virtuální tlačítko položené na skutečný stůl musí být jednoznačně virtuální.
  • Překreslování hloubky: virtuální panel se má ořezávat o reálné překážky (Depth API), jinak se zdá, že není za stolem, ale před ním.

Příležitosti: reálné povrchy jako kotvy

  • Stůl jako pracovní plocha: panel leží na skutečném stole, uživatel se ho může fyzicky dotknout a má o co opřít ruku.
  • Zeď jako plocha pro menu: velký panel na zdi je stabilní a vždy na stejném místě; Scene Understanding najde roviny sám.
  • Reálné objekty jako ovladače: fyzická klávesnice, hrnek nebo pero se obalí virtuálním obsahem a získají haptiku.

Pravidla pro MR rozhraní

  • Počítejte s tím, že osvětlení se mění: virtuální prvek musí být čitelný v šeru i na přímém slunci.
  • Nespolehejte na barvu samotnou: pro odlišení stavu použijte tvar, ikonu nebo text.
  • Nabídněte uživateli přepínač passthrough: někdy chce být plně ve VR, jindy vidět okolí.
Návrh UI • Přístupnost

Přístupnost (accessibility) ve VR

Ne každý uživatel stojí, vidí a má dvě ruce

VR je fyzicky náročné médium. Přístupnost tu není „navíc“: bez ní aplikace vylučuje část uživatelů úplně, protože neexistuje alternativní způsob ovládání jako u klávesnice.

Základní režimy

  • Seated mode: celá aplikace ovladatelná vsedě; nic nevyžaduje dosah na zem ani otočení těla. Nutnost pro uživatele na vozíku i pro dlouhé pracovní směny.
  • One-handed mode: plná funkčnost s jedním ovladačem; druhá ruka může být zaneprázdněná, zraněná nebo chybí.
  • Nastavitelná výška a měřítko: uživatel v sedě má jinou výšku očí i dosah; rozhraní se musí přizpůsobit, ne naopak.
Paper: Inclusive Immersion

Zrak a sluch

  • Barvoslepost: stav nevyjadřujte jen barvou (povinné červená/zelená); přidat ikonu, tvar nebo textový popisek.
  • Kontrast a velikost: nabídnout zvětšení textu a režim vysokého kontrastu; v headsetu je čitelnost horší než na monitoru.
  • Titulky a přepis: veškerý zvukový obsah mějte i textově; ve VR navíc s možností ukotvit titulky do prostoru.

Pohodlí a komfort

  • Způsob pohybu volitelný: volba mezi teleportem a plynulým posunem; kinetóza je individuální.
  • Snap turn místo plynulého otáčení: skokové otáčení o pevný úhel snáší většina uživatelů lépe.
  • Pauzy a přestávky: aplikace má doporučit přestávku, únava z headsetu přichází dřív, než si uživatel myslí.