Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Kurzy Mixed Reality Academy byly navrženy s ohledem na HoloLens (1. generace), Unity 2017 a Mixed Reality Asistivní náhlavní soupravy. Proto se domníváme, že je důležité ponechat tyto kurzy pro vývojáře, kteří stále hledají pokyny k vývoji pro tato zařízení. Tyto kurzy nebudou aktualizovány nejnovějšími sadami nástrojů nebo interakcemi používanými pro HoloLens 2 a nemusí být kompatibilní s novějšími verzemi Unity. Budou zachovány, aby mohly pokračovat v práci na podporovaných zařízeních. Byla publikována nová série kurzů pro HoloLens 2.
Pohled je první forma vstupu a odhalí záměr a povědomí uživatele. MR Input 210 (neboli Průzkumník projektů) je podrobný přehled konceptů pohledu pro Windows Mixed Reality. Do kurzoru a hologramů přidáme kontextové povědomí a plně využijeme toho, co vaše aplikace ví o pohledu uživatele.
Máme zde přátelského astronauta, který vám pomůže naučit se koncepty pohledu. V MR Basics 101 jsme měli jednoduchý kurzor, který právě sledoval váš pohled. Dnes se posuneme o krok za jednoduchý kurzor:
- Chceme, aby kurzor a naše hologramy byly upřeny podle toho, kde se uživatel dívá nebo kde se nedívá . Díky tomu budou mít přehled o kontextu.
- K kurzoru a hologramům přidáme zpětnou vazbu, abychom uživateli poskytli další kontext k tomu, co je cílem. Tato zpětná vazba může být zvuková a vizuální.
- Ukážeme vám techniky cílení, které uživatelům pomůžou dosáhnout menších cílů.
- Ukážeme vám, jak upoutat pozornost uživatele na hologramy pomocí směrového indikátoru.
- Naučíme vás techniky, jak používat hologramy s uživatelem, když se pohybuje ve vašem světě.
Důležité
Videa vložená do každé z následujících kapitol byla zaznamenána pomocí starší verze Unity a sady Mixed Reality Toolkit. Podrobné pokyny jsou přesné a aktuální, ale v odpovídajících videích se můžou zobrazovat skripty a vizuály, které jsou zastaralé. Videa zůstávají zahrnuta pro potomky a proto, že probírané koncepty stále platí.
Podpora zařízení
| Kurz | HoloLens | Imerzivní náhlavní soupravy |
|---|---|---|
| MR Vstup 210: Pohled | ✔️ | ✔️ |
Než začnete
Požadavky
- Počítač Windows 10 nakonfigurovaný s nainstalovanými správnými nástroji.
- Některé základní možnosti programování v jazyce C#.
- Měli jste dokončit MR Basics 101.
- Zařízení HoloLens nakonfigurované pro vývoj.
Soubory projektu
- Stáhněte si soubory vyžadované projektem. Vyžaduje Unity 2017.2 nebo novější.
- Zrušte archivaci souborů na ploše nebo na jiné snadno dostupné místo.
Poznámka
Pokud si chcete před stažením projít zdrojový kód, je k dispozici na GitHubu.
Errata a poznámky
- V sadě Visual Studio musí být v části Tools-Options-Debugging>> zakázaná (nezaškrtnutá) možnost "Jen můj kód", aby se v kódu dostala do zarážek.
Kapitola 1 – Nastavení Unity
Cíle
- Optimalizace vývoje v Unity pro HoloLens
- Importujte prostředky a nastavte scénu.
- Prohlédni si astronauta v HoloLensu.
Pokyny
- Spusťte Unity.
- Vyberte Nový projekt.
- Pojmenujte projekt ModelExplorer.
- Jako složku Gaze , kterou jste dříve nechalchovali, zadejte umístění.
- Ujistěte se, že je projekt nastavený na 3D.
- Klikněte na Create Project (Vytvořit projekt).
Nastavení Unity pro HoloLens
Musíme unity dát vědět, že aplikace, kterou se snažíme exportovat, by měla místo 2D zobrazení vytvořit imerzivní zobrazení . K tomu přidáme HoloLens jako zařízení pro virtuální realitu.
- Přejděte na Upravit > přehrávač nastavení > projektu.
- Na panelu inspektoru pro nastavení přehrávače vyberte ikonu Windows Store .
- Rozbalte skupinu Nastavení XR .
- V části Vykreslování zaškrtněte políčko Virtual Reality Supported (Podpora virtuální reality) a přidejte nový seznam sad SDK pro virtuální realitu .
- Ověřte, že se v seznamu zobrazí Windows Mixed Reality. Pokud ne, vyberte + tlačítko v dolní části seznamu a zvolte Windows Holographic.
Dále musíme nastavit back-end skriptování na .NET.
- Přejděte na Upravit > přehrávač nastavení > projektu (je možné, že je stále k dispozici z předchozího kroku).
- Na panelu inspektoru pro nastavení přehrávače vyberte ikonu Windows Store .
- V části Konfigurace dalších nastavení se ujistěte, že je back-end skriptování nastavený na .NET.
Nakonec aktualizujeme nastavení kvality, abychom na HoloLens dosáhli rychlého výkonu.
- Přejděte na Upravit > kvalitu nastavení > projektu.
- Klikněte na šipku dolů na řádku Výchozí pod ikonou Windows Store.
- Vyberte Možnost Velmi nízká pro aplikace pro Windows Store.
Import prostředků projektu
- Klikněte pravým tlačítkem na složku Assets na panelu Projekt .
- Klikněte na Importovat vlastní balíček balíčku>.
- Přejděte ke staženým souborům projektu a klikněte na ModelExplorer.unitypackage.
- Klikněte na Otevřít.
- Po načtení balíčku klikněte na tlačítko Importovat .
Nastavení scény
- V hierarchii odstraňte hlavní kameru.
- Ve složce HoloToolkit otevřete složku Input a pak otevřete složku Prefabs .
- Přetáhněte prefab MixedRealityCameraParent ze složky Prefabs do hierarchie.
- Klikněte pravým tlačítkem na směrový kontrolek v hierarchii a vyberte Odstranit.
- Ve složce Hologramy přetáhněte následující prostředky do kořenového adresáře hierarchie:
- AstroMan
- Světla
- SpaceAudioSource
- SpaceBackground
- Spusťte režim ▶ přehrávání a zobrazte astronauta.
- Znovu klikněte na Režim ▶ přehrávání, aby se zastavilo.
- Ve složce Holograms najděte prostředek Fitbox a přetáhněte ho do kořenového adresáře hierarchie.
- Na panelu Hierarchie vyberte fitbox.
- Přetáhněte kolekci AstroMan z hierarchie do vlastnosti Kolekce hologramů fitboxu na panelu Inspektor .
Uložení projektu
- Uložit novou scénu: Soubor > Uložit scénu jako.
- Klikněte na Nová složka a pojmenujte složku Scény.
- Pojmenujte soubor ModelExplorer a uložte ho do složky Scenes .
Sestavení projektu
- V Unity vyberte Nastavení sestavení souboru>.
- Kliknutím na Přidat otevřená scéna scénu přidejte.
- V seznamu Platformavyberte Univerzální platforma Windows a klikněte na Přepnout platformu.
- Pokud vyvíjíte speciálně pro HoloLens, nastavte Cílové zařízení na HoloLens. V opačném případě ho ponechte na libovolném zařízení.
- Ujistěte se, že je typ sestavení nastavený na D3D a sada SDK je nastavená na Nejnovější nainstalovaná (což by měla být sada SDK 16299 nebo novější).
- Klikněte na Sestavit.
- Vytvořte novou složku s názvem "App".
- Klikněte na složku Aplikace .
- Stiskněte Vybrat složku.
Po dokončení Unity se zobrazí okno Průzkumník souborů.
- Otevřete složku Aplikace .
- Otevřete řešení ModelExplorer v sadě Visual Studio.
Pokud se nasazuje do HoloLensu:
- Pomocí horního panelu nástrojů v sadě Visual Studio změňte cíl z Ladění na Vydání a z ARM na x86.
- Klikněte na šipku rozevíracího seznamu vedle tlačítka Místní počítač a vyberte Vzdálený počítač.
- Zadejte IP adresu zařízení HoloLens a nastavte Režim ověřování na Universal (Nešifrovaný protokol). Klikněte na Vybrat. Pokud IP adresu zařízení neznáte, podívejte se do části Nastavení > Sítě & Upřesnit možnosti internetu>.
- V horním řádku nabídek klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5. Pokud se do zařízení nasazuje poprvé, budete ho muset spárovat se sadou Visual Studio.
- Po nasazení aplikace zavřete Fitboxgestem výběru.
Pokud nasazujete do imerzivní náhlavní soupravy:
- Pomocí horního panelu nástrojů v sadě Visual Studio změňte cíl z Ladění na Vydání a z ARM na x64.
- Ujistěte se, že je cíl nasazení nastavený na Místní počítač.
- V horním řádku nabídek klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5.
- Po nasazení aplikace zavřete Fitbox stisknutím spouště na ovladači pohybu.
Kapitola 2 – Zpětná vazba kurzoru a cíle
Cíle
- Návrh a chování vizuálu kurzoru
- Zpětná vazba kurzoru na základě pohledu.
- Zpětná vazba hologramu na základě pohledu.
Budeme pracovat na některých principech návrhu kurzoru, konkrétně:
- Kurzor je vždy přítomen.
- Nedovolte, aby byl kurzor příliš malý nebo velký.
- Vyhněte se blokování obsahu.
Pokyny
- Ve složce HoloToolkit\Input\Prefabs najděte asset InputManager .
- Přetáhněte inputManager do hierarchie.
- Ve složce HoloToolkit\Input\Prefabs najděte asset Kurzor .
- Přetáhněte kurzor do hierarchie.
- Vyberte objekt InputManager v hierarchii.
- Přetáhněte objekt Cursor z hierarchie do pole KurzorSimpleSinglePointerSelector objektu InputManager v dolní části inspektoru.
Sestavení a nasazení
- Znovu sestavte aplikaci z nastavení sestavení souboru>.
- Otevřete složku Aplikace.
- Otevřete řešení ModelExplorer v sadě Visual Studio.
- Klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5.
- Sledujte, jak je kurzor nakreslen a jak mění vzhled, pokud se dotýká hologramu.
Pokyny
- Na panelu Hierarchie rozbalte objekt AstroMan-GEO_G-Back_Center>.>
- Poklikáním na soubor Interactible.cs ho otevřete v sadě Visual Studio.
- Zrušte komentář řádků ve zpětných voláních IFocusable.OnFocusEnter() a IFocusable.OnFocusExit() v souboru Interactible.cs. Tyto funkce jsou volána inputmanagerem Mixed Reality Toolkit, když fokus (pohledem nebo ukazatelem ovladače) vstoupí a opustí konkrétní schvalovač GameObjectu.
/* TODO: DEVELOPER CODING EXERCISE 2.d */
void IFocusable.OnFocusEnter()
{
for (int i = 0; i < defaultMaterials.Length; i++)
{
// 2.d: Uncomment the below line to highlight the material when gaze enters.
defaultMaterials[i].EnableKeyword("_ENVIRONMENT_COLORING");
}
}
void IFocusable.OnFocusExit()
{
for (int i = 0; i < defaultMaterials.Length; i++)
{
// 2.d: Uncomment the below line to remove highlight on material when gaze exits.
defaultMaterials[i].DisableKeyword("_ENVIRONMENT_COLORING");
}
}
Poznámka
Používáme EnableKeyword a DisableKeyword vyšší. Abyste je mohli využít ve vlastní aplikaci se standardním shaderem sady nástrojů, budete muset postupovat podle pokynů Unity pro přístup k materiálům prostřednictvím skriptu. V tomto případě jsme už zahrnuli tři varianty zvýrazněného materiálu , které jsou potřeba do složky Zdroje (hledejte tři materiály se zvýrazněním v názvu).
Sestavení a nasazení
- Stejně jako předtím sestavte projekt a nasaďte ho do HoloLensu.
- Sledujte, co se stane, když pohled směřuje na objekt, a když ne.
Kapitola 3 – Techniky cílení
Cíle
- Usnadněte si cílení na hologramy.
- Stabilizujte přirozené pohyby hlavy.
Pokyny
- Na panelu Hierarchie vyberte objekt InputManager .
- Na panelu inspektoru najděte skript stabilizátoru pohledu . Pokud se chcete podívat, otevřete ho v sadě Visual Studio kliknutím.
- Tento skript iteruje vzorky dat Raycastu a pomáhá stabilizovat pohled uživatele na přesné cílení.
- V inspektoru můžete upravit hodnotu Uložené ukázky stability . Tato hodnota představuje počet vzorků, na které stabilizátor iteruje při výpočtu stabilizované hodnoty.
Kapitola 4 - Směrový indikátor
Cíle
- Přidejte na kurzor směrový indikátor, který vám pomůže najít hologramy.
Pokyny
Použijeme soubor DirectionIndicator.cs , který:
- Zobrazení směrového indikátoru, pokud uživatel nevidí hologramy
- Skryjte směrový indikátor, pokud uživatel dívá na hologramy.
- Aktualizujte směrový indikátor tak, aby ukazoval na hologramy.
Tak se do toho pusťme.
- Klikněte na objekt AstroMan na panelu Hierarchie a kliknutím na šipku ho rozbalte.
- Na panelu Hierarchie vyberte objekt DirectionalIndicator v části AstroMan.
- Na panelu inspektoru klikněte na tlačítko Přidat komponentu .
- V nabídce zadejte do vyhledávacího pole Indikátor směru. Vyberte výsledek hledání.
- Na panelu Hierarchie přetáhněte objekt Kurzor do vlastnosti Kurzor v inspektoru.
- Na panelu Projekt přetáhněte ve složce Hologramy asset DirectionalIndicator do vlastnosti Directional Indicator v inspektoru.
- Sestavte a nasaďte aplikaci.
- Sledujte, jak vám objekt směrového indikátoru pomůže najít astronauta.
Kapitola 5 – Singing
Cíle
- Pokud chcete, aby hologramy byly vždy k vám.
Budeme používat soubor Poutač.cs , abychom udržovali Objekt GameObject orientovaný tak, aby byl vždy tváří v tvář uživateli.
- Na panelu Hierarchie vyberte objekt AstroMan .
- Na panelu inspektoru klikněte na tlačítko Přidat komponentu .
- V nabídce zadejte do vyhledávacího pole Bille. Vyberte výsledek hledání.
- V inspektoru nastavte osu otáčení na Y.
- Vyzkoušejte si to! Sestavte a nasaďte aplikaci jako předtím.
- Podívejte se, jak se na vás postaví objekt Zásek bez ohledu na to, jak změníte perspektivu.
- Prozatím odstraňte skript z AstroMana .
Kapitola 6 – Tag-Along
Cíle
- Použijte Tag-Along, aby nás hologramy sledovaly po celé místnosti.
Při práci na tomto problému se budeme řídit následujícími omezeními návrhu:
- Obsah by měl být vždy rychlý.
- Obsah by neměl být v cestě.
- Obsah zamykání hlavou je nepohodlný.
Řešení, které se tady používá, spočívá v použití metody "tag-along".
Objekt značky nikdy zcela neopustí zobrazení uživatele. Značku si můžete představit jako objekt připojený k hlavě uživatele gumovými pásy. Když se uživatel přesune, obsah zůstane v přehledném přehledu, protože se posune směrem k okraji zobrazení, aniž by ho úplně opustil. Když uživatel upřený pohled na objekt s popisky, zobrazí se plněji.
Použijeme soubor SimpleTagalong.cs , který:
- Určí, jestli je Tag-Along objekt v mezích kamery.
- Pokud není v rámci pohledu frustum, umístěte Tag-Along částečně do pohledu frustum.
- V opačném případě umístěte Tag-Along do výchozí vzdálenosti od uživatele.
Chcete-li to provést, musíme nejprve změnit interactible.cs skript volání TagalongAction.
- Upravte soubor Interactible.cs dokončením kódování cvičení 6.a (zrušení komentáří řádků 84 až 87).
/* TODO: DEVELOPER CODING EXERCISE 6.a */
// 6.a: Uncomment the lines below to perform a Tagalong action.
if (interactibleAction != null)
{
interactibleAction.PerformAction();
}
Skript InteractibleAction.cs spárovaný s interactible.cs provádí vlastní akce, když klepnete na hologramy. V tomto případě použijeme jeden speciálně pro označování.
- Ve složce Scripts klikněte na asset TagalongAction.cs a otevřete ho v sadě Visual Studio.
- Dokončete cvičení kódování nebo ho změňte takto:
- V horní části hierarchie na panelu hledání zadejte ChestButton_Center a vyberte výsledek.
- Na panelu inspektoru klikněte na tlačítko Přidat komponentu .
- V nabídce zadejte do vyhledávacího pole Tagalong Action. Vyberte výsledek hledání.
- Ve složce Hologramy najděte asset Tagalong .
- Vyberte objekt ChestButton_Center v hierarchii. Přetáhněte objekt TagAlong z panelu Projekt do inspektoru do vlastnosti Object To Tagalong .
- Přetáhněte objekt Akce Tagalong z inspektoru do pole Interagovatelná akce ve skriptu Interagovatelné .
- Poklikejte na skript TagalongAction a otevřete ho v sadě Visual Studio.
Musíme přidat následující:
- Přidejte do funkce PerformAction ve skriptu TagalongAction (zděděné z InteractibleAction).
- Přidejte do objektu upřeného pohledu funkci latence a nastavte osu otáčení na XY.
- Potom do objektu přidejte jednoduché Tag-Along.
Tady je naše řešení z tagalongAction.cs:
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
using HoloToolkit.Unity;
using UnityEngine;
public class TagalongAction : InteractibleAction
{
[SerializeField]
[Tooltip("Drag the Tagalong prefab asset you want to display.")]
private GameObject objectToTagalong;
private void Awake()
{
if (objectToTagalong != null)
{
objectToTagalong = Instantiate(objectToTagalong);
objectToTagalong.SetActive(false);
/* TODO: DEVELOPER CODING EXERCISE 6.b */
// 6.b: AddComponent Billboard to objectToTagAlong,
// so it's always facing the user as they move.
Billboard billboard = objectToTagalong.AddComponent<Billboard>();
// 6.b: AddComponent SimpleTagalong to objectToTagAlong,
// so it's always following the user as they move.
objectToTagalong.AddComponent<SimpleTagalong>();
// 6.b: Set any public properties you wish to experiment with.
billboard.PivotAxis = PivotAxis.XY; // Already the default, but provided in case you want to edit
}
}
public override void PerformAction()
{
// Recommend having only one tagalong.
if (objectToTagalong == null || objectToTagalong.activeSelf)
{
return;
}
objectToTagalong.SetActive(true);
}
}
- Vyzkoušejte si to! Sestavte a nasaďte aplikaci.
- Sledujte, jak obsah sleduje střed pohledu, ale ne nepřetržitě a bez blokování.