Guida alla configurazione del profilo MRTK2

Il Realtà mista Toolkit centralizza la maggior parte della configurazione necessaria per gestire il toolkit il più possibile (ad eccezione di true runtime "things").

Questa guida è una procedura dettagliata semplice per ogni schermata del profilo di configurazione attualmente disponibile per il toolkit.

Profilo di configurazione principale Realtà mista Toolkit

Il profilo di configurazione principale, collegato a MixedRealityToolkit GameObject nella scena, fornisce il punto di ingresso principale per il Toolkit nel progetto.

Nota

La Realtà mista Toolkit "blocchi" le schermate di configurazione predefinite per assicurarsi di avere sempre un punto di inizio comune per il progetto ed è consigliabile iniziare a definire le proprie impostazioni durante l'evoluzione del progetto. La configurazione MRTK non è modificabile durante la modalità di riproduzione.

MRTK configuration profile

Tutti i profili "predefiniti" per il Realtà mista Toolkit sono disponibili nel progetto SDK nella cartella Asset/MRTK/SDK/Profili.

Importante

DefaultHoloLens2ConfigurationProfile è ottimizzato per HoloLens 2. Per i dettagli, vedere Profili .

Quando si apre il Realtà mista Toolkit profilo di configurazione principale, verrà visualizzata la schermata seguente nel controllo:

MRTK configuration scene

Se si seleziona un asset MixedRealityToolkitConfigurationProfile senza MixedRealityToolkit nella scena, verrà chiesto se si vuole che MRTK possa configurare automaticamente la scena. Questo è facoltativo, tuttavia, deve essere presente un oggetto MixedRealityToolkit attivo nella scena per accedere a tutte le schermate di configurazione.

In questo modo viene ospitata la configurazione corrente del runtime attivo per il progetto.

Da qui è possibile passare a tutti i profili di configurazione per MRTK, tra cui:

Questi profili di configurazione sono dettagliati di seguito nelle relative sezioni pertinenti:


Impostazioni dell'esperienza

Situata nella pagina di configurazione principale Realtà mista Toolkit, questa impostazione definisce l'operazione predefinita della scala di ambiente Realtà mista per il progetto.

Experiance settings

impostazioni di Fotocamera

Le impostazioni della fotocamera definiscono come la fotocamera verrà configurata per il progetto Realtà mista, definendo le impostazioni generiche di ritaglio, qualità e trasparenza.

Camera Profile

Impostazioni del sistema di input

Il Realtà mista Project fornisce un sistema di input affidabile e ben sottoposto a training per il routing di tutti gli eventi di input intorno al progetto selezionato per impostazione predefinita.

Input System settings 1

Dietro il sistema di input fornito da MRTK sono diversi altri sistemi, questi consentono di guidare e gestire i complessi inter-trame necessari per astrarre le complessità di un framework di realtà multipiattaforma/mista.

Input System settings 2

Ognuno dei singoli profili è dettagliato di seguito:


Impostazioni di visualizzazione limiti

Il sistema di limiti converte il limite percepito segnalato dal sistema di limiti/guardiano delle piattaforme sottostanti. La configurazione del visualizzatore limiti consente di visualizzare automaticamente il limite registrato all'interno della scena rispetto alla posizione dell'utente. Il limite reagisce/aggiorna anche in base alla posizione in cui l'utente teleporta all'interno della scena.

Boundry Visualization Settings

Selezione del sistema di teleportazione

Il Realtà mista Project fornisce un sistema di teleportazione completo per la gestione degli eventi di teleportazione nel progetto selezionato per impostazione predefinita.

Teleport System settings

Impostazioni di consapevolezza spaziale

Il Realtà mista Project fornisce un sistema di consapevolezza spaziale ricompilato per l'uso di sistemi di analisi spaziale nel progetto selezionato per impostazione predefinita.

Spatial Awareness settings 1

La configurazione della consapevolezza spaziale Realtà mista Toolkit consente di personalizzare il modo in cui il sistema viene avviato automaticamente quando l'applicazione viene avviata o successivamente, nonché impostando gli extent per il campo della visualizzazione.

Consente inoltre di configurare le impostazioni mesh e surface, personalizzando ulteriormente il modo in cui il progetto riconosce l'ambiente intorno all'utente.

Questo è applicabile solo per i dispositivi che possono fornire un ambiente analizzato.

Spatial Awareness settings 2

Impostazioni di diagnostica

Una funzionalità facoltativa ma estremamente utile di MRTK è la funzionalità di diagnostica del plug-in.

Diagnostics settings

Il profilo di diagnostica offre diversi sistemi semplici da monitorare durante l'esecuzione del progetto, tra cui un interruttore on/Off utile per abilitare/disabilitare il pannello di visualizzazione nella scena.

Diagnostics settings System settings 2

Impostazioni del sistema scena

MrTK offre questo servizio facoltativo per gestire il caricamento/scaricamento di scene aggiuntive complesse. Per decidere se il sistema scena sarebbe adatto per il progetto, leggere la Guida Introduzione del sistema scene.

Scene System settings 1

Impostazioni aggiuntive dei servizi

Una delle aree più avanzate della Realtà mista Toolkit è l'implementazione del modello di localizzatore di servizi che consente la registrazione di qualsiasi "servizio" con il framework. In questo modo il framework deve essere esteso con nuove funzionalità/sistemi, ma consente anche ai progetti di sfruttare queste funzionalità per registrare i propri componenti di runtime.

Qualsiasi servizio registrato ottiene comunque il vantaggio completo di tutti gli eventi Unity, senza il sovraccarico e il costo dell'implementazione di modelli Singleton MonoBehaviour o clunky. Ciò consente ai componenti C# pure senza sovraccarico della scena per l'esecuzione di processi in primo piano e in background, ad esempio la generazione di sistemi, la logica del gioco di runtime o praticamente qualsiasi altra cosa.

additional System settings

Impostazioni delle azioni di input

Le azioni di input consentono di astrarre qualsiasi interazione fisica e input da un progetto di runtime. Tutti gli input fisici (da controller/mani/mouse/etc) vengono tradotti in un'azione di input logico da usare nel progetto di runtime. Ciò garantisce, indipendentemente dalla posizione in cui proviene l'input, il progetto implementa semplicemente queste azioni come "Cose da fare" o "Interagisci con" nelle scene.

Per creare una nuova azione di input, fare semplicemente clic sul pulsante "Aggiungi una nuova azione" e immettere un nome di testo descrittivo per ciò che rappresenta. È quindi necessario selezionare un asse (il tipo di dati) che l'azione è destinata a trasmettere o nel caso dei controller fisici, il tipo di input fisico a cui può essere collegato, ad esempio:

Vincolo asse Tipo di dati Descrizione Esempio di utilizzo
Nessuno Nessun dato Usato per un'azione o un evento vuoto Trigger eventi
Non elaborato (riservato) object Riservate per utilizzo futuro N/D
Digitale bool Un valore booleano su o disattivato dati di tipo Pulsante controller
Asse singolo float Valore dei dati di precisione singolo Input a intervalli, ad esempio un trigger
Asse doppio Vector2 Data del tipo a due float per più assi Un Dpad o un pollice
Tre posizioni Dof Vector3 Dati di tipo posizionale da con 3 asse float Solo controller di stile posizione 3D
Tre rotazioni Dof Quaternion Input rotazionale solo con 4 asse float Controller di stile A tre gradi, ad esempio il controller Oculus Go
Sei Dof Realtà mista Pose (Vector3, Quaternion) Input dello stile di posizione e rotazione con componenti Vector3 e Quaternion Un controller di movimento o puntatore

Gli eventi che usano le azioni di input non sono limitati ai controller fisici e possono comunque essere usati all'interno del progetto per generare nuovi effetti di runtime.

Nota

Le azioni di input sono uno dei pochi componenti che non è modificabile in fase di esecuzione, sono solo una configurazione in fase di progettazione. Questo profilo non deve essere scambiato mentre il progetto è in esecuzione a causa del framework (e dei progetti) dipende dalla generazione dell'ID per ogni azione.

Configuration Profile

Regole delle azioni di input

Le regole di azione di input consentono di tradurre automaticamente un evento generato per un'azione di input in in azioni diverse in base al valore dei dati. Questi sono gestiti senza problemi all'interno del framework e non comportano costi di prestazioni.

Ad esempio, convertendo l'evento di input a doppio asse singolo da un DPad nel 4 corrispondente "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" (come illustrato nell'immagine seguente).

Questa operazione può essere eseguita anche nel proprio codice. Tuttavia, visto che questo era un modello molto comune, il framework fornisce un meccanismo per eseguire questa operazione "fuori dalla scatola"

Le regole di azione di input possono essere configurate per qualsiasi asse di input disponibile. Tuttavia, le azioni di input da un tipo di asse possono essere convertite in un'altra azione di input dello stesso tipo di asse. È possibile eseguire il mapping di un'azione a doppio asse a un'altra azione dell'asse duale, ma non a un'azione digitale o nessuna.

Input action rules profile


Configurazione puntatore

I puntatori vengono usati per guidare l'interattività nella scena da qualsiasi dispositivo di input, dando sia una direzione che un hit test con qualsiasi oggetto in una scena (che ha un collider collegato o è un componente dell'interfaccia utente). Per impostazione predefinita, i puntatori sono configurati automaticamente per controller, visori visori (sguardo/stato attivo) e input del mouse/tocco.

I puntatori possono essere visualizzati anche all'interno della scena attiva usando uno dei molti componenti di riga forniti dal Realtà mista Toolkit o uno dei propri se implementano l'interfaccia IMixedRealityPointer MRTK.

Input Pointer Profile
  • Entità puntatore: determina l'estensione globale dei punti per tutti i puntatori, incluso lo sguardo.
  • Puntatore a Raycast Layer Masks: determina i puntatori a livelli che verranno raggiati da.
  • Debug di Raggi di disegno di disegno: helper di debug per visualizzare i raggi usati per il raycasting.
  • Eseguire il debug dei colori dei raggi di disegno: set di colori da usare per la visualizzazione.
  • Prefab del cursore di sguardo: consente di specificare facilmente un cursore di sguardo globale per qualsiasi scena.

C'è un pulsante helper aggiuntivo per passare rapidamente al provider di sguardo per eseguire l'override di alcuni valori specifici per Gaze se necessario.


Configurazione dei movimenti

I movimenti sono un'implementazione specifica del sistema che consente di assegnare azioni di input ai vari metodi di input "Movimento" forniti da vari SDK (ad esempio HoloLens).

Nota

L'implementazione dei movimenti correnti è solo per il HoloLens e sarà migliorata per altri sistemi man mano che vengono aggiunti al Toolkit in futuro (nessuna data ancora).

Gesture configuration

Comandi vocali

Come i movimenti, alcune piattaforme di runtime forniscono anche funzionalità intelligenti "Speech to Text" con la possibilità di generare comandi che possono essere ricevuti da un progetto Unity. Questo profilo di configurazione consente di configurare quanto segue:

  1. Generale Impostazioni : "Start Comportamento" impostato su Avvio automatico o Avvio manuale determina se inizializzare KeywordRecognizer all'avvio del sistema di input o consentire al progetto di inizializzare keywordRecognizer. "Livello di attendibilità riconoscimento" viene usato per inizializzare l'API KeywordRecognizer di Unity
  2. Comandi vocali: registra "parole" e li traduce in in azioni di input che possono essere ricevute dal progetto. Possono anche essere collegati alle azioni da tastiera se necessario.

Importante

Il sistema supporta attualmente solo la voce durante l'esecuzione su piattaforme Windows 10, ad esempio HoloLens e Windows 10 desktop e sarà migliorato per altri sistemi man mano che vengono aggiunti a MRTK in futuro (nessuna data ancora).

Configuration Profile screens

Configurazione del mapping del controller

Una delle schermate di configurazione principali per il Realtà mista Toolkit è la possibilità di configurare e eseguire il mapping dei vari tipi di controller che possono essere usati dal progetto.

La schermata di configurazione seguente consente di configurare uno dei controller attualmente riconosciuti dal toolkit.

Controller Mapping

MRTK fornisce una configurazione predefinita per i controller/sistemi seguenti:

  • Mouse (incluso il supporto del mouse spaziale 3D)
  • Touch screen
  • Controller Xbox
  • controller Windows Mixed Reality
  • movimenti HoloLens
  • Controller di bacchetta DI HTC Vive
  • Controller tocco Oculus
  • Controller remoto Oculus
  • Dispositivi OpenVR generici (solo utenti avanzati)

Facendo clic sull'immagine per uno dei sistemi controller predefiniti, è possibile configurare un'unica azione di input per tutti gli input corrispondenti, ad esempio, vedere la schermata di configurazione del controller touch Oculus:

Controller config screen

È disponibile anche una schermata avanzata per la configurazione di altri controller di input OpenVR o Unity non identificati in precedenza.


Impostazioni di visualizzazione controller

Oltre al mapping del controller, viene fornito un profilo di configurazione separato per personalizzare la modalità di presentazione dei controller all'interno delle scene.

Questa configurazione può essere configurata in un oggetto "Globale" (tutte le istanze di un controller per una mano specifica) o specifiche per un singolo tipo di controller/mano.

MrTK supporta anche modelli di controller SDK nativi per Windows Mixed Reality e OpenVR. Questi vengono caricati come GameObjects nella scena e posizionati usando il rilevamento del controller della piattaforma.

Se la rappresentazione del controller nella scena deve essere offset dalla posizione del controller fisico, è sufficiente impostare tale offset rispetto al prefab del modello controller, ad esempio impostando la posizione di trasformazione del prefab del controller con una posizione di offset.

Visualization profile

Utilità dell'editor

Le utilità seguenti funzionano solo nell'editor e sono utili per migliorare la produttività dello sviluppo.

MRTK Editor Configuration Utilities

Controlli del servizio

I controlli di servizio sono una funzionalità di sola editor che genera oggetti in scena che rappresentano servizi attivi. Selezionando questi oggetti vengono visualizzati i controlli che offrono collegamenti alla documentazione, controllare le visualizzazioni dell'editor e informazioni dettagliate sullo stato del servizio.

Service Inspectors

È possibile abilitare i controlli del servizio controllando Usa controlli servizio in Editor Impostazioni nel profilo di configurazione.

Renderer del buffer di profondità

La condivisione del buffer di profondità con alcune piattaforme di realtà mista può migliorare la stabilizzazione dell'ologramma. Ad esempio, la piattaforma Windows Mixed Reality può modificare la scena di cui è stato eseguito il rendering per pixel in modo da tenere conto di movimenti di testa sottili durante il tempo necessario per eseguire il rendering di un frame. Tuttavia, queste tecniche richiedono buffer di profondità con dati accurati per sapere dove e la geometria è dall'utente.

Per garantire che una scena esegue il rendering di tutti i dati necessari nel buffer di profondità, gli sviluppatori possono attivare la funzionalità Buffer profondità di rendering in Editor Impostazioni nel profilo di configurazione. In questo modo il buffer di profondità corrente e lo eseguirà come colore nella visualizzazione della scena applicando un effetto post-elaborazione, DepthBufferRendereralla fotocamera principale.

Render Depth Buffer UtilityIl cilindro blu nella scena ha un materiale con ZWrite off in modo che non vengano scritti dati di profondità

Modifica dei profili in fase di esecuzione

È possibile aggiornare i profili in fase di esecuzione e in genere sono disponibili due scenari e tempi diversi in cui questo è utile:

  1. Pre MRTK inizializzazione profilo: all'avvio, prima che MRTK venga inizializzato e il profilo diventi attivo, sostituendo il profilo non ancora in uso per abilitare/disabilitare funzionalità diverse in base alle funzionalità del dispositivo. Ad esempio, se l'esperienza è in esecuzione in VR che non ha hardware di mapping spaziale, probabilmente non ha senso avere il componente di mapping spaziale abilitato.
  2. Opzione profilo attivo: dopo l'avvio, dopo l'inizializzazione di MRTK e un profilo è diventato attivo, scambiando il profilo attualmente in uso per modificare il modo in cui si comportano determinate funzionalità. Ad esempio, potrebbe essere presente un'esperienza secondaria specifica nell'applicazione che vuole che i puntatori a mano siano completamente rimossi.

Opzione del profilo di inizializzazione di MRTK preliminare

A tale scopo, è possibile associare un MonoBehaviour (esempio riportato di seguito) che viene eseguito prima dell'inizializzazione di MRTK (ad esempio Awake()). Si noti che lo script (ad esempio la chiamata a SetProfileBeforeInitialization) deve essere eseguito prima dello MixedRealityToolkit script, che può essere ottenuto impostando le impostazioni dell'ordine di esecuzione dello script.

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

Invece di "profileToUse", è possibile avere un set arbitrario di profili che si applicano a piattaforme specifiche (ad esempio, una per HoloLens 1, una per VR, una per HoloLens 2 e così via). È possibile usare vari altri indicatori (ad esempio https://docs.unity3d.com/ScriptReference/SystemInfo.html, o se la fotocamera è opaca/trasparente), per determinare quale profilo caricare.

Opzione profilo attivo

A tale scopo, impostare la MixedRealityToolkit.Instance.ActiveProfile proprietà su un nuovo profilo sostituendo il profilo attivo.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Si noti che durante l'impostazione ActiveProfile durante il runtime, l'eliminazione definitiva dei servizi attualmente in esecuzione verrà eseguita dopo l'ultimo LateUpdate() di tutti i servizi e la creazione di istanze e l'inizializzazione dei servizi associati al nuovo profilo verranno eseguiti prima del primo update() di tutti i servizi.

Durante questo processo può verificarsi un'esitazione evidente dell'applicazione. Qualsiasi script con priorità più alta rispetto allo MixedRealityToolkit script può immettere il relativo aggiornamento prima che il nuovo profilo venga configurato correttamente. Per altre informazioni sulla priorità dello script, vedere Script Execution Order settings (Impostazioni dell'ordine di esecuzione script).

Nel processo di cambio del profilo la fotocamera dell'interfaccia utente esistente rimarrà invariata, assicurando che i componenti dell'interfaccia utente di Unity che richiedono il canvas funzionino ancora dopo l'opzione.

Vedi anche