Controller del movimento

I controller di movimento sono accessori hardware che consentono agli utenti di intervenire nella realtà mista. Un vantaggio dei controller di movimento sui movimenti è che i controller hanno una posizione precisa nello spazio, consentendo l'interazione granulare con oggetti digitali. Per Windows Mixed Reality visori VR immersive, i controller di movimento sono il modo principale in cui gli utenti eseguiranno azioni nel loro mondo.

Immagine: un controller di movimento Windows Mixed Reality

Windows Mixed Reality controller di movimento



Supporto di dispositivi

Funzionalità HoloLens (prima generazione) HoloLens 2 Visori VR immersive
Controller del movimento ✔️

Dettagli hardware

Windows Mixed Reality controller di movimento offrono un tracciamento preciso e reattivo del movimento nel campo di visualizzazione usando i sensori nel visore VR immersive. Non è necessario installare hardware sulle pareti nello spazio. Questi controller di movimento offrono la stessa facilità di configurazione e portabilità di Windows Mixed Reality visori VR immersive. I nostri partner di dispositivi prevedono di commercializzare e vendere questi controller sugli scaffali al dettaglio questa vacanza.

Informazioni sul controller
Informazioni sul controller

Caratteristiche:

  • Tracciamento ottico
  • Trigger
  • Pulsante Afferra
  • Levetta
  • Touchpad

Configurazione

Prima di iniziare

Sono necessari gli elementi seguenti:

  • Set di due controller di movimento.
  • Quattro batterie AA.
  • Un PC con supporto Bluetooth 4.0.

Verificare la disponibilità di aggiornamenti di Windows, Unity e driver

Associazione di controller

I controller di movimento possono essere associati al PC host usando impostazioni di Windows come qualsiasi altro dispositivo Bluetooth.

  1. Inserire due batterie AA nella parte posteriore del controller. Lasciare il coperchio della batteria per il momento.
  2. Se si usa un adattatore Bluetooth USB esterno anziché una radio Bluetooth predefinita, esaminare le procedure consigliate per Bluetooth prima di procedere. Per la configurazione desktop con radio predefinita, assicurarsi che l'antenna sia connessa.
  3. Aprire Impostazioni Di Windows -Dispositivi ->>Aggiungi Bluetooth o altro dispositivo ->Bluetooth e rimuovere tutte le istanze precedenti di "Controller movimento - Destra" e "Controller movimento - Sinistra". Selezionare anche La categoria Altri dispositivi nella parte inferiore dell'elenco.
  4. Selezionare Aggiungi Bluetooth o un altro dispositivo e vedere che inizia a individuare i dispositivi Bluetooth.
  5. Premere e tenere premuto il pulsante Windows del controller per attivare il controller, rilasciarlo quando si attiva.
  6. Premere e tenere premuto il pulsante di associazione (tabulazione nel raggruppamento della batteria) fino a quando i LED iniziano a pulsare.
  1. Attendere che "Controller movimento - Sinistra" o "Controller movimento - Destra" appaiano nella parte inferiore dell'elenco. Selezionare questa opzione per associare. Il controller vibra una volta quando si è connessi.

    Immagine: selezionare "Controller movimento" da associare; se sono presenti più istanze, selezionare una nella parte inferiore dell'elenco

Selezionare Controller movimento da associare, se più istanze selezionano una nella parte inferiore dell'elenco

  1. Il controller verrà visualizzato nelle impostazioni Bluetooth nella categoria "Mouse, tastiera, & penna" come Connesso. A questo punto, è possibile ottenere un aggiornamento del firmware. Vedere la sezione successiva.
  2. Riattaccare il coperchio della batteria.
  3. Ripetere i passaggi da 1 a 9 per il secondo controller.

Dopo aver associato entrambi i controller, le impostazioni dovrebbero essere simili alle seguenti, nella categoria "Mouse, tastiera, & penna"

Immagine: Controller di movimento connessi

Controller di movimento connessi

Se i controller vengono disattivati dopo l'associazione, il relativo stato verrà visualizzato come associato. Per i controller in modo permanente nella categoria "Altri dispositivi", l'associazione può essere completata solo parzialmente. In questo caso, eseguire di nuovo i passaggi di associazione per ottenere il funzionamento del controller.

Aggiornamento del firmware del controller

  • Se è disponibile un visore VR immersive connesso al PC con un nuovo firmware del controller, il firmware verrà inserito nei controller del movimento automaticamente alla successiva attivazione. Gli aggiornamenti del firmware del controller sono indicati da un modello di quadranti LED illuminati in un movimento circolare e richiedono 1-2 minuti.
  • Al termine dell'aggiornamento del firmware, i controller verranno riavviati e riconnessi. Entrambi i controller devono essere connessi ora.

    Immagine: controller connessi nelle impostazioni Bluetooth

Controller connessi

Sguardo e puntamento

Windows Mixed Reality supporta due modelli chiave per l'interazione; sguardo fisso, commit epunto e commit:

  • Con lo sguardo fisso e il commit, gli utenti hanno come destinazione un oggetto con lo sguardo fisso e quindi selezionare gli oggetti con i tap a mano, un game pad, un clicker o la voce.
  • Con il punto e il commit, un utente può puntare a un controller di movimento in grado di puntare all'oggetto di destinazione e quindi selezionare gli oggetti con il trigger del controller.

Le app che supportano il puntamento con i controller di movimento devono anche abilitare le interazioni basate su sguardo fisso, dove possibile, per consentire agli utenti di scegliere quali dispositivi di input usano.

Gestione della recoil quando si punta

Quando si usano controller di movimento per puntare e eseguire il commit, gli utenti useranno il controller per indirizzare e interagire eseguendo il pull del relativo trigger. Gli utenti che eseguono il trigger con vigore possono puntare il controller in modo più alto alla fine del pull del trigger rispetto a quanto previsto.

Per gestire una simile recoil che può verificarsi quando gli utenti estraggono il trigger, l'app può agganciare il raggio di destinazione quando il valore dell'asse analogico del trigger aumenta al di sopra di 0,0. È quindi possibile intervenire usando il raggio di destinazione alcuni fotogrammi in un secondo momento, quando il valore del trigger raggiunge 1,0, purché la pressione finale si verifichi entro un breve intervallo di tempo. Quando si usa il movimento tocco composito di livello superiore, Windows gestirà questa acquisizione e timeout del raggio di destinazione.

Posizione del grip rispetto alla posa puntante

Windows Mixed Reality supporta i controller di movimento in diversi fattori di forma, con la progettazione di ogni controller che differisce nella relazione tra la posizione della mano dell'utente e la direzione naturale "avanti" che le app devono usare per puntare durante il rendering del controller.

Per rappresentare meglio questi controller, esistono due tipi di pose che è possibile analizzare per ogni origine di interazione; la posa del grip e la posa del puntatore.

Posizione del grip

La posizione del grip rappresenta la posizione del palmo di una mano rilevata da un holoLens o del palmo che tiene premuto un controller di movimento.

Nei visori VR immersive, la posa del grip è meglio usata per eseguire il rendering della mano dell'utente o di un oggetto tenuto nella mano dell'utente, ad esempio una spada o una pistola. La posizione del grip viene usata anche per la visualizzazione di un controller di movimento, poiché il modello di rendering fornito da Windows per un controller di movimento usa la posizione del grip come origine e centro di rotazione.

La posizione del grip viene definita in modo specifico come segue:

  • Posizione del grip: centro del palmo quando si tiene il controller naturalmente, regolato a sinistra o a destra per allineare al centro la posizione all'interno del grip. Sul controller del movimento Windows Mixed Reality questa posizione è in genere allineata con il pulsante Afferra.
  • Asse destro dell'orientamento del grip: quando si apre completamente la mano per formare una posa a cinque dita piatta, il raggio normale al palmo (avanti dal palmo sinistro, all'indietro dal palmo destro)
  • Asse avanti dell'orientamento del grip: quando chiudi la mano parzialmente (come se tieni premuto il controller), il raggio che punta "in avanti" attraverso il tubo formato dalle dita non del pollice.
  • Asse Up dell'orientamento del grip: asse Su implicito dalle definizioni Destra e Avanti.

Posizione puntatore

La posizione del puntatore rappresenta la punta del controller che punta avanti.

La posizione del puntatore fornito dal sistema è preferibile usare per raycast quando si esegue il rendering del modello controller stesso. Se si esegue il rendering di un altro oggetto virtuale al posto del controller, ad esempio una pistola virtuale, è consigliabile puntare con un raggio più naturale per tale oggetto virtuale, ad esempio un raggio che viaggia lungo la canna del modello di pistola definito dall'app. Poiché gli utenti possono visualizzare l'oggetto virtuale e non il controller fisico, puntando con l'oggetto virtuale probabilmente sarà più naturale per quelli che usano l'app.

Stato di rilevamento del controller

Come le cuffie, il controller di movimento Windows Mixed Reality non richiede alcuna configurazione di sensori di rilevamento esterni. I controller vengono invece rilevati dai sensori nel visore stesso.

Se l'utente sposta i controller fuori dal campo di visualizzazione del visore, nella maggior parte dei casi Windows continuerà a dedurre le posizioni del controller e fornire loro all'app. Quando il controller ha perso il rilevamento visivo per un numero sufficiente di tempo, le posizioni del controller scenderanno a posizioni approssimative di accuratezza.

A questo punto, il sistema blocca il controller all'utente, rilevando la posizione dell'utente mentre si spostano, mentre espone ancora l'orientamento vero del controller usando i sensori di orientamento interno. Molte app che usano controller per puntare e attivare gli elementi dell'interfaccia utente possono funzionare normalmente mentre in accuratezza approssimativa senza che l'utente noti.


Motivo dello stato di rilevamento in modo esplicito

Le app che desiderano trattare le posizioni in modo diverso in base allo stato di rilevamento possono continuare e controllare le proprietà sullo stato del controller, ad esempio SourceLossRisk e PositionAccuracy:

Stato di rilevamento SourceLossRisk PositionAccuracy TryGetPosition
Accuratezza elevata < 1.0 Alto true
Accuratezza elevata (a rischio di perdita) == 1.0 Alto true
Accuratezza approssimativa == 1.0 Con approssimazione true
Nessuna posizione == 1.0 Con approssimazione false

Questi stati di rilevamento del controller di movimento sono definiti come segue:

  • Accuratezza elevata: Mentre il controller di movimento si trova all'interno del campo della visualizzazione del visore, in genere fornisce posizioni ad alta accuratezza, in base al rilevamento visivo. Un controller in movimento che lascia momentaneamente il campo della vista o è momentaneamente offuscato dai sensori visori (ad esempio, dall'altra parte dell'utente) continuerà a restituire posizioni ad alta accuratezza per un breve periodo di tempo, in base al rilevamento inertiale del controller stesso.
  • Accuratezza elevata (a rischio di perdita): Quando l'utente sposta il controller di movimento oltre il bordo del campo di visualizzazione del visore, il visore sarà presto in grado di tenere traccia visivamente della posizione del controller. L'app sa quando il controller ha raggiunto questo limite FOV visualizzando sourceLossRisk raggiunge la versione 1.0. A questo punto, l'app può scegliere di sospendere i movimenti del controller che richiedono un flusso costante di pose di alta qualità.
  • Accuratezza approssimativa: Quando il controller ha perso il rilevamento visivo per un numero sufficiente di tempo, le posizioni del controller scenderanno a posizioni approssimative di accuratezza. A questo punto, il sistema blocca il controller all'utente, rilevando la posizione dell'utente mentre si spostano, mentre espone ancora l'orientamento vero del controller usando i sensori di orientamento interno. Molte app che usano controller per puntare e attivare gli elementi dell'interfaccia utente possono funzionare come normali mentre in accuratezza approssimativa senza che l'utente noti. Le app con requisiti di input più pesanti possono scegliere di intuire questa eliminazione dall'accuratezza elevata all'accuratezza approssimativa controllando la proprietà PositionAccuracy , ad esempio per dare all'utente un hitbox più generoso sulle destinazioni fuori schermo durante questo periodo.
  • Nessuna posizione: Anche se il controller può operare con accuratezza approssimativa per molto tempo, a volte il sistema sa che anche una posizione bloccata dal corpo non è significativa al momento. Ad esempio, un controller attivato potrebbe non essere mai stato osservato visivamente o un utente potrebbe mettere in giù un controller che viene quindi raccolto da un altro utente. A quel punto, il sistema non fornirà alcuna posizione all'app e TryGetPosition restituirà false.

Interazioni: input spaziale di basso livello

Le interazioni principali tra mani e controller di movimento sono Select, Menu, Grasp, Touchpad, Thumbstick e Home.

  • Selezionare è l'interazione primaria per attivare un ologramma, costituito da una pressione seguita da una versione. Per i controller di movimento, si esegue una pressione Seleziona usando il trigger del controller. Altri modi per eseguire una selezione sono parlando del comando vocale "Select". La stessa interazione seleziona può essere usata all'interno di qualsiasi app. Pensare a Select come equivalente di un clic del mouse; un'azione universale che si apprenderà una volta e quindi applicare in tutte le app.
  • Il menu è l'interazione secondaria per agire su un oggetto, usato per eseguire il pull di un menu di scelta rapida o eseguire un'altra azione secondaria. Con i controller di movimento è possibile eseguire un'azione di menu usando il pulsante del menu del controller. (ovvero, il pulsante con l'icona "menu" dell'hamburger)
  • Afferrare è come gli utenti possono intervenire direttamente sugli oggetti a loro disposizione per modificarli. Con i controller di movimento, puoi fare un'azione di afferrazione squendo il tuo fist strettamente. Un controller di movimento può rilevare un oggetto Grab con un pulsante di afferramento, un trigger palmo o un altro sensore.
  • Touchpad consente all'utente di regolare un'azione in due dimensioni lungo la superficie del touchpad di un controller di movimento, eseguendo il commit dell'azione facendo clic sul touchpad. I touchpad forniscono uno stato premuto, lo stato toccato e le coordinate XY normalizzate. X e Y vanno da -1 a 1 nell'intervallo del touchpad circolare, con un centro a (0, 0). Per X, -1 è a sinistra e 1 è a destra. Per Y, -1 si trova nella parte inferiore e 1 è in alto.
  • Il pollice consente all'utente di regolare un'azione in due dimensioni spostando il pollice di un controller di movimento all'interno dell'intervallo circolare, eseguendo il commit dell'azione facendo clic su giù sul pollice. Le levette forniscono anche uno stato premuto e le coordinate XY normalizzate. X e Y vanno da -1 a 1 nell'intervallo del touchpad circolare, con un centro a (0, 0). Per X, -1 è a sinistra e 1 è a destra. Per Y, -1 si trova nella parte inferiore e 1 è in alto.
  • Home è un'azione speciale del sistema usata per tornare al menu Start. È simile a premere il tasto Windows su una tastiera o sul pulsante Xbox su un controller Xbox. È possibile passare a Home premendo il pulsante Windows su un controller di movimento. Nota, puoi sempre tornare a Start dicendo "Hey Cortana, Go Home". Le app non possono reagire in modo specifico alle azioni Home, in quanto vengono gestite dal sistema.

Movimenti compositi: input spaziale di alto livello

Entrambi i movimenti delle mani e i controller di movimento possono essere rilevati nel tempo per rilevare un set comune di movimenti compositi di alto livello. Ciò consente all'app di rilevare movimenti di tocco, manipolazione enavigazione di alto livello, indipendentemente dal fatto che gli utenti usino mani o controller.

Rendering del modello del controller di movimento

Modelli di controller 3D Windows rende disponibile per le app un modello di rendering di ogni controller di movimento attualmente attivo nel sistema. Grazie al caricamento dinamico dell'app e all'articolazione di questi modelli di controller forniti dal sistema in fase di esecuzione, è possibile assicurarsi che l'app sia compatibile con qualsiasi progettazione futura del controller.

È consigliabile eseguire il rendering di tutti i modelli renderabili nella posizione del controller, in quanto l'origine del modello è allineata a questo punto nel mondo fisico. Se si esegue il rendering dei modelli del controller, è possibile che si desideri eseguire il raycast nella scena dalla posa del puntatore, che rappresenta il raggio lungo il quale gli utenti si aspettano naturalmente di puntare, dato che il design fisico del controller.

Per altre informazioni su come caricare i modelli controller in modo dinamico in Unity, vedere la sezione Rendering del modello del controller di movimento in Unity .

Linea del controller 2D Anche se è consigliabile collegare suggerimenti e comandi del controller in-app ai modelli di controller in-app stessi, alcuni sviluppatori potrebbero voler usare rappresentazioni di 2D line art dei controller di movimento in un'interfaccia utente "tutorial" flat o "how-to". Per gli sviluppatori, abbiamo reso disponibili .png file line art del controller di movimento sia in nero che in bianco (fare clic con il pulsante destro del mouse per salvare).

Anteprima dell'arte linea dei controller di movimento

Linea dei controller di movimento a risoluzione completa in '''bianco'

Linea dei controller di movimento a risoluzione completa in '''nero'

Domande frequenti

È possibile associare i controller di movimento a più PC?

I controller di movimento supportano l'associazione con un singolo PC. Seguire le istruzioni sulla configurazione del controller di movimento per associare i controller.

Ricerca per categorie aggiornare il firmware del controller di movimento?

Il firmware del controller di movimento fa parte del driver visore e verrà aggiornato automaticamente sulla connessione, se necessario. Gli aggiornamenti del firmware in genere richiedono 1-2 minuti a seconda della qualità della radio e del collegamento Bluetooth. In rari casi, gli aggiornamenti del firmware del controller possono richiedere fino a 10 minuti, che possono indicare una scarsa connettività Bluetooth o interferenze radio. Vedere Le procedure consigliate Bluetooth nella Guida per gli appassionati per risolvere i problemi di connettività. Dopo un aggiornamento del firmware, i controller riavvieranno e si riconnetteranno al PC host (è possibile notare che i LED sono brillanti per il rilevamento). Se un aggiornamento del firmware viene interrotto (ad esempio, i controller perdono l'alimentazione), verrà tentato di riprovare alla successiva accensione dei controller.

Come posso controllare il livello di batteria?

Nella Windows Mixed Reality home è possibile attivare il controller per visualizzarne il livello di batteria sul lato inverso del modello virtuale. Non c'è alcun indicatore del livello di batteria fisico.

È possibile usare questi controller senza visore visore? Solo per il joystick/trigger/etc input?

Non per applicazioni windows universali.

Risoluzione dei problemi

Vedere la risoluzione dei problemi relativi al controller di movimento nella Guida per gli appassionati.

Archiviazione del feedback/bug del controller di movimento

Inviare commenti e suggerimenti nell'hub di feedback usando la categoria "Realtà mista -> Input".

Vedi anche