Vývoj AR aplikací pro Quest v Unreal Engine
VR headset Quest 3 výrobce Meta přišel s vylepšeným PassThrough využitelným v rámci aplikací využívajících prvků rozšířené reality. Jak s rozšířenou realitou pracovat při vývoji aplikací pro VR Headsety řady Quest 2 a vyšší?
Jelikož vyvíjíme pro Quest 3, automaticky se předpokládá, že máme Meta developerský účet a v počítači nainstalovanou aplikaci Oculus Desktop s přidaným VR headsetem Quest generace 2 a vyšší.
Uvnitř aplikace Oculus dále zavítáme do záložky Beta a povolíme “Developer runtime features”. Jelikož pracujeme s Rozšířenou Realitou, v rámci “Developer runtime features” dále povolíme funkci “Pass-through přes Oculus Link”.
Meta XR Plugin pro Unreal Engine
Unreal Engine nativně obsahuje obecnou OpenXR integraci kompatibilní s celou řadou VR brýlí na trhu. Funkce specifické konkrétnímu VR headsetu lze do Unreal Engine přidat prostřednictvím individuálních pluginů. Ty v případě VR headsetů meta nalezneme na webu Oculusu (původní vývojář brýlí, který byl později koupen společností Meta).
Meta XR plugin lze v různých verzích (dle používané verze Unreal Engine) stáhnout z webové stránky https://developer.oculus.com/downloads/package/unreal-engine-5-integration. Po stažení se plugin vkládá do složky Engine/Plugins/Marketplace konkrétní verze instalačky Unreal Engine v počítači. Jestliže složka Marketplace v adresáři Plugins neexistuje, vytvoříme ji.
Plugin Meta XR
je následně možné povolit v libovolném projektu prostřednictvím nabídky Edit → Plugins
. Plugin se nachází v sekci “Virtual Reality”. Po přidání je možné nalézt možnosti nastavení Meta XR
uvnitř sekce Plugins nabídky Edit → Project Settings
.
Nastavení Meta XR Passthrough pro rozšířenou realitu
Rozšířená realita pracuje s reálným prostřednictvím, které je pomocí kamer umístěných na VR headsetu Quest snímáno a ihned rozšiřováno o virtuální prvek. Procesu přetransformování reálného pohledu na displej prostřednictvím kamery se říká Passthrough, česky průchodnost. Aby fungovalo správně, je nutné v Unreal engine nastavit v rámci Edit → Project Settings
několik parametrů:
Enable alpha channel support in post processing
(sekce Rendering/Postprocessing) je nutné nastavit na možnostallow through tonemapper
- V rámci možností Meta XR (sekce Plugns) nastavit následující:
- Do
Supported Meta Quest devices
přidat VR headsety, na které je aplikace cílena - Povolit funkce související s Passthrough, specificky:
- Povolit
Passthrough Enabled
- Povolit
Anchor Support
- Povolit
Anchor Sharing
- Povolit
Scene Support
- Povolit
Support Experimental Features
(sekce Experimental)
- Povolit
- Povolit případné další vyžadované funkce pro daný AR projekt
- Do
- Zbylé nastavení lze provádět dle best practicies pro Virtuální realitu.
VR Pawn s komponentou “Oculus XRPassthrough Layer”
VR Pawn je Blueprint Actor reprezentující hráče. V případě Rozšířené reality lze vycházet ze základního actoru VR Pawn pro Virtuální Realitu. Ten je v Unreal Engine dostupný v rámci projektů či obsahu pro Virtuální realitu.
Pro použití v AR aplikacích rozšíříme jeho komponentu Camera
přidáním komponenty Oculus XRPassthrough Layer
, která je součástí Meta Pluginu. Jmenovitě, otevřeme VRPawn
, klikneme na komponentu Camera
a poté skrze tlačítko +
okna Components
přidáme komponentu “Oculus XRPassthrough Layer”.
V okně Detail
dané komponenty následně zaškrtneme možnosti Support Depth
, No Alpha Channel
a dále nastavíme Stereo Layer Shape
na možnost Underlay
.
Nastavení scény pro Rozšířenou realitu
V rámci nastavení projektu může být nutné mít pro správné fungování Passthrough nastavenou kvalitu Effects
na hodnotě Epic
.
Jak vypadá scéna pro rozšířenou realitu?
Při rozšířené realitě se pracuje s něčím na způsob Green Screen. Namísto zelené stěny však máme v Unreal Engine stěnu černou, a to ne záměrně - naopak, černý symbolizuje prázdný prostor. V běžných aplikacích používáme například actor SkySphere
symbolizující oblohu. Odstraníme-li jej, namísto oblohy v Unreal Engine nic není - měli bychom skrze ni tedy vidět Passthrough obraz z kamer, jinými slovy, skutečné okolí.
V AR aplikaci jsou tedy umístěny pouze rozšiřující prvky skutečného prostoru a jinak černo.