Configuratiehandleiding voor MRTK-profielen

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 configuratieprofielschermen die momenteel beschikbaar zijn voor de toolkit.

Het belangrijkste 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 het wordt aangeraden om uw eigen instellingen te definiëren terwijl uw project zich verder ontwikkelt. De MRTK-configuratie kan niet worden bewerkt tijdens de play-modus.

MRTK-configuratieprofiel

Alle standaardprofielen voor de Mixed Reality Toolkit vindt u in het SDK-project in de map Assets/MRTK/SDK/Profiles.

Belangrijk

DefaultLokoLens2ConfigurationProfile is geoptimaliseerd voor HoloLens 2. Zie Profielen voor meer informatie.

Wanneer u het hoofdscherm Mixed Reality Toolkit configuratieprofiel, 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 u wilt dat de MRTK de scène automatisch voor u instelt. Dit is optioneel, maar er moet een actief MixedRealityToolkit-object in de scène zijn om toegang te krijgen tot alle configuratieschermen.

Hier staat de huidige actieve runtimeconfiguratie voor het project.

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

Deze configuratieprofielen worden hieronder beschreven in de relevante secties:


Ervaringsinstellingen

Deze instelling bevindt zich Mixed Reality Toolkit hoofdconfiguratiepagina en definieert de standaardbewerking van de Mixed Reality voor uw project.

Experiance settings

Camera-instellingen

De camera-instellingen definiëren hoe de camera wordt ingesteld voor uw Mixed Reality project, en definiëren de algemene instellingen voor knippen, 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 dat door de MRTK wordt geleverd, zijn verschillende andere systemen aanwezig. Deze helpen bij het aan- en beheren van de complexe onderlinge verbanden die nodig zijn om de complexiteit van een framework voor meerdere platforms/mixed reality abstraheerd te maken.

Input System settings 2

Elk van de afzonderlijke profielen wordt hieronder beschreven:


Instellingen voor grensvisualisatie

Het grenssysteem vertaalt de waargenomen grens die wordt gerapporteerd door het onderliggende platformbegrenzings-/guardiansysteem. De configuratie van de boundary visualizer biedt u de mogelijkheid om automatisch de vastgelegde grens binnen uw scène weer te geven ten opzichte van de positie van de gebruiker. De grens reageert ook/wordt bijgewerkt op basis van waar de gebruiker teleporteert binnen de scène.

Boundry Visualization Settings

Selectie van hettelteleportatiesysteem

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

Teleport System settings

Instellingen voor ruimtelijke kennis

De Mixed Reality Project biedt een opnieuw gebouwd systeem voor ruimtelijk bewustzijn voor het werken met systemen voor ruimtelijk scannen in het project dat standaard is geselecteerd.

Spatial Awareness settings 1

Met de Mixed Reality Toolkit voor ruimtelijke bewustzijn kunt u aanpassen hoe het systeem wordt gestart, of het nu automatisch gebeurt wanneer de toepassing wordt gestart of later programmatisch, en kunt u ook de omvang voor het weergaveveld instellen.

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 leveren.

Spatial Awareness settings 2

Diagnostische instellingen

Een optionele, maar zeer nuttige functie van de MRTK is de functionaliteit voor diagnostische gegevens van invoegfuncties.

Diagnostics settings

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

Diagnostics settings System settings 2

Scènesysteeminstellingen

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

Scene System settings 1

Aanvullende service-instellingen

Een van de meer geavanceerde gebieden van de Mixed Reality Toolkit is de implementatie van het servicelocatorpatroon waarmee elke 'service' bij 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 profiteert nog steeds optimaal van alle Unity-gebeurtenissen, zonder de overhead en kosten van het implementeren van een MonoBehaviour- of clunky singleton-patronen. Dit maakt pure C#-onderdelen zonder scèneoverhead mogelijk voor het uitvoeren van zowel voor- als achtergrondprocessen, zoals het ontwikkelen van systemen, runtime-gamelogica of vrijwel al het andere.

additional System settings

Instellingen voor invoeracties

Invoeracties bieden een manier om fysieke interacties en invoer van een runtimeproject te abstraheeren. Alle fysieke invoer (van controllers/handen/muis/enzovoort) wordt omgezet in een logische invoeractie voor gebruik in uw runtimeproject. Dit zorgt ervoor dat ongeacht waar de invoer vandaan komt, uw project implementeert deze acties gewoon als 'Dingen om te doen' of 'Interactie mee' in uw scènes.

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

Asbeperking Gegevenstype Beschrijving Voorbeeld van gebruik
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 aan- of uit-type gegevens Een controllerknop
Eén as float Eén precisiegegevenswaarde Een bereikinvoer, bijvoorbeeld een trigger
Dubbele as Vector2 Een datum van het type dual float voor meerdere as Een dpad of vingerafdruk
Drie Dof-positie Vector3 Gegevens van het positionele type met 3 float-as Alleen controller voor 3D-positiestijl
Drie dof-rotatie Quaternion Alleen rotatie-invoer met 4 float-as Een controller met een stijl van drie graden, bijvoorbeeld Oculus Go-controller
Zes dof Mixed Reality Pose (Vector3, Quaternion) Invoer voor positie- en rotatiestijl met zowel Vector3- als Quaternion-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 nieuwe acties te laten genereren.

Notitie

Invoeracties zijn een van de paar onderdelen die tijdens runtime niet kunnen worden bewerkt. Ze zijn alleen een configuratie voor de ontwerptijd. Dit profiel mag niet worden verwisseld terwijl het project wordt uitgevoerd vanwege de framework-afhankelijkheid (en uw projecten) van de id die voor elke actie wordt gegenereerd.

Configuration Profile

Regels voor invoeracties

Actieregels voor invoer bieden een manier om automatisch een gebeurtenis die voor één invoeractie wordt verhoogd, om te zetten in verschillende acties op basis van de gegevenswaarde. Deze worden naadloos beheerd binnen het framework en brengen geen prestatiekosten met zich mee.

Bijvoorbeeld, de invoergebeurtenis met één dubbele as converteren van een DPad in naar de 4 bijbehorende "Dpad up" / "DPad down" / "Dpad links" / "Dpad rechts" acties (zoals weergegeven in de onderstaande afbeelding).

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

InvoeractieRegels 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 voor een dubbele as wel aan een andere actie voor een dubbele as, maar niet aan een digitale of geen-actie.

Profiel voor invoeractieregels


Aanwijzerconfiguratie

Aanwijzers worden gebruikt voor interactiviteit in de scène vanaf elk invoerapparaat, waardoor zowel een richtingstest als een hittest wordt uitgevoerd met elk object in een scène (met een collider gekoppeld of een UI-onderdeel). Aanwijzers worden standaard automatisch geconfigureerd voor controllers, headsets (staren/focus) en muis-/aanraakinvoer.

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

Input Pointer Profile
  • Pointing Extent: Bepaalt de globale wijzende omvang voor alle aanwijzers, met inbegrip van staren.
  • Raycast-laagmaskers aanwijzen: bepaalt op welke lagen raycast wordt gericht.
  • Foutopsporing tekenen wijzende pijlen: een foutopsporingshulp voor het visualiseren van de ruiten die worden gebruikt voor raycasting.
  • Fouten opsporen in Aanwijzende kleuren voor aanwijzende kleuren tekenen: een set kleuren die u kunt gebruiken om te visualiseren.
  • Cursor-prefab staren: Hiermee kunt u eenvoudig een globale starencursor opgeven voor elke scène.

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


Configuratie van gebaren

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

Notitie

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

Gesture configuration

Spraakopdrachten

Net als gebaren bieden sommige runtimeplatformen ook intelligente Speech to Text-functionaliteit 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 KeywordRecognizer moet worden initialiseren bij het opstarten van het invoersysteem of dat het project moet bepalen wanneer de KeywordRecognizer moet worden initialiseren. 'Recognition Confidence Level' wordt gebruikt om de KeywordRecognizer-API van Unity te initialiseren
  2. Spraakopdrachten: registreert 'woorden' en zet deze om in invoeracties die door uw project kunnen worden ontvangen. 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 wanneer deze 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 geven 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 Gebaren
  • CONTROLLERS VOOR DE Vive-wandcontrollers
  • Oculus Touch-controllers
  • Externe Oculus-controller
  • 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. Zie 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 controllervisualisatie

Naast de controllertoewijzing is er een afzonderlijk configuratieprofiel beschikbaar om aan te passen hoe uw controllers worden weergegeven binnen uw scènes.

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 controllertracking van het platform.

Als de controllerweergave in de scène moet worden verschoven van de fysieke controllerpositie, stelt u die offset in op de prefab van het controllermodel (bijvoorbeeld de transformatiepositie van de controllerprefab instellen met een offsetpositie).

Visualization profile

Editor-hulpprogramma's

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

Configuratieprogramma's voor DE MRTK-editor

Service-inspectors

Service Inspectors is een alleen-editorfunctie waarmee in scène-objecten worden gegenereerd die actieve services vertegenwoordigen. Als u deze objecten selecteert, worden inspectors weergegeven met documentatiekoppelingen, controle over editorvisualisaties en inzicht in de status van de service.

Service Inspectors

U kunt service-inspectors inschakelen door Service inspectors gebruiken te controleren onder Editor Instellingen in het configuratieprofiel.

Renderer voor dieptebuffer

Het delen van de dieptebuffer met mixed reality platformen kan de hologramstabilisatie verbeteren. Het platform voor Windows Mixed Reality kan bijvoorbeeld de weergegeven 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 af is.

Om ervoor te zorgen dat een scène alle benodigde gegevens naar de dieptebuffer wekt, kunnen ontwikkelaars de functie Buffer voor renderdiepte in-/uitschakelen onder Editor Instellingen in het configuratieprofiel. Hiermee wordt de huidige dieptebuffer als kleur weergegeven in de scèneweergave door een naverwerkingseffect, , toe te passen DepthBufferRenderer op de hoofdcamera.

Hulpprogramma voor renderdieptebuffer De blauwe cilinder in de scène heeft een materiaal met ZWrite uit, zodat er geen dieptegegevens worden geschreven

Profielen wijzigen tijdens runtime

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

  1. Pre MRTK initialisatieprofiel wisselen: bij het opstarten, voordat de MRTK wordt gestart en het profiel actief wordt, vervangt u het profiel dat nog niet in gebruik is om verschillende functies in of uit te schakelen op basis van de mogelijkheden van het apparaat. Als de ervaring bijvoorbeeld wordt uitgevoerd in VR zonder hardware voor ruimtelijke toewijzing, is het waarschijnlijk niet logisch om het onderdeel voor ruimtelijke toewijzing in te stellen.
  2. Actieve profielsschakelaar: nadat de MRTK is gestart 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 in de toepassing zijn die veel handwijzers volledig wil verwijderen.

Pre-MRTK-initialisatieprofielsschakelaar

Dit kan worden bereikt door het koppelen van een MonoBehaviour (voorbeeld hieronder) dat wordt uitgevoerd vóór de MRTK-initialisatie (dat wil zeggen Bijzonder()). Let op: het script (dat wil zeggen aanroepen naar ) moet eerder worden uitgevoerd dan het script. Dit kan worden bereikt door de instellingen voor SetProfileBeforeInitialization Script Execution Order in te MixedRealityToolkit 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 te gebruiken (bijvoorbeeld of de camera ondoorzichtig/transparant is) om te bepalen welk profiel moet https://docs.unity3d.com/ScriptReference/SystemInfo.html worden geladen.

Actieve profielsschakelaar

Dit kan worden bereikt door de eigenschap in MixedRealityToolkit.Instance.ActiveProfile te stellen op een nieuw profiel, zodat het actieve profiel wordt vervangen.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Houd er rekening mee dat bij het instellen tijdens runtime de momenteel lopende services worden vernietigd na de laatste LateUpdate() van alle services. De instantiëring en initialisatie van de services die aan het nieuwe profiel zijn gekoppeld, vindt plaats vóór de eerste Update() van alle ActiveProfile services.

Er kan tijdens dit proces een merkbare toepassingsbuit optreden. Ook elk script met een hogere prioriteit dan het script kan de update invoeren MixedRealityToolkit voordat het nieuwe profiel correct wordt ingesteld. Zie Instellingen voor scriptuitvoeringsorder voor meer informatie over scriptprioriteit.

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

Zie ook