Configuratiehandleiding voor MRTK-profiel

De Mixed Reality Toolkit centraliseert zoveel mogelijk van de configuratie die nodig is om de toolkit te beheren (met uitzondering van echte runtime 'dingen').

Deze handleiding is een eenvoudig overzicht voor elk van de configuratieprofielcontroles die momenteel beschikbaar zijn voor de toolkit.

Het hoofdprofiel Mixed Reality Toolkit configuratieprofiel

Het hoofdconfiguratieprofiel, dat is gekoppeld aan het MixedRealityToolkit GameObject in uw Scène, biedt het belangrijkste toegangspunt voor de Toolkit in uw project.

Notitie

De Mixed Reality Toolkit 'vergrendelt' de standaardconfiguratieschermen om ervoor te zorgen dat u altijd een gemeenschappelijk beginpunt voor uw project hebt en wordt aangeraden om uw eigen instellingen te definiëren naarmate uw project zich ontwikkelt. De MRTK-configuratie kan niet worden bewerkt tijdens de afspeelmodus.

MRTK configuration profile

Alle standaardprofielen voor de Mixed Reality Toolkit zijn te vinden in het SDK-project in de map Assets/MRTK/SDK/Profiles.

Belangrijk

DefaultHoloLens2ConfigurationProfile is geoptimaliseerd voor HoloLens 2. Zie Profielen voor de details.

Wanneer u het hoofdprofiel Mixed Reality Toolkit configuratieprofiel opent, ziet u het volgende scherm in de inspector:

MRTK configuration scene

Als u een MixedRealityToolkitConfigurationProfile-asset selecteert zonder de MixedRealityToolkit in de scène, wordt u gevraagd of de MRTK de scène automatisch voor u moet instellen. Dit is optioneel, maar er moet een actief MixedRealityToolkit-object in de scène zijn om toegang te krijgen tot alle configuratieschermen.

Dit bevat de huidige actieve runtimeconfiguratie voor het project.

Hier kunt u navigeren naar alle configuratieprofielen voor de MRTK, waaronder:

Deze configuratieprofielen worden hieronder beschreven in de relevante secties:


Ervaringsinstellingen

Op de hoofdpagina van Mixed Reality Toolkit configuratie definieert deze instelling de standaardbewerking van de Mixed Reality omgevingsschaal voor uw project.

Experiance settings

Camera-instellingen

De camera-instellingen definiëren hoe de camera wordt ingesteld voor uw Mixed Reality project, het definiëren van de algemene instellingen voor knipsels, kwaliteit en transparantie.

Camera Profile

Systeeminstellingen voor invoer

De Mixed Reality Project biedt een robuust en goed getraind invoersysteem voor het routeren van alle invoergebeurtenissen rond het project dat standaard is geselecteerd.

Input System settings 1

Achter het invoersysteem van de MRTK bevinden zich verschillende andere systemen, deze helpen bij het stimuleren en beheren van de complexe interavings die nodig zijn om de complexiteit van een multiplatform / mixed reality-framework te abstraheren.

Input System settings 2

Elk van de afzonderlijke profielen wordt hieronder beschreven:


Instellingen voor grensvisualisatie

Het grenssysteem vertaalt de waargenomen grens die is gerapporteerd door de onderliggende platformgrens/guardiansysteem. Met de configuratie Van grens visualiseren kunt u automatisch de opgenomen grens binnen uw scène weergeven ten opzichte van de positie van de gebruiker. De grens reageert/update ook op basis van waar de gebruiker teleporteert binnen de scène.

Boundry Visualization Settings

Selectie van teleportatiesysteem

De Mixed Reality Project biedt een volledig teleportatiesysteem voor het beheren van teleportatiegebeurtenissen in het project dat standaard is geselecteerd.

Teleport System settings

Instellingen voor ruimtelijk bewustzijn

De Mixed Reality Project biedt een herbouwd ruimtelijk bewustzijnssysteem voor het werken met ruimtelijke scansystemen in het project dat standaard is geselecteerd.

Spatial Awareness settings 1

Met de Mixed Reality Toolkit configuratie voor ruimtelijk bewustzijn kunt u aanpassen hoe het systeem wordt gestart, of het nu automatisch gebeurt wanneer de toepassing wordt gestart of later programmatisch wordt gestart en de gebieden voor het weergaveveld instelt.

U kunt hiermee ook de mesh- en surface-instellingen configureren, zodat u verder kunt aanpassen hoe uw project de omgeving om u heen begrijpt.

Dit is alleen van toepassing op apparaten die een gescande omgeving kunnen bieden.

Spatial Awareness settings 2

Diagnostische instellingen

Een optionele maar zeer nuttige functie van de MRTK is de diagnostische functionaliteit van de invoegtoepassing.

Diagnostics settings

Het diagnostische profiel biedt verschillende eenvoudige systemen om te controleren terwijl het project wordt uitgevoerd, inclusief een handige aan/uit-schakelaar om het weergavepaneel in de scène in of uit te schakelen.

Diagnostics settings System settings 2

Instellingen voor scènesysteem

De MRTK biedt deze optionele service om u te helpen bij het beheren van complexe additieve scène laden / lossen. Als u wilt bepalen of het Scènesysteem geschikt is voor uw project, leest u de scènesysteem-Aan de slag guide.

Scene System settings 1

Aanvullende services-instellingen

Een van de meer geavanceerde gebieden van de Mixed Reality Toolkit is de implementatie van het servicezoekerpatroon waarmee elke service met het framework kan worden geregistreerd. Hierdoor kan het framework eenvoudig worden uitgebreid met nieuwe functies/systemen, maar kunnen projecten ook profiteren van deze mogelijkheden om hun eigen runtime-onderdelen te registreren.

Elke geregistreerde service krijgt nog steeds het volledige voordeel van alle Unity-gebeurtenissen, zonder de overhead en kosten van het implementeren van een MonoBehaviour- of onhandige singleton-patronen. Dit maakt pure C#-onderdelen zonder scèneoverhead mogelijk voor het uitvoeren van zowel voorgrond- als achtergrondprocessen, zoals spawningsystemen, runtime gamelogica of vrijwel alles anders.

additional System settings

Instellingen voor invoeracties

Invoeracties bieden een manier om fysieke interacties en invoer van een runtimeproject te abstraheren. Alle fysieke invoer (van controllers / handen / muis / etc) wordt vertaald in een logische invoeractie voor gebruik in uw runtime-project. Dit zorgt ervoor, ongeacht waar de invoer vandaan komt, uw project implementeert deze acties gewoon als 'Dingen om te doen' of 'Communiceren met' in uw scènes.

Als u een nieuwe invoeractie wilt maken, klikt u op de knop Een nieuwe actie toevoegen en voert u een beschrijvende tekstnaam in voor wat deze vertegenwoordigt. Vervolgens hoeft u alleen een as (het type gegevens) te selecteren dat de actie moet overbrengen, of in het geval van fysieke controllers, het fysieke invoertype waaraan deze kan worden gekoppeld, bijvoorbeeld:

Asbeperking Gegevenstype Beschrijving Voorbeeldgebruik
Geen Geen gegevens Wordt gebruikt voor een lege actie of gebeurtenis Gebeurtenistrigger
Onbewerkt (gereserveerd) object Gereserveerd voor toekomstig gebruik N.v.t.
Digitaal booleaans Een Booleaanse waarde voor het type gegevens Een controllerknop
Eén as float Eén precisiegegevenswaarde Een bereikinvoer, bijvoorbeeld een trigger
Dubbele as Vector2 Een datum van het dubbele floattype voor meerdere as Een Dpad of Duimstick
Drie dof-positie Vector3 Positietypegegevens van 3 float-as 3D-positiestijl alleen controller
Drie dof-draaiing Accordnion Alleen draaiingsinvoer met 4 float-as Een 3 graden stijl controller, bijvoorbeeld Oculus Go controller
Zes dof Mixed Reality Pose (Vector3, Encryptionnion) Een positie- en draaistijlinvoer met zowel Vector3- als Vectornion-onderdelen Een bewegingscontroller of aanwijzer

Gebeurtenissen die gebruikmaken van invoeracties zijn niet beperkt tot fysieke controllers en kunnen nog steeds worden gebruikt binnen het project om runtime-effecten te genereren nieuwe acties.

Notitie

Invoeracties zijn een van de weinige onderdelen die tijdens runtime niet kunnen worden bewerkt, ze zijn alleen een ontwerptijdconfiguratie. Dit profiel mag niet worden gewisseld terwijl het project wordt uitgevoerd vanwege de frameworkafhankelijkheid (en uw projecten) van de id die voor elke actie is gegenereerd.

Configuration Profile

Regels voor invoeracties

Regels voor invoeracties bieden een manier om automatisch een gebeurtenis te vertalen die is gegenereerd voor één invoeractie in verschillende acties op basis van de gegevenswaarde. Deze worden naadloos beheerd binnen het framework en er worden geen prestatiekosten in rekening gebracht.

Als u bijvoorbeeld de invoergebeurtenis met één dubbele as converteert van een DPad in naar de 4 bijbehorende 'Dpad omhoog' / 'DPad omlaag' / 'Dpad links' /'Dpad rechts' (zoals wordt weergegeven in de onderstaande afbeelding).

Dit kan ook in uw eigen code worden gedaan. Aangezien dit echter een heel gebruikelijk patroon was, biedt het framework een mechanisme om dit 'out-of-the-box' te doen

Regels voor invoeracties kunnen worden geconfigureerd voor een van de beschikbare invoeras. Invoeracties van het ene astype kunnen echter worden omgezet in een andere invoeractie van hetzelfde astype. U kunt een actie met dubbele as toewijzen aan een andere actie met dubbele as, maar niet aan een digitale of geen actie.

Input action rules profile


Aanwijzerconfiguratie

Aanwijzers worden gebruikt om interactiviteit in de scène te stimuleren vanaf elk invoerapparaat, waardoor zowel een richting als een hittest wordt gegeven met elk object in een scène (dat een collider is gekoppeld of een UI-onderdeel is). Aanwijzers worden standaard automatisch geconfigureerd voor controllers, headsets (blik/focus) en muis-/aanraakinvoer.

Aanwijzers kunnen ook worden gevisualiseerd binnen de actieve scène met behulp van een van de vele lijnonderdelen die worden geleverd door de Mixed Reality Toolkit, of een van uw eigen onderdelen als ze de MRTK IMixedRealityPointer-interface implementeren.

Input Pointer Profile
  • Puntlengte: bepaalt de globale puntverplaatsing voor alle aanwijzers, inclusief blik.
  • Raycast-laagmaskers aanwijzen: bepaalt op welke lagen raycast wordt uitgevoerd.
  • Foutopsporingstekeningen tekenen stralen: een foutopsporingshulp voor het visualiseren van de stralen die worden gebruikt voor raycasting.
  • Foutopsporing Teken stralen kleuren: een set kleuren die moeten worden gebruikt voor het visualiseren.
  • Gaze cursor prefab: hiermee kunt u eenvoudig een algemene blikcursor opgeven voor elke scène.

Er is een extra helperknop om snel naar de Gaze-provider te gaan om zo nodig enkele specifieke waarden voor Gaze te overschrijven.


Configuratie van bewegingen

Bewegingen zijn een systeemspecifieke implementatie waarmee u invoeracties kunt toewijzen aan de verschillende invoermethoden 'Beweging' die worden geleverd door verschillende SDK's (bijvoorbeeld HoloLens).

Notitie

De huidige implementatie van bewegingen is alleen bedoeld voor de HoloLens en wordt uitgebreid voor andere systemen omdat ze in de toekomst worden toegevoegd aan de Toolkit (nog geen datums).

Gesture configuration

Spraakopdrachten

Net als bewegingen bieden sommige runtimeplatforms ook intelligente functionaliteit voor spraak-naar-tekst met de mogelijkheid om opdrachten te genereren die kunnen worden ontvangen door een Unity-project. Met dit configuratieprofiel kunt u het volgende configureren:

  1. Algemene Instellingen : 'Startgedrag' ingesteld op Automatisch starten of Handmatig starten bepaalt of trefwoordrecognizer moet worden geïnitialiseerd bij het opstarten van het invoersysteem of laat het project bepalen wanneer de KeywordRecognizer moet worden geïnitialiseerd. 'Betrouwbaarheidsniveau van herkenning' wordt gebruikt om de KeywordRecognizer-API van Unity te initialiseren
  2. Spraakopdrachten: registreert 'woorden' en vertaalt ze in invoeracties die kunnen worden ontvangen door uw project. Ze kunnen indien nodig ook worden gekoppeld aan toetsenbordacties.

Belangrijk

Het systeem ondersteunt momenteel alleen spraak bij het uitvoeren op Windows 10 platformen, bijvoorbeeld HoloLens en Windows 10 desktop en wordt uitgebreid voor andere systemen omdat ze in de toekomst worden toegevoegd aan MRTK (nog geen datums).

Configuration Profile screens

Configuratie van controllertoewijzing

Een van de belangrijkste configuratieschermen voor de Mixed Reality Toolkit is de mogelijkheid om de verschillende typen controllers te configureren en toe te wijzen die door uw project kunnen worden gebruikt.

In het onderstaande configuratiescherm kunt u een van de controllers configureren die momenteel worden herkend door de toolkit.

Controller Mapping

De MRTK biedt een standaardconfiguratie voor de volgende controllers/systemen:

  • Muis (inclusief ondersteuning voor ruimtelijke 3D-muis)
  • Touchscreen
  • Xbox-controllers
  • Windows Mixed Reality controllers
  • HoloLens bewegingen
  • HTC Vive wandcontrollers
  • Oculus Touch-controllers
  • Oculus Afstandsbediening
  • Algemene OpenVR-apparaten (alleen geavanceerde gebruikers)

Als u op de afbeelding voor een van de vooraf gebouwde controllersystemen klikt, kunt u één invoeractie configureren voor alle bijbehorende invoer, bijvoorbeeld het configuratiescherm van de Oculus Touch-controller hieronder:

Controller config screen

Er is ook een geavanceerd scherm voor het configureren van andere OpenVR- of Unity-invoercontrollers die hierboven niet worden geïdentificeerd.


Instellingen voor visualisatie van controller

Naast de toewijzing van de controller wordt er een afzonderlijk configuratieprofiel geboden om aan te passen hoe uw controllers binnen uw scènes worden gepresenteerd.

Dit kan worden geconfigureerd op een 'Global' (alle exemplaren van een controller voor een specifieke hand) of specifiek voor een afzonderlijk controllertype/hand.

De MRTK ondersteunt ook systeemeigen SDK-controllermodellen voor Windows Mixed Reality en OpenVR. Deze worden geladen als GameObjects in uw scène en geplaatst met behulp van de controllertracering van het platform.

Als de weergave van de controller in de scène moet worden verschoven van de positie van de fysieke controller, stelt u deze verschuiving in op de prefab van het controllermodel (bijvoorbeeld het instellen van de transformatiepositie van de controllerprefab met een offsetpositie).

Visualization profile

Editorhulpprogramma's

De volgende hulpprogramma's werken alleen in de editor en zijn handig om de productiviteit van de ontwikkeling te verbeteren.

MRTK Editor Configuration Utilities

Servicecontrole

ServiceControles zijn een functie die alleen-editorfuncties is die objecten in scènes genereert die actieve services vertegenwoordigen. Als u deze objecten selecteert, worden controles weergegeven die documentatiekoppelingen bieden, controle over editorvisualisaties en inzicht in de status van de service.

Service Inspectors

U kunt servicecontroles inschakelen door Servicecontrole gebruiken te controleren onder Editor Instellingen in het configuratieprofiel.

Dieptebuffer renderer

Het delen van de dieptebuffer met sommige mixed reality-platforms kan de stabilisatie van hologrammen verbeteren. Het Windows Mixed Reality platform kan bijvoorbeeld de gerenderde scène per pixel wijzigen om rekening te houden met subtiele hoofdbewegingen tijdens de tijd die nodig was om een frame weer te geven. Deze technieken vereisen echter dieptebuffers met nauwkeurige gegevens om te weten waar en hoe ver geometrie van de gebruiker is.

Om ervoor te zorgen dat een scène alle benodigde gegevens weergeeft aan de dieptebuffer, kunnen ontwikkelaars de functie Render Depth Buffer in- of uitschakelen onder Editor Instellingen in het configuratieprofiel. Hiermee wordt de huidige dieptebuffer gebruikt en weergegeven als kleur voor de scèneweergave door een naverwerkingseffect DepthBufferRenderertoe te passen op de hoofdcamera.

Render Depth Buffer UtilityDe blauwe cilinder in de scène heeft een materiaal met ZWrite uitgeschakeld, zodat er geen dieptegegevens worden geschreven

Profielen tijdens runtime wijzigen

Het is mogelijk om profielen tijdens runtime bij te werken en er zijn over het algemeen twee verschillende scenario's en tijden waarin dit nuttig is:

  1. Pre MRTK initialisatieprofielswitch: voordat de MRTK wordt geïnitialiseerd en profiel actief wordt, vervangt u het profiel dat nog niet wordt gebruikt om verschillende functies in of uit te schakelen op basis van de apparaatmogelijkheden. Als de ervaring bijvoorbeeld wordt uitgevoerd in VR waarvoor geen hardware voor ruimtelijke toewijzing is, is het waarschijnlijk niet zinvol om een onderdeel voor ruimtelijke toewijzing in te schakelen.
  2. Actieve profielswitch: nadat de MRTK is geïnitialiseerd en een profiel actief is geworden, wisselt u het profiel dat momenteel wordt gebruikt om de manier te wijzigen waarop bepaalde functies zich gedragen. Er kan bijvoorbeeld een specifieke subervaring zijn in de toepassing die veel aanwijzers volledig wil verwijderen.

Pre MRTK initialisatieprofielswitch

Dit kan worden bereikt door een MonoBehaviour (voorbeeld hieronder) te koppelen die wordt uitgevoerd vóór de MRTK-initialisatie (dat wil bijvoorbeeld Awake()). Let op het script (dat wil schrijven naar SetProfileBeforeInitialization) moet eerder worden uitgevoerd dan het MixedRealityToolkit script, wat kan worden bereikt door de instellingen voor scriptuitvoeringsvolgorde in te stellen.

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);
    }
}

In plaats van profileToUse is het mogelijk om een willekeurige set profielen te hebben die van toepassing zijn op specifieke platforms (bijvoorbeeld één voor HoloLens 1, één voor VR, één voor HoloLens 2, enzovoort). Het is mogelijk om verschillende andere indicatoren (bijvoorbeeld https://docs.unity3d.com/ScriptReference/SystemInfo.htmlof of de camera ondoorzichtig/transparant is) te gebruiken om te bepalen welk profiel moet worden geladen.

Actieve profielswitch

Dit kan worden bereikt door de MixedRealityToolkit.Instance.ActiveProfile eigenschap in te stellen op een nieuw profiel dat het actieve profiel vervangt.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Houd er rekening mee dat bij het instellen ActiveProfile tijdens runtime de vernietiging van de momenteel actieve services plaatsvindt na de laatste LateUpdate() van alle services en de instantiatie en initialisatie van de services die zijn gekoppeld aan het nieuwe profiel, plaatsvinden vóór de eerste Update() van alle services.

Tijdens dit proces kan een merkbare hesitatie optreden. Ook elk script met een hogere prioriteit dan het MixedRealityToolkit script kan de update invoeren voordat het nieuwe profiel correct is ingesteld. Zie de instellingen voor de uitvoeringsvolgorde van scripts voor meer informatie over scriptprioriteit.

In het profielwisselingsproces blijft de bestaande UI-camera ongewijzigd, zodat Unity UI-onderdelen waarvoor canvas is vereist, nog steeds werken na de switch.

Zie ook