Vývoj v Unreal Engine - UX design VR aplikací

Vývoj v Unreal Engine - UX design VR aplikací Tagy: Vývoj aplikací
| Publikováno dne

V prvních 2 částech série o vývoji VR aplikací v Unreal Engine jsme se seznámili nejdříve s herním enginem Unreal a optimálním nastavením projektu a následně i aspekty technického designu VR aplikací. Tyto znalosti je třeba mít na paměti při návrhu UX designu výkonově optimalizovaných VR aplikací. V tato kapitola není soupisem doporučení vedoucích k volbě co nejefektivnějšího UX, to v obecné rovině ani není možné, spíše nabízí souhrn možností, z kterých lze při návrhu UX konkrétních VR aplikací vycházet.

Co je UX design VR aplikací?

UX je zkratkou "user experience" - UX design je tedy návrh prvků aplikace s účelem dosažení maximálního uživatelského zážitku při jejím používání. Do toho spadá vše funkční a viditelné - způsob ovládání včetně rozvržení ovládacích prvků, snadnost používání, pocity při užívání aplikace, dostupnost funkcí i celková vizuální kvalita.

Ovládání VR aplikace

VR headset je formou funkčního displeje, který zpravidla ovládá pohyb a rotaci kamery, a to jeho interpolací z pohybu VR headsetu v prostoru. Částečně lze k ovládání použít i samotný VR headset (na základě pohledu na element / nadefinovaných gest pohybu headsetu popř. očí), častěji se však k ovládání používá ovladačů, jako jsou k headsetu dodávané VR ovladače, nebo externality typu joysticků, volantů, gamepadů, klávesnic nebo zařízení pro čtení myšlenek typu next mind.

Bez ohledu na zvolený způsob ovladače je zpravidla nutné nového uživatele vhodným a nenásilným způsobem ovladač používat. Jednoduchost používání ovladače souvisí i s vizuálem ovladače ve VR aplikaci - jestliže je ovladač zobrazen ve své skutečné podobě, někdy může stačit jednoduchý popis jeho tlačítek, případně doplněn rychlým tutoriálem jejich použití. Komplikace začínají při užívání jiných vizualizací, například rukou. V tom momentu jsou veškerá tlačítka ovladače pro uživatele vizuálně neviditelná. Řešením může být mechanismus možnost záměny vizuálu zvoleným způsobem (dosahem interaktivních položek / tlačítkem / pohledem / natočením v konkrétním úhlu vůči kameře...).

Po volbě konkrétního ovladače přichází na řadu design interakce ovladače s konkrétními prvky ve virtuálním prostoru. Preferovanou možností je replikace ovládání známého ze skutečného světa. Ve VR jej lze částečně i usnadňovat. Například při používání běžných VR ručních ovladačů interagujících s UI (např. menu). Bude možná pouze přímá interakce (tzn. dotknutím se "prsty" (při vizuálu ovladače jako rukou) přímo tlačítka), nebo i vzdálená (z vizuálu ovladače povede laser označující "polohu myši")? A pokud ano, na jak dlouhou vzdálenost?

Hned na to navazuje feedback spojený s interakcemi. Běžné ovladače nejsou zpravidla schopny navazovat pocit odporu, o kontaktu s tělesem ve virtuálním prostoru je nutné uživatele informovat jinak. Preferujete vizuální formu, haptickou formu (vibrace), nebo obojí? A v jakém "formátu" a intenzitě?

Ne všechny prvky ve virtuálním prostoru jsou interaktivní. Některé objekty lze zvednou / přemístit / modifikovat, jiné ne. Jakým způsobem provedete pro uživatele označení interaktivních objektů a komponent? Zvýrazněním při pohledu na ně / změnou vizuálu nebo vibrací ovladače v jejich blízkosti, zvukovým signálem, jinak?

Možnosti pohybu ve VR

Ve VR se lze pohybovat přirozeně (pohyb ve skutečném prostoru je replikován v měřítku 1:1 ve virtuálním světě) i uměle, a to pomocí teleportu a plynulého pohybu. Problematice volby optimální mechaniky pohybu snižující rizika motion sickness se věnuji v článku Motion sickness - Jak designovat VR aplikace, aby z nich nebylo nevolno?.

Nejpraktičtějším způsobem pohybu je teleport. Lze aplikovat v různých formách pro pohyb na neomezené vzdálenosti. Základním použitím je standardní teleport, kdy si pomocí ovladače v 3D prostoru vybíráte novou polohu. Tato metoda je efektivní při teleportování v rámci kratších vzdáleností v rámci 1 roviny (patra). Jestliže uvažujeme o teleportaci ve vícepodlažní budově, vhodnou metodou teleportu je vygenerování půdorysu jednotlivých podlaží a umožnění teleportu ukázáním na konkrétní místo v půdorysu konkrétního patra.

Při designu pohybu je optimální umožnit volbu mezi více možnostmi, stejně jako jednotlivé možnosti kombinovat.

K ovládání a pohybu se v neposlední řadě váže i akční prostor uživatele pro pohyb. Ten může být stacionární (z 1 místo s možností rotace a změny výšky kamery), stejně jako prostorový, přičemž velikost tohoto prostoru může být pro každého uživatele proměnná. Velikost akčního prostoru je definována zpravidla uživatelem, v případě Oculusu takto definovaný prostor hlídá (a upozorňuje na jeho opuštění) systém Guardian. Důležité je, že k tomuto systému má přístup skrze API i vývojář, a tedy z něj získaná data o uživatelem definovaném prostoru může převzít a brát v úvahu například při generování virtuálního světa.

Audio ve VR aplikaci (zvukový design)

Účelem audia a zvukového designu aplikace obecně je posílit uživatelův zážitek a pocit realističnosti při užívání 3D prostoru v prostředí virtuální reality. Toho lze docílit aplikací prostorového zvuku (Spatial audio). Takový zvuk reflektuje polohu a intenzitu zdroje zvuku vůči uživateli i se zahrnutím prostředí.

  • Head Related Transfer Function (HRTF), někdy známá jako Anatomical Transfer Function poskytuje principy chování, jakými ucho přijímá zvuk z určitého bodu v prostoru.
  • Room Modeling adaptuje okluzi a dozvuk (Occlusion and Reverb), jednoduše odrazy a tříštění zvuku od zdí a dalších předmětů.

Prostorový zvuk se zahrnutím dvojice výše zmíněných principů se chová dynamicky a vychází z fyziky působení zvukových vln. Intenzita zvuku pro konrétní sluchátka / reproduktory je počítána v reálném čase a mění se společně se vzdáleností pod vertikálním i horizontálním úhlem natočení zdroje zvuku vůči uživateli, stejně tak se změnou intenzity zdroje zvuku. I v případech plného otočení (90° kolmo) jedním uchem ke zdroji zvuku je zvuk stále slabě slyšitelný i v uchu druhém z důvodu tříštění a odrazů zvuku v prostoru.

Intenzita a tón zvuku je odvislý rovněž od tvaru a materiálů prostoru, jehož prostřednictvím je ovlivňován. Například tentýž zvuk puštěný v malé koupelně bude působit rozdílný vjem oproti stejnému zvuku puštěnému ve velké místnosti nebo otevřeném prostoru. S velikostí prostoru souvisí i výraznost ozvěn, která je řízena počtem vzájemně se překrývajících vln odrážejících se od stěn a působících po místnosti. Ztlumení zvuku od ozvěny se říká reverberation (dozvuk), popř. reverb, ztlumení vzniklému odchodem z místnosti poté attenuation (útlum).

Při návrhu designu prostorového zvuku (akustické simulace) je třeba počítat s vlastností, že hlasitost a tón prostorového zvuku je odvislý od polohy uživatele. Virtuální realita se vyznačuje vysokou svobodou pohybu a není úplně žádoucí uživatele nuceně držet na jednom místě, dokud budou například prostřednictvím prostorového audia vyřčeny veškeré důležité informace. Design audia by s případy, kdy uživatel odejde z doslechu daného audia měla počítat. Například provádění pokynů skrze přenosnou vysílačku, hlášením reproduktory umístěnými napříč budovou a podobně.

Při rozvrhu lokality a nastavení zvukových zdrojů (dosah, hlasitost...) je nutné dbát na eliminaci skokových rozdílů v hlasitosti na krátkých vzdálenostech, provádění masivních změn v dozvuku ozvěn a podobně. Zkrátka, potlačit uzdu fantazii dostupné skrze VR a držet se linie chování zvuku v přirozených mezích. Se správným nastavením značně pomáhá vizuální vykreslení útlumových křivek v Unreal enginu. V podstatě jde o 2 koule. První značí začátek útlumu, druhá konec útlumu (zvuk zdroje není dále slyšitelný).

Technické okénko - jak poznám, že prostorový zvuk funguje správně?

Prostorový zvuk se často implementuje s použitím pluginu "Oculus Audio". Mimo to musí být Oculus vybrán jako zdrojový plugin v možnostech Spatialization plug-in a Reverb plug-in nalezitelných v [Project Settings / Platforms / Windows]. po aktivaci Oculus pluginu je možné připojovat k Aktorům komponenty Oculus Audio Geometry (popř Oculus Audio Geometry Landscape) a Oculus Audio Material. Geometry komponenta ukládá geometrii prostoru ve formě čitelné a zprocesovatelné zvukovým enginem, materiálová komponenta definuje materiálové vlastnosti onoho prostoru z hlediska šíření zvuku.

Na test prostorového audia existují poměrně jednoduché testy - prvním je postavení se ke zdroji zvuku kolmo jedním uchem a zjišťování, zda je daný zvuk slyšitelný i pro ucho opačné. Druhým testem je výtahový test (Elevation test), který namísto horizontální roviny testuje chování působení zvuku v rovině vertikální. Při testu se vezme zdroj zvuku do natažené ruky a poté sleduje, jak je zvuk ovlivňován pohybem natažené ruky nahoru (45°+) a dolů (-45% -). Přesvědčit se o správné funkci prostorového zvuku je důležité především ve vybuildované verzi, jelikož prostorový zvuk je závislý na přibalených binárních souborech od Oculusu. Pokud nejsou najity, aplikace využívá fallback ve formě stereofonního režimu. Případnými dalšími důvody nefunkčnosti vyjma chybějících binárních souborů je nejčastěji nekompatibilní middleware a nesprávná volání API do Oculus Spatializeru.

Další funkce

VR aplikace jsou software jako každý jiný. Cokoli si vymyslíte, to lze provést. Na většinu z toho přitom pravděpodobně již i existuje řešení. Zde přidávám pár linků na zajímavé funkce:

  • Spectator mode - pohled diváka - použitelný pro vizualizaci uživatele v prostoru virtuální reality. Známý rovněž jako Oculus MRC (Mixed Reality Capture)