Lunární modul

Lunární modul

Poznámka

Tento článek popisuje průzkumnou ukázku, kterou jsme vytvořili v Mixed Reality Design Labs, což je místo, kde sdílíme naše poznatky a návrhy pro vývoj aplikací pro hybridní realitu. Naše články a kód související s návrhem se budou vyvíjet s novými objevy.

Poznámka

Tato ukázková aplikace byla navržena pro HoloLens 1. generace.

Lunární modul je opensourcová ukázková aplikace z Mixed Reality Design Labs microsoftu. Zjistěte, jak rozšířit základní gesta HoloLensu o sledování obou rukou a vstup ovladače Xbox, vytvářet objekty, které jsou reaktivní pro mapování povrchu a hledání rovin, a implementovat jednoduché systémy nabídek. Všechny komponenty projektu jsou k dispozici pro použití ve vašich vlastních prostředích aplikací hybridní reality.

Ukázkové video

Záznam s HoloLens 2 pomocí Mixed Reality Capture

Přehodnocené klasické prostředí pro Windows Mixed Reality

Vysoko v atmosféře, malá loď, která připomíná modul Apollo, metodicky průzkumu rozeklaného terénu dole. Náš nebojácný pilot najde vhodnou přistávací plochu. Sestup je namáhavý, ale naštěstí, tato cesta byla provedena mnohokrát předtím...

Původní rozhraní z lunárního landeru Atari z roku 1979
Původní rozhraní z lunárního landeru Atari z roku 1979

Lunární lander je arkádová klasika, kde se hráči pokusí pilotovat přistálo na měsíci na plochém místě lunárního terénu. Každý, kdo se narodil v roce 1970, s největší pravděpodobností strávil hodiny v arkádě s očima upřenýma na tuto vektorovou loď vylétající z nebe. Když hráč naviguje svou loď směrem k přistávací ploše, terén se škáluje a postupně odkrývá další podrobnosti. Úspěch znamená přistání v bezpečném prahu vodorovné a svislé rychlosti. Body se udělují za čas strávený přistáním a zbývajícím palivem s násobitelem na základě velikosti přistávací oblasti.

Kromě hry, arkádová éra her přinesla neustálé inovace řídicích schémat. Od nejjednodušších čtyřcestných konfigurací pákového ovladače a tlačítek (vidět v ikonickém Pac-Manu) až po velmi specifická a komplikovaná schémata z konce 90. a 00. let (například v golfových simulátorech a železničních střelcích). Vstupní schéma použité v lunárním landeru je zajímavé ze dvou důvodů: odvolání obrubníku a ponoření.

Arkádová konzola Atari's Lunar Lander
Arkádová konzola Atari's Lunar Lander

Proč se Atari a tolik dalších herních společností rozhodlo přehodnotit vstupy?

Dítě procházející se arkádou bude přirozeně fascinováno nejnovějším, nejhojnějším strojem. Ale Lunární lander má novou vstupní mechaniku, která vynikla z davu.

Lunární lander používá dvě tlačítka pro otáčení lodi doleva a doprava a páčku tahu k ovládání množství tahu, které loď produkuje. Tato páka poskytuje uživatelům určitou úroveň jemnosti, které běžný pákový ovladač nemůže poskytnout. Stává se také, že se jedná o součást společnou pro moderní letecké kokpity. Atari chtěla, aby lunární lander uživatele ponořil do pocitu, že ve skutečnosti pilotují lunární modul. Tento koncept se označuje jako hmatové ponoření.

Hmatové ponoření je zkušenost smyslové zpětné vazby z provádění opakujících se akcí. V tomto případě opakovaná akce nastavení páky omezování a otáčení, které naše oči vidí a naše uši slyší, pomáhá spojit hráče s aktem přistání lodi na povrchu měsíce. Tento koncept může být svázán s psychickým konceptem "flow". Pokud je uživatel plně pohlcen úkolem, který má správnou kombinaci výzvy a odměny, nebo jednoduše řečeno, je "v zóně".

Pravděpodobně nejvýznamnějším typem ponoření do hybridní reality je prostorové ponoření. Smyslem smíšené reality je oklamat sami sebe do víry, že tyto digitální objekty existují v reálném světě. Syntetizujeme hologramy v našem okolí, prostorově ponořené do celých prostředí a prostředí. To neznamená, že stále nemůžeme využívat jiné typy ponoření do našich zkušeností stejně jako Atari s hmatovým ponořením v Lunárním landeru.

Navrhování s ponořením

Jak bychom mohli použít hmatové ponoření do aktualizovaného, objemového pokračování klasického Atari? Před řešením vstupního schématu je potřeba řešit herní konstruktor pro trojrozměrný prostor.

Vizualizace mapování povrchů v HoloLensu
Vizualizace prostorového mapování v HoloLensu

Díky využití okolí uživatele máme v podstatě nekonečné možnosti terénu pro přistání našeho lunárního modulu. Aby se hra co nejvíce podobala původnímu názvu, mohl by uživatel potenciálně manipulovat a umístit do svého prostředí přistávací panely s různými potížemi.

Vyžadovat, aby se uživatel naučil vstupní schéma, ovládl loď a měl malý cíl, na který přistane, je hodně na co se ptát. Úspěšný herní zážitek obsahuje správnou kombinaci výzvy a odměny. Uživatel si může zvolit úroveň obtížnosti, přičemž nejjednodušší režim jednoduše vyžaduje, aby uživatel úspěšně přistál v uživatelem definované oblasti na povrchu naskenovaném HoloLensem. Jakmile se uživatel dostane do hry, může pak řadit obtížnost podle toho, jak se mu bude hodit.

Přidání vstupu pro gesta rukou

Základní vstup HoloLens má pouze dvě gesta – Air Tap a Bloom. Uživatelé si nemusí pamatovat kontextové nuance ani seznam konkrétních gest, díky kterým je rozhraní platformy všestranné a snadno se naučí. I když systém může vystavit pouze tato dvě gesta, HoloLens jako zařízení může sledovat dvě ruce najednou. Naše óda na Lunární lander je [imerzivní aplikace, což znamená, že můžeme rozšířit základní sadu gest, abychom využili dvě ruce a přidali vlastní příjemné hmatové prostředky pro navigaci lunárních modulů.

Při zpětném pohledu na původní řídicí schéma jsme potřebovali vyřešit tah a otáčení. Upozornění je otočení v novém kontextu přidává další osu (technicky dvě, ale osa Y je pro přistání méně důležitá). Tyto dva odlišné pohyby lodí se přirozeně dají mapovat na každou ruku:

Klepnutí a přetažení gesta pro otočení přisítáku na všech třech osách
Klepnutí a přetažení gesta pro otočení přisítáku na všech třech osách

Tah

Páka na původním arkádovém stroji mapovaná na stupnici hodnot, čím výše byla páka přesunuta, tím větší tah byl aplikován na loď. Důležitou nuance, kterou je třeba zde zdůraznit, je, jak může uživatel vzít ruku z ovládacího prvku a zachovat požadovanou hodnotu. K dosažení stejného výsledku můžeme efektivně použít chování klepnutí a přetažení. Hodnota tahu začíná na nule. Uživatel hodnotu zvýší klepnutím a přetažením. V tom okamžiku ho mohli pustit, aby si ho udrželi. Jakákoli změna hodnoty gest klepnutí a přetažení by byla rozdílem od původní hodnoty.

Obměna

To je trochu složitější. Holografická "otočit" tlačítka pro klepnutí je hrozný zážitek. Neexistuje fyzický ovládací prvek, který by bylo potřeba využít, takže chování musí pocházet z manipulace s objektem představujícím přistupovací modul nebo se samotným přistupovacím modulem. Přišli jsme s metodou, která používá klepnutí a přetažení, která uživateli umožňuje efektivně ho "nasměrovat a vytáhnout" ve směru, kterým ho chce mít. Kdykoli uživatel klepne a podrží, bod v prostoru, kde bylo gesto inicializováno, se stane zdrojem pro otáčení. Přetažením od počátku se převede rozdíl překladu ruky (X,Y,Z) a použije se na rozdíl hodnot otáčení landeru. Nebo jednodušeji, přetažení doleva <-> doprava, nahoru <-> dolů, dopředu <-> zpět v prostorech otáčí loď odpovídajícím způsobem.

Vzhledem k tomu, že HoloLens může sledovat dvě ruce, může být otáčení přiřazeno pravé ruce, zatímco tah je řízen levou rukou. Finesse je hnacím faktorem úspěchu v této hře. Pocit těchto interakcí má absolutní nejvyšší prioritu. Zejména v kontextu hmatového ponoření. Loď, která reaguje příliš rychle, by bylo obtížné nastavit řízení, zatímco loď příliš pomalá by vyžadovala, aby uživatel na loď "tlačil a tahat" po neohrabaně dlouhou dobu.

Přidání vstupu pro herní ovladače

I když gesta rukou na HoloLensu poskytují novou metodu jemného ovládání, stále existuje určitý nedostatek "pravé" hmatové zpětné vazby, kterou získáte z analogových ovládacích prvků. Připojení herního ovladače xboxu nám umožňuje vrátit tento pocit fyzičnosti a současně využít ovládacích tyčí, abychom si zachovali jemně odstupňovanou kontrolu.

Existuje několik způsobů, jak použít relativně jednoduché řídicí schéma pro ovladač Xbox. Vzhledem k tomu, že se snažíme zůstat co nejblíže původnímu nastavení arkády, Thrust mapuje nejlépe tlačítko spouště. Tato tlačítka jsou analogové ovládací prvky, což znamená, že mají více než jednoduché zapnuté a vypnuté stavy, ve skutečnosti reagují na stupeň tlaku, který na ně byl kladen. To nám dává podobnou konstrukci jako páka tahu. Na rozdíl od původní hry a gesta rukou tento ovládací prvek sníží tah lodi, jakmile uživatel přestane tlačit na spoušť. Stále dává uživateli stejný stupeň finesy jako původní arkádová hra.

Levý palec je mapovaný na Yaw a Roll, pravý palec je mapován na Pitch and Roll
Levý palec je mapován na yaw a roll; pravý palec je namapovaný na rozteč a hod

Duální páčky se přirozeně hodí k řízení rotace lodí. Bohužel existují tři osy, na kterých se loď může otáčet, a dvě thumbsticky, které obě podporují dvě osy. Tato neshoda znamená, že jeden thumbstick řídí jednu osu; nebo se překrývají osy pro thumbsticky. První řešení se nakonec cítilo "rozbité", protože thumbsticky ze své podstaty spojují své místní hodnoty X a Y. Druhé řešení vyžadovalo určité testování, aby bylo možné zjistit, které nadbytečné osy jsou nejpřirozenější. Konečný vzorek používá yaw a roll (osy Y a X) pro levý thumbstick a rozteč a hod (osy Z a X) pro pravý thumbstick. To se cítil nejpřirozenější, jak se zdá, že role se nezávisle dobře spáruje s yaw a pitch. Jako poznámka na okraj, použití obou thumbsticků pro hod se také stane zdvojnásobí hodnotu otáčení; Je to docela zábava, když lander dělá smyčky.

Tato ukázková aplikace ukazuje, jak prostorové rozpoznávání a hmatové ponoření může výrazně změnit prostředí díky rozšiřitelným způsobům zadávání Windows Mixed Reality. Zatímco lunární lander může být téměř 40 let ve věku, koncepty vystavené s tímto malým oktagon-s-nohy budou žít navěky. Když si představujte budoucnost, proč se nepodíváte na minulost?

Technické podrobnosti

Skripty a předběžné skripty pro ukázkovou aplikaci lunárního modulu najdete na GitHubu Mixed Reality Design Labs.

O autorovi

Obrázek Addison Linville Addison Linville
Designer @Microsoft uživatelského prostředí

Viz také