Condividi tramite


Controller di movimento

I controller di movimento sono accessori hardware che consentono agli utenti di intervenire nella realtà mista. Un vantaggio dei controller di movimento rispetto ai movimenti è che i controller hanno una posizione precisa nello spazio, consentendo un'interazione granulare fine con gli oggetti digitali. Per Windows Mixed Reality visori vr immersivi, i controller di movimento sono il modo principale in cui gli utenti potranno intervenire nel loro mondo.

Immagine: un controller di movimento Windows Mixed Reality

Screenshot che mostra i controller di movimento Windows Mixed Reality.



Supporto dei dispositivi

Caratteristica (/previous-versions/mixed-reality/hololens-1/hololens1-hardware)HoloLens (prima generazione) HoloLens 2 Visori vr immersive
Controller di movimento ✔️

Dettagli hardware

Windows Mixed Reality controller di movimento offrono un rilevamento dei movimenti preciso e reattivo nel campo visivo usando i sensori nell'auricolare immersivo. Non è necessario installare hardware sui muri nello spazio. Questi controller di movimento offrono la stessa facilità di installazione 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.

Screenshot che mostra le diverse parti di un controller.
Conoscere il controller

Funzionalità:

  • Tracciamento ottico
  • Attivazione
  • Pulsante Afferra
  • Levetta
  • Touchpad

Configurazione

Prima di iniziare

Sono necessari:

  • 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 le impostazioni di Windows come qualsiasi altro dispositivo Bluetooth.

  1. Inserire due batterie AA nella parte posteriore del controller. Lasciare il coperchio della batteria spento 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 la radio predefinita, assicurarsi che l'antenna sia connessa.
  3. Aprire Impostazioni di Windows ->Dispositivi ->Aggiungere Bluetooth o un altro dispositivo ->Bluetooth e rimuovere tutte le istanze precedenti di "Motion controller – Right" e "Motion controller – Left". Controllare anche la categoria Altri dispositivi nella parte inferiore dell'elenco.
  4. Selezionare Aggiungi Bluetooth o un altro dispositivo e visualizzarlo per individuare i dispositivi Bluetooth.
  5. Premere e tenere premuto il pulsante Windows del controller per attivare il controller, rilasciare una volta che si attiva.
  6. Premere e tenere premuto il pulsante di associazione (tab nel vano batteria) fino a quando i LED non iniziano a pulsare.
  1. Attendere "Motion controller - Left" o "Motion controller - Right" per visualizzare la parte inferiore dell'elenco. Selezionare per l'associazione. Il controller vibra una volta quando è connesso.

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

Screenshot che mostra l'opzione Seleziona controller di movimento da associare.

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

Dopo aver eseguito correttamente l'associazione di entrambi i controller, le impostazioni dovrebbero essere simili alla categoria "Mouse, tastiera & penna"

Immagine: Controller di movimento connessi

Screenshot che mostra i controller di movimento associati.

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 potrebbe essere stata 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 immersivo connesso al PC con un nuovo firmware del controller, il firmware verrà inserito automaticamente nei controller di movimento al successivo accensione. Gli aggiornamenti del firmware del controller sono indicati da un modello di quadranti LED illuminanti 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

Screenshot che mostra i controller connessi.

Sguardo e puntamento

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

  • Con lo sguardo fisso e il commit, gli utenti puntano a un oggetto con lo sguardo fisso e quindi selezionano gli oggetti con i tocchi d'aria della mano, un game pad, un clicker o la loro voce.
  • Con il punto e il commit, un utente può puntare un controller di movimento che supporta il puntamento 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, laddove possibile, per offrire agli utenti una scelta nei dispositivi di input usati.

Gestione del ricolo quando si punta

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

Per gestire eventuali rinculi che possono verificarsi quando gli utenti estraggono il trigger, l'app può bloccare il raggio di destinazione quando il valore dell'asse analogico del trigger supera 0,0. È quindi possibile eseguire un'azione 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 tap composito di livello superiore, Windows gestirà questa acquisizione e timeout dei raggi di destinazione.

Grip pose vs. pose di puntamento

Windows Mixed Reality supporta i controller di movimento in fattori di forma diversi, con la progettazione di ogni controller diversa nella relazione tra la posizione della mano dell'utente e la direzione "in avanti" naturale 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 posizione del grip e la posizione del puntatore.

Grip pose

La posizione dell'impugnatura rappresenta la posizione del palmo di una mano rilevata da un HoloLens o del palmo che contiene un controller di movimento.

Nei visori vr immersivi, la posizione della presa è 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 durante la visualizzazione di un controller di movimento, in quanto 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 è definita in modo specifico come segue:

  • La posizione di presa: il centroide palmo quando si tiene il controller naturalmente, regolato a sinistra o a destra per centrare la posizione all'interno della presa. Nel controller di movimento Windows Mixed Reality questa posizione è in genere allineata al pulsante Afferra.
  • Asse destro dell'orientamento della presa: quando apri completamente la mano per formare una posa piatta a cinque dita, il raggio normale per il palmo (in avanti dal palmo sinistro, indietro dal palmo destro)
  • Asse in avanti dell'orientamento della presa: quando si chiude parzialmente la mano (come se si tiene il controller), il raggio che punta "in avanti" attraverso il tubo formato dalle dita non pollice.
  • Asse su dell'orientamento del grip: l'asse su implicito nelle definizioni Destra e Avanti.

Posizione del puntatore

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

La posizione del puntatore fornita dal sistema è meglio usare per il raycast quando si esegue il rendering del modello di controller stesso. Se si esegue il rendering di un altro oggetto virtuale al posto del controller, ad esempio una pistola virtuale, è consigliabile puntare a un raggio più naturale per l'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, il puntamento con l'oggetto virtuale sarà probabilmente più naturale per coloro 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 monitorati dai sensori nell'auricolare stesso.

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

A questo punto, il sistema bloccherà il controller all'utente, monitorando la posizione dell'utente mentre si sposta, esponendo al tempo stesso l'orientamento reale del controller usando i sensori di orientamento interni. Molte app che usano controller per puntare e attivare gli elementi dell'interfaccia utente possono funzionare normalmente con accuratezza approssimativa senza che l'utente se ne accorta.


Ragionamento sullo stato di rilevamento esplicito

Le app che vogliono trattare le posizioni in modo diverso in base allo stato di rilevamento possono andare oltre ed esaminare 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 Approssimativo true
Nessuna posizione == 1.0 Approssimativo False

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

  • Accuratezza elevata: Anche se il controller di movimento si trova all'interno del campo visivo dell'auricolare, in genere fornisce posizioni ad alta precisione, in base al rilevamento visivo. Un controller mobile che lascia momentaneamente il campo visivo o viene temporaneamente oscurato dai sensori delle cuffie (ad esempio, dall'altra parte dell'utente) continuerà a restituire pose ad alta precisione per un breve periodo, in base al rilevamento inerziale del controller stesso.
  • Accuratezza elevata (a rischio di perdita): Quando l'utente sposta il controller di movimento oltre il bordo del campo visivo dell'auricolare, l'auricolare non sarà presto in grado di tenere traccia visivamente della posizione del controller. L'app sa quando il controller ha raggiunto questo limite FOV vedendo SourceLossRisk raggiungere 1.0. A quel 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 tempo sufficiente, le posizioni del controller scenderanno a posizioni di accuratezza approssimativa. A questo punto, il sistema bloccherà il controller all'utente, monitorando la posizione dell'utente mentre si sposta, esponendo al tempo stesso l'orientamento reale del controller usando i sensori di orientamento interni. Molte app che usano controller per puntare e attivare gli elementi dell'interfaccia utente possono funzionare come di consueto, con accuratezza approssimativa senza che l'utente se ne accorta. Le app con requisiti di input più pesanti possono scegliere di percepire questo calo da Accuratezza elevata a Accuratezza approssimativa controllando la proprietà PositionAccuracy , ad esempio per offrire all'utente un hitbox più generoso sulle destinazioni fuori schermo durante questo periodo.
  • Nessuna posizione: Anche se il controller può operare con precisione approssimativa per lungo 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 giù un controller che viene quindi prelevato da un altro utente. In questi momenti, il sistema non fornirà alcuna posizione all'app e TryGetPosition restituirà false.

Interazioni: input spaziale di basso livello

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

  • Select è l'interazione principale per attivare un ologramma, costituito da una stampa seguita da un rilascio. Per i controller di movimento, si esegue una pressione Seleziona usando il trigger del controller. Altri modi per eseguire una selezione sono pronunciando il comando vocale "Select". La stessa interazione di selezione può essere usata all'interno di qualsiasi app. Si consideri Select come l'equivalente di un clic del mouse; un'azione universale che si apprende una sola volta e quindi si applica a tutte le app.
  • 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 di menu del controller. (ovvero, il pulsante con l'icona "menu" hamburger su di esso)
  • La comprensione è il modo in cui gli utenti possono intervenire direttamente sugli oggetti a loro mano per manipolarli. Con i controller di movimento, puoi fare un'azione di presa stringendo il pugno strettamente. Un controller di movimento può rilevare una presa con un pulsante di afferramento, un trigger di 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 l'azione facendo clic sul touchpad. I touchpad forniscono uno stato premuto, uno stato di tocco e 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 è nella parte inferiore e 1 è in alto.
  • La levetta consente all'utente di regolare un'azione in due dimensioni spostando la levetta di un controller di movimento all'interno dell'intervallo circolare, eseguendo il commit dell'azione facendo clic sulla levetta. Le levette forniscono anche uno stato premuto e 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 è nella parte inferiore e 1 è in alto.
  • Home è un'azione di sistema speciale usata per tornare al menu Start . È simile a premere il tasto Windows su una tastiera o il pulsante Xbox in un controller Xbox. È possibile passare a Home premendo il pulsante Windows in un controller di movimento. Nota, puoi sempre tornare a Start dicendo "Ehi Cortana, Vai a casa". Le app non possono reagire in modo specifico alle azioni home, in quanto vengono gestite dal sistema.

Movimenti compositi: input spaziale di alto livello

Sia i movimenti della mano che i controller di movimento possono essere monitorati nel tempo per rilevare un set comune di movimenti compositi di alto livello. Ciò consente all'app di rilevare i movimenti di tocco, blocco, manipolazione e spostamento di alto livello, indipendentemente dal fatto che gli utenti finiscano per usare mani o controller.

Rendering del modello del controller di movimento

Modelli di controller 3D Windows rende disponibile per le app un modello di cui è possibile eseguire il rendering di ogni controller di movimento attualmente attivo nel sistema. Se la tua app carica e articola dinamicamente questi modelli di controller forniti dal sistema in fase di esecuzione, puoi assicurarti che l'app sia compatibile con qualsiasi futura progettazione di controller.

È consigliabile eseguire il rendering di tutti i modelli di cui è possibile eseguire il rendering alla posizione del controller , poiché l'origine del modello è allineata a questo punto nel mondo fisico. Se si esegue il rendering dei modelli di controller, è possibile eseguire il raycast nella scena dalla posizione del puntatore, che rappresenta il raggio lungo il quale gli utenti si aspettano naturalmente di puntare, data la progettazione fisica del controller.

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

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

Screenshot che mostra l'anteprima della grafica lineare dei controller di movimento.

Screenshot dell'immagine della linea dei controller di movimento a risoluzione completa in "bianco"

Screenshot dell'immagine della linea dei controller di movimento a risoluzione completa in "nero"

Domande frequenti

È possibile associare 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 dell'auricolare e verrà aggiornato automaticamente alla connessione, se necessario. Gli aggiornamenti del firmware richiedono in genere 1-2 minuti a seconda della qualità della radio Bluetooth e del collegamento. In rari casi, gli aggiornamenti del firmware del controller possono richiedere fino a 10 minuti, il che può indicare una scarsa connettività Bluetooth o interferenze radio. Per risolvere i problemi di connettività, vedere Procedure consigliate per il Bluetooth nella Guida per gli appassionati . Dopo un aggiornamento del firmware, i controller si riavvieranno e si riconnetteranno al PC host (si potrebbe notare che i LED sono luminosi per il rilevamento). Se un aggiornamento del firmware viene interrotto (ad esempio, i controller perdono energia), verrà ritento alla successiva accensione dei controller.

Come è possibile controllare il livello della batteria?

Nella Windows Mixed Reality casa, è possibile capovolgere il controller per visualizzare il livello della batteria sul lato inverso del modello virtuale. Non c'è alcun indicatore fisico del livello della batteria.

È possibile usare questi controller senza un auricolare? Solo per l'input joystick/trigger/etc?

Non per le applicazioni Universal Windows.

Risoluzione dei problemi

Vedere risoluzione dei problemi del controller di movimento nella Guida per gli appassionati.

Commenti/bug del controller di movimento di archiviazione

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

Vedere anche