Průvodce konfigurací profilu MRTK2

Mixed Reality Toolkit centralizuje co největší část konfigurace potřebné ke správě sady nástrojů (s výjimkou skutečných běhových "věcí").

Tato příručka je jednoduchý návod pro každou obrazovku konfiguračního profilu, která je aktuálně k dispozici pro sadu nástrojů.

Hlavní konfigurační profil sady Mixed Reality Toolkit

Hlavní konfigurační profil, který je připojený k objektu MixedRealityToolkit GameObject ve vaší scéně, poskytuje hlavní vstupní bod pro sadu nástrojů ve vašem projektu.

Poznámka

Mixed Reality Toolkit "uzamkne" výchozí konfigurační obrazovky, abyste měli vždy společný počáteční bod pro váš projekt, a doporučujeme začít definovat vlastní nastavení s tím, jak se váš projekt vyvíjí. Konfigurace MRTK není v režimu přehrávání upravitelná.

Konfigurační profil MRTK

Všechny "výchozí" profily pro Mixed Reality Toolkit najdete v projektu SADY SDK ve složce Assets/MRTK/SDK/Profiles.

Důležité

DefaultHoloLens2ConfigurationProfile je optimalizovaný pro HoloLens 2. Podrobnosti najdete v tématu Profily .

Když otevřete hlavní konfigurační profil sady Mixed Reality Toolkit, zobrazí se v inspektoru následující obrazovka:

Scéna konfigurace MRTK

Pokud vyberete prostředek MixedRealityToolkitConfigurationProfile bez mixedRealityToolkit ve scéně, zeptá se vás, jestli chcete, aby mrTK automaticky nastavil scénu za vás. Tato možnost je volitelná. pro přístup ke všem konfiguračním obrazovkám však musí být ve scéně aktivní objekt MixedRealityToolkit.

V tomto modulu je aktuální konfigurace aktivního modulu runtime pro projekt.

Tady můžete přejít na všechny konfigurační profily sady MRTK, včetně:

Tyto konfigurační profily jsou podrobně popsané níže v příslušných částech:


Nastavení prostředí

Toto nastavení, které se nachází na hlavní stránce konfigurace sady Mixed Reality Toolkit, definuje výchozí operaci škálování Mixed Reality prostředí pro váš projekt.

Nastavení zkušenosti

Nastavení kamery

Nastavení kamery definují způsob nastavení kamery pro váš Mixed Reality projekt a definují obecné nastavení oříznutí, kvality a průhlednosti.

Profil kamery

Nastavení vstupního systému

Mixed Reality Project poskytuje robustní a dobře vytrénovaný vstupní systém pro směrování všech vstupních událostí kolem projektu, který je ve výchozím nastavení vybraný.

Nastavení vstupního systému 1

Za vstupním systémem, který poskytuje MRTK, je několik dalších systémů, které pomáhají řídit a spravovat složité tkaní potřebné k abstrakci složitostí multi-platformové architektury / hybridní reality.

Nastavení vstupního systému 2

Každý z jednotlivých profilů je podrobně popsaný níže:


Nastavení vizualizace hranic

Hraniční systém překládá vnímanou hranici hlášenou podkladovým systémem hranic platforem / opatrovnictví. Konfigurace vizualizéru hranic umožňuje automaticky zobrazit zaznamenanou hranici v rámci vaší scény vzhledem k pozici uživatele. Hranice bude také reagovat nebo aktualizovat na základě toho, kde se uživatel teleportuje v rámci scény.

Nastavení vizualizace boundry

Výběr teleportačního systému

Mixed Reality Project poskytuje plnohodnotný teleportační systém pro správu teleportačních událostí v projektu, který je ve výchozím nastavení vybraný.

Nastavení systému teleportu

Nastavení prostorového sledování

Mixed Reality Project poskytuje nově vytvořený systém pro práci se systémy prostorového skenování v projektu, který je vybraný ve výchozím nastavení.

Nastavení prostorového sledování 1

Mixed Reality Konfigurace prostorového povědomí sady Toolkit umožňuje přizpůsobit způsob spuštění systému, zda je automaticky při spuštění aplikace nebo později programově, a také nastavit rozsahy pro zorné pole.

Umožňuje také nakonfigurovat nastavení sítě a povrchu a dále přizpůsobit, jak váš projekt rozumí prostředí kolem vás.

To platí jenom pro zařízení, která mohou poskytovat zkontrolované prostředí.

Nastavení prostorového sledování 2

Nastavení diagnostiky

Volitelnou, ale velmi užitečnou funkcí MRTK je funkce diagnostiky modulů plug-in.

Nastavení diagnostiky

Diagnostický profil poskytuje několik jednoduchých systémů pro monitorování, když je projekt spuštěný, včetně praktického přepínače On/Off pro povolení nebo zakázání panelu zobrazení ve scéně.

Nastavení diagnostiky Nastavení systému 2

Nastavení systému scény

MRTK poskytuje tuto volitelnou službu, která vám pomůže spravovat komplexní doplňkové načítání a uvolňování scén. Pokud se chcete rozhodnout, jestli by se systém scén pro váš projekt hodil, přečtěte si průvodce systémem scén Začínáme.

Nastavení systému scény 1

Další nastavení služeb

Jednou z pokročilejších oblastí sady Mixed Reality Toolkit je implementace modelu lokátoru služeb, která umožňuje registraci jakékoli služby v architektuře. To umožňuje snadno rozšířit architekturu o nové funkce nebo systémy, ale také umožňuje, aby projekty využily tyto možnosti k registraci vlastních komponent modulu runtime.

Každá registrovaná služba stále získává plnou výhodu všech událostí Unity, bez režie a nákladů na implementaci monobehaviour nebo neohrabných jednoúčelových vzorů. To umožňuje čisté komponenty jazyka C# bez režijní režie pro spouštění procesů popředí i na pozadí, jako jsou systémy vytváření, logika her runtime nebo prakticky cokoli jiného.

další nastavení systému

Nastavení vstupních akcí

Vstupní akce poskytují způsob, jak abstrahovat všechny fyzické interakce a vstupy z projektu modulu runtime. Veškerý fyzický vstup (z kontrolerů, rukou, myši atd.) se přeloží na logickou vstupní akci pro použití v projektu modulu runtime. To zajistí, že bez ohledu na to, odkud vstup pochází, projekt tyto akce jednoduše implementuje jako "Co dělat" nebo "Interakce s" ve vašich scénách.

Pokud chcete vytvořit novou vstupní akci, stačí kliknout na tlačítko Přidat novou akci a zadat popisný název textu, který bude představovat. Pak stačí vybrat pouze osu (typ dat), ke které má akce předat, nebo v případě fyzických kontrolerů fyzický typ vstupu, ke kterému se dá připojit, například:

Omezení osy Typ dat Popis Příklad použití
Žádné Žádná data Používá se pro prázdnou akci nebo událost. Aktivační událost
Nezpracované (rezervované) object Vyhrazeno pro budoucí použití
Digital bool Logická data typu zapnutí nebo vypnutí Tlačítko ovladače
Jedna osa float Datová hodnota s jednou přesností Vstup s rozsahem, například aktivační událost
Duální osa Vector2 Datum s duálním plovoucím typem pro více os Dpad nebo palec
Tři pozice Dof Vector3 Data pozičního typu z 3 plovoucí osy Ovladač pouze pro 3D styl pozice
Tři otočení Dof Quaternion Pouze rotační vstup se 4 plovoucí osou Kontroler stylu Tři stupně, např. Oculus Go
Šest dof Mixed Reality pose (Vector3, quaternion) Zadávání stylu pozice a otočení s komponentami Vector3 i Quaternion Ovladač pohybu nebo ukazatel

Události využívající vstupní akce nejsou omezeny na fyzické kontrolery a stále je možné je v rámci projektu využít, aby efekty modulu runtime vygenerovaly nové akce.

Poznámka

Vstupní akce jsou jednou z mála komponent, které není možné upravovat za běhu. Jedná se pouze o konfiguraci doby návrhu. Tento profil by neměl být prohozen, když je projekt spuštěný kvůli závislosti architektury (a vašich projektů) na ID vygenerovaném pro každou akci.

Konfigurační profil

Pravidla vstupních akcí

Pravidla vstupní akce poskytují způsob, jak automaticky převést událost vyvolanou pro jednu vstupní akci do různých akcí v závislosti na hodnotě dat. Ty se spravují bez problémů v rámci architektury a neúčtují se u nich žádné náklady na výkon.

Můžete například převést jednu vstupní událost duální osy z DPad v na 4 odpovídající akce "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" (jak je znázorněno na obrázku níže).

Můžete to provést také ve vlastním kódu. Vzhledem k tomu, že se jedná o velmi běžný model, ale architektura poskytuje mechanismus, jak to provést "hned od samého samého pohledu".

Pravidla vstupní akce lze nakonfigurovat pro libovolnou dostupnou vstupní osu. Vstupní akce z jednoho typu osy se ale dají přeložit na jinou vstupní akci stejného typu osy. Akci s duální osou můžete namapovat na jinou akci se dvěma osou, ale ne na digitální nebo žádnou akci.

Profil pravidel vstupních akcí


Konfigurace ukazatele

Ukazatele se používají k řízení interaktivity ve scéně z libovolného vstupního zařízení a poskytují směr a test hitu s libovolným objektem ve scéně (který má připojený schvalovač nebo je součástí uživatelského rozhraní). Ukazatele se ve výchozím nastavení automaticky konfigurují pro ovladače, náhlavní soupravy (pohled / fokus) a vstup myši / dotykového ovládání.

Ukazatele lze také vizualizovat v rámci aktivní scény pomocí jedné z mnoha komponent řádku, které poskytuje sada Mixed Reality Toolkit, nebo jakékoli z vašich vlastních, pokud implementují rozhraní MRTK IMixedRealityPointer.

Vstupní profil ukazatele
  • Rozsah ukazatele: Určuje globální rozsah ukazování pro všechny ukazatele, včetně pohledu.
  • Ukazování masky vrstvy Raycastu: Určuje, na které vrstvy budou ukazatele raycast.
  • Ladění paprsků bodování kreslení: Pomocník ladění pro vizualizaci paprsků používaných pro raycasting.
  • Ladění barev paprsků nakreslených paprsků: Sada barev, které se mají použít pro vizualizaci.
  • Prefab kurzoru pohledu: Umožňuje snadno určit globální kurzor pohledu pro libovolnou scénu.

K dispozici je další pomocné tlačítko, které rychle přejde na poskytovatele pohledu a v případě potřeby přepíše některé konkrétní hodnoty pro Gaze.


Konfigurace gest

Gesta jsou implementace specifická pro systém, která umožňuje přiřazovat vstupní akce různým metodám zadávání gest poskytovaným různými sadami SDK (např. HoloLens).

Poznámka

Aktuální implementace Gest je určena pouze pro HoloLens a bude rozšířena pro ostatní systémy, protože se v budoucnu přidají do sady nástrojů (zatím bez dat).

Konfigurace gest

Hlasové příkazy

Podobně jako gesta poskytují některé platformy modulu runtime také inteligentní funkci převodu řeči na text s možností generovat příkazy, které může projekt Unity přijímat. Tento konfigurační profil umožňuje nakonfigurovat následující:

  1. Obecná nastavení – "Chování spuštění" nastavené na Automatické spuštění nebo Ruční spuštění určuje, jestli se má inicializovat KeywordRecognizer při spuštění vstupního systému, nebo nechat projekt rozhodnout, kdy se má inicializovat KeywordRecognizer. "Úroveň spolehlivosti rozpoznávání" se používá k inicializaci rozhraní Unity KeywordRecognizer API.
  2. Příkazy řeči – Zaregistruje "slova" a přeloží je na vstupní akce, které může váš projekt přijímat. V případě potřeby je možné je také připojit k akcím pomocí klávesnice.

Důležité

Systém v současné době podporuje řeč pouze při spuštění na Windows 10 platformách, jako je HoloLens a Windows 10 desktop, a bude rozšířen pro další systémy, které se budou přidávat do MRTK v budoucnu (zatím žádná data).

Obrazovky konfiguračního profilu

Konfigurace mapování kontroleru

Jednou ze základních konfiguračních obrazovek sady Mixed Reality Toolkit je možnost konfigurovat a mapovat různé typy kontrolerů, které může váš projekt využívat.

Na konfigurační obrazovce níže můžete nakonfigurovat kterýkoli z kontrolerů aktuálně rozpoznaných sadou nástrojů.

Mapování kontroleru

MRTK poskytuje výchozí konfiguraci pro následující kontrolery / systémy:

  • Myš (včetně podpory prostorové 3D myši)
  • Touch Screen
  • Ovladače pro Xbox
  • Windows Mixed Reality kontrolerů
  • Gesta HoloLensu
  • Ovladače HTC Vive wand
  • Ovladače Oculus Touch
  • Dálkový ovladač Oculus
  • Obecná zařízení OpenVR (jenom pokročilí uživatelé)

Kliknutím na Obrázek některého z předdefinovaných systémů řadičů můžete nakonfigurovat jednu vstupní akci pro všechny odpovídající vstupy, například viz konfigurační obrazovka dotykového ovladače Oculus níže:

Obrazovka konfigurace kontroleru

K dispozici je také rozšířená obrazovka pro konfiguraci dalších vstupních kontrolerů OpenVR nebo Unity, které nejsou uvedené výše.


Nastavení vizualizace kontroleru

Kromě mapování kontroleru je k dispozici samostatný konfigurační profil pro přizpůsobení způsobu zobrazení kontrolerů ve vašich scénách.

To může být nakonfigurováno na "globální" (všechny instance kontroleru pro určitou ruku) nebo specifické pro jednotlivé typy kontroleru nebo ruky.

MRTK také podporuje nativní modely kontroleru sady SDK pro Windows Mixed Reality a OpenVR. Tyto objekty jsou načteny jako GameObjects ve vaší scéně a umístěny pomocí sledování ovladače platformy.

Pokud je potřeba, aby reprezentace kontroleru ve scéně byla posunutá od fyzické pozice ovladače, jednoduše nastavte tento posun proti prefabu modelu kontroleru (např. nastavení pozice transformace prefabu kontroleru s polohou posunu).

Profil vizualizace

Nástroje editoru

Následující nástroje fungují jenom v editoru a jsou užitečné pro zvýšení produktivity vývoje.

Nástroje pro konfiguraci editoru MRTK

Inspektoři služeb

Inspektoři služeb jsou funkce jen pro editor, která generuje objekty ve scéně představující aktivní služby. Při výběru těchto objektů se zobrazí inspektory, které nabízejí odkazy na dokumentaci, kontrolu nad vizualizacemi editoru a přehled o stavu služby.

Inspektoři služeb

Kontrolu služeb můžete povolit zaškrtnutím políčka Použít inspektory služby v nastavení editoru v konfiguračním profilu.

Vykreslovač hloubkové vyrovnávací paměti

Sdílení hloubkové vyrovnávací paměti s některými platformami hybridní reality může zlepšit stabilizaci hologramu. Platforma Windows Mixed Reality může například upravit vykreslenou scénu na pixel tak, aby zohlednila jemné pohyby hlavy během doby, která trvala vykreslení snímku. Tyto techniky však vyžadují hloubkové vyrovnávací paměti s přesnými daty, aby bylo jasné, kde a jak daleko je geometrie od uživatele.

Aby se zajistilo, že scéna vykreslí všechna potřebná data do hloubkové vyrovnávací paměti, můžou vývojáři přepnout funkci Vyrovnávací paměť hloubky vykreslování v části Nastavení editoru v konfiguračním profilu. Tím vezmete aktuální vyrovnávací paměť hloubky a vykreslíte ji jako barvu zobrazení scény použitím efektu následného zpracování , DepthBufferRendererna hlavní kameru.

Render Depth Buffer UtilityModrý válec ve scéně má materiál s vypnutým ZWrite, takže nejsou zapsána žádná data hloubky

Změna profilů za běhu

Profily je možné aktualizovat za běhu a obecně existují dva různé scénáře a časy, ve kterých je to užitečné:

  1. Přepínač profilu inicializace před MRTK: Při spuštění se před inicializací sady MRTK a aktivací profilu nahradí profil, který ještě nepoužíváte, a povolí nebo zakáže různé funkce na základě možností zařízení. Pokud například prostředí běží ve virtuální realitě, která nemá hardware pro prostorové mapování, pravděpodobně nemá smysl mít povolenou komponentu prostorového mapování.
  2. Přepínač aktivního profilu: Po spuštění se po inicializaci sady MRTK a aktivaci profilu prohození aktuálně používaného profilu změní způsob chování určitých funkcí. V aplikaci může být například určité dílčí prostředí, které chce zcela odebrat ukazatele vzdálené ruky.

Přepínač profilu inicializace před MRTK

Toho lze dosáhnout připojením MonoBehaviour (příklad níže), který se spustí před inicializací MRTK (tj. Awake()). Všimněte si, že skript (tj. volání SetProfileBeforeInitialization) musí být spuštěn dříve než MixedRealityToolkit skript, což lze dosáhnout nastavením pořadí spouštění skriptů.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when MRTK initializes it uses the profile specified below
/// rather than the one that is saved in its scene.
/// </summary>
/// <remarks>
/// Note that this script must have a higher priority in the script execution order compared
/// to that of MixedRealityToolkit.cs. See https://docs.unity3d.com/Manual/class-MonoManager.html
/// for more information on script execution order.
/// </remarks>
public class PreInitProfileSwapper : MonoBehaviour
{

    [SerializeField]
    private MixedRealityToolkitConfigurationProfile profileToUse = null;

    private void Awake()
    {
        // Here you could choose any arbitrary MixedRealityToolkitConfigurationProfile (for example, you could
        // add some platform checking code here to determine which profile to load).
        MixedRealityToolkit.SetProfileBeforeInitialization(profileToUse);
    }
}

Místo "profileToUse" je možné mít libovolnou sadu profilů, které platí pro konkrétní platformy (například jeden pro HoloLens 1, jeden pro VIRTUÁLNÍ realitu, jeden pro HoloLens 2 atd.). K určení profilu, který se má načíst, je možné použít různé další indikátory (např. https://docs.unity3d.com/ScriptReference/SystemInfo.html, nebo jestli je kamera neprůhledná nebo netransparentní).

Přepínač aktivního profilu

Toho lze dosáhnout nastavením MixedRealityToolkit.Instance.ActiveProfile vlastnosti na nový profil, který nahradí aktivní profil.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Všimněte si, že při nastavení ActiveProfile během běhu dojde ke zničení aktuálně spuštěných služeb po posledním LateUpdate() všech služeb a vytvoření instance a inicializace služeb přidružených k novému profilu proběhne před první aktualizací() všech služeb.

Během tohoto procesu může dojít k znatelnému zaváhání aplikace. Každý skript s vyšší prioritou, než je MixedRealityToolkit skript, může před správným nastavením nového profilu zadat aktualizaci. Další informace o prioritě skriptu najdete v tématu Nastavení pořadí spouštění skriptů.

V procesu přepínání profilu zůstane stávající kamera uživatelského rozhraní beze změny, aby komponenty uživatelského rozhraní Unity, které vyžadují plátno, fungovaly i po přepnutí.

Viz také