Průvodce konfigurací profilu MRTK

Hlavní Mixed Reality Toolkit co nejvíce centralizuje konfiguraci vyžadované pro správu sady nástrojů (s výjimkou skutečného modulu runtime "things").

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

Hlavní konfigurační Mixed Reality Toolkit počítače

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

Poznámka

Obrazovka Mixed Reality Toolkit výchozí konfigurační obrazovky, aby se zajistilo, že pro svůj projekt máte vždy společný počáteční bod, a doporučujeme začít definovat vlastní nastavení s tím, jak se bude váš projekt vyvíjet. Konfiguraci MRTK není možné během režimu přehrávání upravovat.

Konfigurační profil MRTK

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

Důležité

DefaultHoloLens2ConfigurationProfile je optimalizovaný pro HoloLens 2. Podrobnosti najdete v části Profily.

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

MRTK configuration scene

Pokud ve scéně vyberete prostředek MixedRealityToolkitConfigurationProfile bez sady MixedRealityToolkit, zobrazí se dotaz, jestli má MRTK automaticky nastavit scénu za vás. Tato možnost je volitelná, ale pro přístup ke všem obrazovkám konfigurace musí být ve scéně aktivní objekt MixedRealityToolkit.

V tomto modulu je aktuální aktivní konfigurace modulu runtime projektu.

Tady můžete přejít ke všem konfiguračním profilům mrtk, včetně:

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


Nastavení prostředí

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

Experiance settings

Nastavení fotoaparátu

Nastavení fotoaparátu definuje, jak se bude fotoaparát pro váš projekt Mixed Reality, a definuje obecné nastavení oříznutí, kvality a průhlednosti.

Camera Profile

Nastavení vstupního systému

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

Input System settings 1

Za vstupním systémem, který poskytuje MRTK, je několik dalších systémů, které pomáhají řídit a spravovat komplexní propletení, která jsou nutná k abstrakci složitostí architektury pro více platforem a hybridní realitu.

Input System settings 2

Jednotlivé profily jsou podrobně uvedená níže:


Nastavení vizualizace hranic

Hraniční systém překládá vnímané hranice hlášené základními hranicemi platforem nebo systémem strážce. Konfigurace vizualizéru hranic umožňuje automaticky zobrazit zaznamenané hranice ve vaší scéně vzhledem k pozici uživatele. Hranice bude také reagovat/aktualizovat na základě toho, kam se uživatel teleportuje ve scéně.

Boundry Visualization Settings

Výběr systému teleportace

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

Teleport System settings

Nastavení prostorového povědomí

Nástroj Mixed Reality Project nový systém prostorového povědomí pro práci se systémy prostorové kontroly v projektu, který je vybraný ve výchozím nastavení.

Spatial Awareness settings 1

Konfigurace Mixed Reality Toolkit prostorového povědomí umožňuje přizpůsobit způsob spuštění systému, ať už je to automaticky při spuštění aplikace nebo později prostřednictvím kódu programu, 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 naskenované prostředí.

Spatial Awareness settings 2

Nastavení diagnostiky

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

Diagnostics settings

Diagnostický profil poskytuje několik jednoduchých systémů, které je možné monitorovat, když je projekt spuštěný, včetně pohotového přepínače Pro zapnutí/vypnutí pro povolení nebo zakázání panelu zobrazení ve scéně.

Diagnostics settings System settings 2

Nastavení systému scény

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

Scene System settings 1

Nastavení dalších služeb

Jednou z pokročilejších oblastí Mixed Reality Toolkit je implementace vzoru lokátoru služby, která umožňuje registraci jakékoli "služby" v rámci architektury. To umožňuje snadné rozšíření architektury o nové funkce a systémy, ale také umožňuje projektům využívat tyto funkce k registraci vlastních komponent modulu runtime.

Každá zaregistrovaná služba stále plně využívá všechny události Unity bez režie a nákladů na implementaci vzorců MonoBehaviour nebo clunky singleton. To umožňuje čistě komponenty jazyka C# bez režijních nákladů na scénu pro spouštění procesů na popředí i na pozadí, jako jsou například systémy pro začátečnění, logika běhových her nebo prakticky cokoli jiného.

additional System settings

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ží do logické vstupní akce, která se použije ve vašem projektu modulu runtime. Tím zajistíte, že bez ohledu na to, odkud vstup pochází, váš projekt tyto akce jednoduše implementuje jako "Co dělat" nebo "Pracovat 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ý textový název, který představuje. Pak je potřeba vybrat jenom osu (typ dat), ke které má akce vyjádřit, nebo v případě fyzických kontrolerů typ fyzického vstupu, ke které je možné 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. Trigger události
Nezpracované (vyhrazené) object Vyhrazeno pro budoucí použití
Digital bool Logická nebo volná data typu Tlačítko kontroleru
Jednoduchá osa float Jedna hodnota přesnosti dat Vstupní rozsah, například Trigger
Dvojitá osa Vector2 Dvojité datum typu float pro více osy Dpad nebo Thumbstick
Tři DOF pozice Vector3 Poziční data typu ze 3 osy float kontroler pouze ve stylu 3D pozice
Tři DOF otáčení Quaternion Pouze rotace s 4 čárkou na ose Kontroler se třemi stupnými styly, např. Oculus jít Controller
Šest DOF Pozice smíšené reality (Vector3, Quaternion) Vstupní styl pozice a rotace s komponentami Vector3 a Quaternion Kontroler pohybu nebo ukazatel

Události, které využívají vstupní akce, nejsou omezeny na fyzické řadiče a je možné je v rámci projektu i nadále využít k vygenerování nových akcí za běhu.

Poznámka

Vstupní akce jsou jedna z několika součástí, které nelze upravovat za běhu, jedná se pouze o konfiguraci pro dobu návrhu. Tento profil by neměl být zaměněn, zatímco projekt běží v důsledku závislosti architektury (a vašich projektů) na základě ID generovaného pro každou akci.

Configuration Profile

Vstupní pravidla akcí

Pravidla vstupní akce poskytují způsob, jak automaticky přeložit událost vyvolanou pro jednu akci vstupu v rámci na různé akce na základě její hodnoty dat. Tyto položky jsou v rámci architektury bezproblémově spravované a neúčtují se žádné náklady na výkon.

Například převod jedné vstupní události dual osy z DPad na 4 odpovídající "Dpad nahoru"/"DPad dolů"/"Dpad left"/"Dpad Right" Actions (jak je znázorněno na obrázku níže).

To lze provést také ve vlastním kódu. Podívejte se, jak by se jednalo o velmi společný vzor, rozhraní poskytuje mechanismus pro to, aby se tento postup vyvolal. "

Pravidla vstupní akce lze nakonfigurovat pro libovolnou dostupnou vstupní osu. Vstupní akce z jednoho typu osy však lze přeložit na jinou akci vstupu stejného typu osy. Akci dvou OS můžete namapovat na jinou akci s duální osou, ale ne na akci digitálního nebo žádného.

Profil pravidel vstupních akcí


Konfigurace ukazatele

Ukazatele slouží k řízení interaktivity v rámci scény z libovolného vstupního zařízení, který poskytuje směr a test volání s libovolným objektem ve scéně (který má připojený kolidující nebo je součástí uživatelského rozhraní). Ukazatele jsou standardně nakonfigurované automaticky pro řadiče, sluchátka s mikrofony (pohledu/Focus) a vstupy myši/dotykové ovládání.

ukazatele lze také vizuálně kombinovat v rámci aktivní scény pomocí jedné z mnoha komponent na řádku, které poskytuje Mixed Reality Toolkit, nebo libovolné vlastní, pokud implementují rozhraní IMixedRealityPointer MRTK.

Input Pointer Profile
  • Point-to-rozsah: Určuje globální rozsah ukázání pro všechny ukazatele, včetně pohledu.
  • Ukazovací Raycast masek vrstev: Určuje, které ukazatele vrstev budou Raycast proti.
  • Ladění kreslících ukazující paprsky: Pomocník pro ladění pro vizualizaci paprsků používaných pro raycasting.
  • Ladění barev ukazujících paprsků: sada barev, která se má použít pro vizualizaci.
  • Pohledu Cursor Prefab: usnadňuje zadání globálního pohledu kurzoru pro libovolnou scénu.

K dispozici je další pomocné tlačítko pro rychlé přechod k poskytovateli pohledu, aby v případě potřeby přepsal určité konkrétní hodnoty pro pohledu.


Konfigurace gest

Gesta představují implementaci specifická pro systém, která umožňuje přiřadit vstupní akce různým vstupním metodám "gesta", které poskytují různé sady SDK (např. HoloLens).

Poznámka

aktuální implementace gest je určena jenom pro HoloLens a bude vylepšená pro ostatní systémy, které se přidají do Toolkit v budoucnu (žádné datum ještě ne).

Gesture configuration

Příkazy řeči

Stejně jako gesta, některé běhové platformy také poskytují inteligentní funkce "Speech to text" s možností Generovat příkazy, které mohou být přijaty projektem Unity. Tento konfigurační profil vám umožní nakonfigurovat následující:

  1. obecné Nastavení – "spuštění chová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á KeywordRecognizer inicializovat. Pro inicializaci rozhraní KeywordRecognizer API Unity se používá úroveň spolehlivosti pro rozpoznávání.
  2. Příkazy řeči – registruje slova a přeloží je na vstupní akce, které může váš projekt přijmout. V případě potřeby je také možné připojit k akcím klávesnice.

Důležité

systém momentálně podporuje rozpoznávání řeči jenom v případě, že běží na Windows 10 platformách, třeba HoloLens a Windows 10 desktopu, a bude se pro ostatní systémy přiMRTK v budoucnu (žádné datum).

Configuration Profile screens

Konfigurace mapování kontroleru

jedna z klíčových obrazovek konfigurace pro Mixed Reality Toolkit je možnost konfigurace a mapování různých typů řadičů, které může váš projekt využívat.

Níže uvedená obrazovka konfigurace vám umožní nakonfigurovat kterýkoli z řadičů, které sada nástrojů aktuálně rozezná.

Controller Mapping

MRTK poskytuje výchozí konfiguraci pro následující řadiče nebo systémy:

  • Myš (včetně podpory prostorového myši)
  • Touch Screen
  • Řadiče Xbox
  • řadiče Windows Mixed Reality
  • HoloLens Gesta
  • Řadiče HTC a hůlka
  • Oculus Touch Controllers
  • Vzdálený kontroler Oculus
  • Obecná zařízení OpenVR (jenom pokročilí uživatelé)

Kliknutím na obrázek pro kterýkoli z předem připravených systémů můžete nakonfigurovat jednu akci vstupu pro všechny odpovídající vstupy, například na obrazovce konfigurace Oculus Touch Controller níže:

Controller config screen

K dispozici je také pokročilá obrazovka pro konfiguraci jiných řadičů vstupu 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, jakým se vaše řadiče zobrazují na pozadí.

Dá se nakonfigurovat na "globální" (všechny instance kontroleru pro konkrétní ruku) nebo pro konkrétní typ/ruku samostatného kontroleru.

MRTK podporuje také modely nativních kontrol sady SDK pro Windows Mixed Reality a OpenVR. Ty se načítají jako GameObjects ve scéně a jsou umístěné pomocí sledování řadiče platformy.

Pokud je nutné, aby byl váš kontroler reprezentace v scéně posunut od pozice fyzického kontroleru, pak jednoduše nastavte tento posun proti Prefab modelu řadiče (např. nastavení pozice transformace řadiče Prefab s umístěním posunu).

Visualization profile

Nástroje editoru

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

Nástroje pro konfiguraci editoru MRTK

Kontroloři služeb

Kontroly služeb jsou funkce pouze pro Editor, která generuje objekty ve scéně, které představují aktivní služby. Výběrem těchto objektů zobrazíte inspektory, které nabízejí odkazy na dokumentaci, kontrolu nad vizualizacemi editoru a přehled o stavu služby.

Service Inspectors

chcete-li povolit nástroje pro kontrolu služby, zaškrtněte v části Editor Nastavení v konfiguračním profilu možnost použít nástroje pro kontroly služby .

Zobrazovací jednotka vyrovnávací paměti hloubky

Sdílení vyrovnávací paměti hloubky s některými smíšenými platformami realit může zlepšit stabilizaci hologramů. například platforma Windows Mixed Reality může upravit vykreslenou scénu na pixel na účet pro drobný pohyby v průběhu času, kdy trvalo vykreslení snímku. Tyto techniky však vyžadují hloubkové vyrovnávací paměti s přesnými daty, abyste věděli, kde a jak daleko od uživatele je geometrie.

aby se zajistilo, že scéna vykreslí všechna potřebná data do vyrovnávací paměti, vývojáři můžou v konfiguračním profilu v části Editor Nastavení přepnout funkci vyrovnávací paměti hloubky vykreslování . To bude mít aktuální velikost vyrovnávací paměti pro hloubku a vykreslit ji jako barvu do zobrazení scény, a to pomocí efektu následného zpracování, DepthBufferRenderer a to do hlavní kamery.

Nástroj pro vyrovnávací paměť hloubky vykreslení modrý válec ve scéně má materiál s ZWrite vypnuto, takže se nezapisují žádná data hloubky .

Změna profilů za běhu

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

  1. Přepínač profilu inicializace MRTK: při spuštění se před inicializací MRTK a profilem aktivní se nahradí profil nepoužitý, aby bylo možné na základě možností zařízení povolit nebo zakázat různé funkce. Pokud je například prostředí spuštěné ve VR, které nemá hardware pro mapování prostorového mapování, pravděpodobně nemá smysl povolit komponentu prostorového mapování.
  2. Aktivní profilový přepínač: po spuštění se po inicializaci MRTK a profil stane aktivním a mění se způsob, jakým se některé funkce chovají. V aplikaci může být například konkrétní dílčí prostředí, které chce zcela odebrat úplně koncové ukazatele.

Přepínač profilu inicializace pre MRTK

Toho lze dosáhnout připojením monobehaviour (příklad níže), který se spustí před inicializací MRTK (tj. Vous()). Všimněte si, že skript (tj. volání metody ) je třeba spustit dříve než skript, což lze provést nastavením pořadí provádění SetProfileBeforeInitialization MixedRealityToolkit skriptů.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when the 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é se vztahují na konkrétní platformy (například jeden pro HoloLens 1, jeden pro VR, 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ř. nebo to, jestli je fotoaparát neprůhledný https://docs.unity3d.com/ScriptReference/SystemInfo.html nebo transparentní).

Přepínač aktivního profilu

Toho lze dosáhnout nastavením vlastnosti na MixedRealityToolkit.Instance.ActiveProfile nový profil nahrazením aktivního profilu.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

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

Během tohoto procesu může dojít k znatelným problémům s aplikacemi. Před správným nastavením nového profilu může do aktualizace zadat také jakýkoli skript s vyšší MixedRealityToolkit prioritou, než je jeho priorita. Další informace o prioritě skriptu najdete v tématu Nastavení pořadí spouštění skriptů.

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

Viz také