Ricerca…


introduzione

I controller sono fondamentali per immergere le persone in un'applicazione VR. Il potenziale della VR non viene soddisfatto senza di essi, ovvero i controller che forniscono sei gradi di libertà (6DoF). Con i controller, le persone possono raggiungere e circondare la scena e interagire con gli oggetti con le loro mani.

A-Frame fornisce componenti per i controller di tutto lo spettro supportati dai rispettivi browser WebVR tramite l'API Web di Gamepad. Ci sono componenti per i controller Vive, Oculus Touch, Daydream e GearVR.

Osservazioni

È possibile che tu debba abilitare gamepadextentions. Potresti farlo seguendo questa procedura:

  • Su Chrome: passa a chrome://flags
  • Su Firefox: vai a about:config
  • Su IE: vai a Editor criteri di gruppo sul desktop
  • Su Opera: vai opera:config
  • On Edge: naviga per about:flags

Controlli Wasd

Il componente wasd-controls controlla un'entità con i tasti della tastiera W , A , S e D o delle frecce. Il componente wasd-controls è comunemente associato a un'entità con il componente della videocamera.

<a-entity camera look-controls wasd-controls></a-entity>

Per le tastiere azerty, puoi usare i tasti Z , Q , S e D

Guarda i controlli

Il componente look-controls:

  • Ruota l'entità quando ruotiamo un display VR montato sulla testa (HMD).
  • Ruota l'entità quando si fa clic-trascinare il mouse.
  • Ruota l'entità quando si tocca e trascina il touchscreen.

Il componente look-controls viene solitamente utilizzato insieme al componente della videocamera.

<a-entity camera look-controls></a-entity>

Avvertenze

Se si desidera creare il proprio componente per i controlli look, sarà necessario copiare e incollare i bit di tracciamento HMD nel componente. In futuro, potremmo avere un sistema che consente alle persone di creare più facilmente i loro controlli.

Aggiungere lo sguardo al cursore

Per questo è necessario aggiungere un componente del cursore alla fotocamera

<a-scene>
  <a-camera>
    <a-cursor></a-cursor>
    <!-- Or <a-entity cursor></a-entity> -->
  </a-camera>
</a-scene>

Ulteriori informazioni che è possibile trovare sull'argomento del cursore (componente) .

Comandi a mano

A-Frame 0.x 0.3

A-Frame fornisce un'implementazione per supportare più tipi di controller 6DoF (Vive, Oculus Touch) tramite il componente di controllo manuale. Il componente di controllo manuale è principalmente per i controller 6DoF poiché è orientato verso interazioni a livello di spazio, come ad esempio l'acquisizione di oggetti. Il componente di controllo manuale funziona su entrambi i controller Vive e Oculus Touch:

  • Impostazione del componente vive-controls e oculus-touch-controls

  • Sovrascrivere i modelli di controller con un modello di mano semplice

  • Mappatura degli eventi specifici Vive-specifici e Oculus Touch per passare eventi e gesti (ad esempio, gripdown e triggerdown a thumbup)

Per aggiungere il componente di controllo manuale:

<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>

Sfortunatamente, non esiste ancora un componente controller 3DoF che estrae bene tutti i tipi di controller 3DoF (es. Daydream, GearVR). Potremmo creare un controller personalizzato che funzioni con entrambi i controller. Sarebbe abbastanza facile da coprire poiché i controller 3DoF non offrono molte possibilità di interazione (cioè, solo il tracking rotazionale con un touchpad).

I comandi manuali danno le mani tracciate (usando un modello prescritto) con gesti animati. i controlli manuali avvolgono i componenti vive-controls e oculus-touch-controls, che a loro volta avvolgono il componente dei controlli tracciati. Il componente offre eventi extra e gestisce animazioni e pose a mano.

<a-entity hand-controls="left"></a-entity>
<a-entity hand-controls="right"></a-entity>

Controlli tracciati

A-Frame 0.x 0.3

Il componente dei controlli tracciati è il componente del controller di base di A-Frame che fornisce le basi per tutti i componenti del controller di A-Frame. Il componente dei controlli tracciati:

  • Afferra un oggetto Gamepad dall'API Gamepad con un ID o prefisso.

  • Applica la posizione (posizione e orientamento) dall'API del gamepad per leggere il movimento del controller.

  • Cerca i cambiamenti nei valori dei pulsanti dell'oggetto Gamepad per fornire eventi quando i pulsanti vengono premuti o toccati e quando gli assi ei touchpad vengono modificati (ad esempio, a buttonchanged axischanged , buttonchanged , buttondown , buttonup , touchstart , touchend - touchend ).

Tutti i componenti del controller di A-Frame si basano sul componente dei controlli tracked-controls da:

  • Impostare il componente dei controlli tracciati sull'entità con l'ID gamepad appropriato (ad es. Oculus Touch (a destra)). Ad esempio, il componente vive-controls lo fa

    el.setAttribute('tracked-controls', {idPrefix: 'OpenVR'})
    

    tracked-controls verranno quindi collegati all'oggetto Gamepad appropriato per fornire pose ed eventi per l'entità.

  • Astrazione degli eventi forniti dai controlli tracciati. gli eventi dei controlli tracciati sono di basso livello; sarebbe stato difficile per noi dire quali pulsanti erano premuti basandoci su quegli eventi, perché dovevamo conoscere in anticipo le mappature dei pulsanti. I componenti del controller possono conoscere in anticipo i mapping per i rispettivi controller e fornire più eventi semantici come triggerdown o xbuttonup .

  • Fornire un modello. tracked-controls soli non forniscono alcun aspetto. I componenti del controller possono fornire un modello che mostra feedback visivo, gesti e animazioni quando i pulsanti vengono premuti o toccati. I componenti del controller che seguono vengono attivati ​​solo se rilevano che il controller viene rilevato e visto come connesso nell'API del gamepad.

I tracked-controls interfacce a componenti con controller cingolati. tracked-controls utilizza l'API Gamepad per gestire i controller tracciati, ed è astratto dal componente dei controlli manuali, nonché dai componenti vive-controls e oculus-touch-controls. Questo componente sceglie il controller appropriato, applica la posa all'entità, osserva lo stato dei pulsanti ed emette gli eventi appropriati.

Si noti che a causa di recenti modifiche specifiche del browser, i controller Vive possono essere restituiti dall'API Gamepad con valori ID di "OpenVR Gamepad" o "OpenVR Controller" , quindi è consigliabile utilizzare idPrefix per i controller Vive / OpenVR.

<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>

Controller 3Dof e 6Dof

Aggiunta di controller 3DoF

I controller con 3 gradi di libertà (3DoF) sono limitati al tracciamento rotazionale. I controller 3DoF non hanno tracciamento posizionale, il che significa che non possiamo raggiungere o muovere la mano avanti e indietro o su e giù. Avere un controller con solo 3DoF è come avere una mano e un polso senza un braccio. Maggiori informazioni sui gradi di libertà per la realtà virtuale.

I componenti del controller 3DoF forniscono il tracciamento rotazionale, un modello predefinito che combacia con l'hardware reale e gli eventi per astrarre le mappature dei pulsanti. I controller per Google Daydream e Samsung GearVR hanno 3DoF e supportano entrambi un controller per una sola mano.

A-Frame 0.x 0.6

Controller Daydream

Il componente di controllo daydream si interfaccia con i controller Daydream di Google. Comprende il componente dei controlli tracciati aggiungendo mappature dei pulsanti, eventi e un modello di controller Daydream che evidenzia i pulsanti toccati e / o premuti (trackpad).

Abbina il controller Daydream se presente, indipendentemente dalla mano.

<a-entity daydream-controls></a-entity>

Abbina il controller Daydream se presente e per la mano specificata.

<a-entity daydream-controls="hand: left"></a-entity>
<a-entity daydream-controls="hand: right"></a-entity>

GearVR-controllori

Il componente gearvr-controls si interfaccia con i controller VR Samsung / Oculus Gear. Comprende il componente dei controlli tracciati aggiungendo mappature dei pulsanti, eventi e un modello di controller Gear VR che evidenzia i pulsanti toccati e / o premuti (trackpad, trigger).

<!-- Match Gear VR controller if present, regardless of hand. -->
<a-entity gearvr-controls></a-entity>
<!-- Match Gear VR controller if present and for specified hand. -->
<a-entity gearvr-controls="hand: left"></a-entity>
<a-entity gearvr-controls="hand: right"></a-entity>

Aggiunta di controller 6DoF

I controller con 6 gradi di libertà (6DoF) hanno entrambi il tracking rotazionale e posizionale. A differenza dei controller con 3DoF che sono vincolati all'orientamento, i controller con 6DoF sono in grado di muoversi liberamente nello spazio 3D. 6DoF ci permette di raggiungere in avanti, dietro le nostre spalle, muovere le mani sul nostro corpo o vicino al nostro viso. Avere 6DoF è come la realtà in cui abbiamo mani e braccia. 6DoF si applica anche alle cuffie e ai tracker aggiuntivi (ad es. Piedi, puntelli). Avere 6DoF è un minimo per fornire un'esperienza VR veramente immersiva.

I componenti del controller 6DoF forniscono un monitoraggio completo, un modello predefinito che combacia con l'hardware reale e gli eventi per astrarre i mapping dei pulsanti. HTC Vive e Oculus Rift con Touch forniscono 6DoF e controller per entrambe le mani. HTC Vive fornisce anche tracker per il tracciamento di oggetti aggiuntivi nel mondo reale in VR.

A-Frame 0.x 0.3

Controller Vive

Il componente vive-controls si interfaccia con i controller / bacchette HTC Vive. Incorpora il componente dei controlli tracciati aggiungendo mappature dei pulsanti, eventi e un modello di controller Vive che evidenzia i pulsanti premuti (trigger, grip, menu, sistema) e il trackpad.

<a-entity vive-controls="hand: left"></a-entity>
<a-entity vive-controls="hand: right"></a-entity>
A-Frame 0.x 0.5

Controller tattili Oculus

Il componente oculus-touch-controls si interfaccia con i controller Oculus Touch. Comprende il componente dei controlli tracciati durante l'aggiunta di mappature dei pulsanti, eventi e un modello di controller Touch.

<a-entity oculus-touch-controls="hand: left"></a-entity>
<a-entity oculus-touch-controls="hand: right"></a-entity>

Controllo del mouse

I controlli del mouse sono supportati solo al di fuori del modus VR e potrebbero essere utilizzati per i giochi senza HMD. Per ulteriori informazioni sui controlli del mouse, è possibile trovare nell'esempio del cursore del mouse .

<a-scene>
  <a-entity camera look-controls mouse-cursor>
</a-scene>


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow