Buscar..


Introducción

Los controladores son vitales para sumergir a las personas en una aplicación de realidad virtual. El potencial de la realidad virtual no se cumple sin ellos, a saber, los controladores que proporcionan seis grados de libertad (6DoF). Con los controladores, las personas pueden acercarse a la escena e interactuar con los objetos con las manos.

A-Frame proporciona componentes para los controladores de todo el espectro como lo admiten sus respectivos navegadores WebVR a través de la API web de Gamepad. Hay componentes para los controladores Vive, Oculus Touch, Daydream y GearVR.

Observaciones

Es posible que debas habilitar las extensiones de gamepad. Podrías hacer eso siguiendo estos pasos:

  • En Chrome: navega a chrome://flags
  • En Firefox: navega hasta about:config
  • En IE: Vaya al Editor de políticas de grupo en su escritorio
  • En Opera: navegue a opera:config
  • On Edge: navega hasta about:flags

Controles wasd

El componente wasd-controls controla una entidad con las teclas W , A , S y D o las teclas de flecha. El componente wasd-controls normalmente se adjunta a una entidad con el componente de cámara.

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

Para teclados azerty, puede usar las teclas Z , Q , S y D

Mira los controles

El componente look-controles:

  • Gira la entidad cuando giramos una pantalla montada en la cabeza VR (HMD).
  • Gira la entidad cuando hacemos clic y arrastramos el mouse.
  • Gira la entidad cuando tocamos y arrastramos la pantalla táctil.

El componente de controles de apariencia se usa generalmente junto con el componente de la cámara.

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

Advertencias

Si desea crear su propio componente para los controles de aspecto, tendrá que copiar y pegar los bits de seguimiento HMD en su componente. En el futuro, es posible que tengamos un sistema para que las personas creen sus controles más fácilmente.

Añadiendo mirada al cursor.

Para esto necesitas agregar un componente de cursor a tu cámara

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

Más información se puede encontrar en el tema del cursor (componente) .

Controles de mano

A-Frame 0.x 0.3

A-Frame proporciona una implementación para admitir múltiples tipos de controladores 6DoF (Vive, Oculus Touch) a través del componente de controles manuales. El componente de control manual es principalmente para los controladores 6DoF, ya que está orientado a las interacciones a escala de la sala, como agarrar objetos. El componente de controles manuales funciona sobre los controladores Vive y Oculus Touch de la siguiente manera:

  • Configuración de los componentes vive-controls y oculus-touch-controls

  • Anulando los modelos de controlador con un modelo de mano simple

  • Asignación de eventos específicos de Vive y Oculus Touch a eventos y gestos de mano (p. Ej., Agarre hacia abajo y desencadenamiento para minima)

Para agregar el componente de controles manuales:

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

Desafortunadamente, aún no hay un componente de controlador 3DoF que resuma bien todos los tipos de controladores 3DoF (es decir, Daydream, GearVR). Podríamos crear un controlador personalizado que funcione con ambos controladores. Sería bastante fácil de cubrir ya que los controladores 3DoF no ofrecen mucho potencial para la interacción (es decir, solo el seguimiento rotativo con un panel táctil).

Los controles manuales dan manos rastreadas (utilizando un modelo prescrito) con gestos animados. los controles manuales envuelven los componentes de controles de vida y controles de oculus-touch, que a su vez envuelven el componente de controles controlados. El componente proporciona eventos adicionales y maneja animaciones y poses de mano.

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

Controles de seguimiento

A-Frame 0.x 0.3

El componente de controles con seguimiento es el componente del controlador base de A-Frame que proporciona la base para todos los componentes del controlador de A-Frame. El componente de control de seguimiento:

  • Agarra un objeto Gamepad de la API de Gamepad dado un ID o prefijo.

  • Aplica la posición (posición y orientación) de la API de Gamepad para leer el movimiento del controlador.

  • Busca cambios en los valores de los botones del objeto del Gamepad para proporcionar eventos cuando se presionan o tocan los botones y cuando se cambian el eje y los axischanged buttonchanged (es decir, el buttonchanged axischanged , el buttonchanged , el buttondown , el buttonup , el touchstart , el touchend ).

Todos los componentes del controlador de A-Frame se construyen sobre el componente de tracked-controls al:

  • Configuración del componente de controles rastreados en la entidad con el ID de Gamepad adecuado (por ejemplo, Oculus Touch (Derecha)). Por ejemplo, el componente vive-controls hace

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

    tracked-controls se conectarán al objeto Gamepad adecuado para proporcionar una pose y eventos para la entidad.

  • Resumen de los eventos proporcionados por los controles de seguimiento. los eventos de control de seguimiento son de bajo nivel; Nos resultaría difícil decir qué botones se presionaron basándose solo en esos eventos porque tendríamos que conocer las asignaciones de botones de antemano. Componentes controlador puede saber las asignaciones de antemano por sus respectivos controladores y proporcionar más eventos semánticos tales como triggerdown o xbuttonup .

  • Proporcionando un modelo. tracked-controls solo no proporciona ninguna apariencia. Los componentes del controlador pueden proporcionar un modelo que muestra comentarios visuales, gestos y animaciones cuando se pulsan o se tocan los botones. Los siguientes componentes del controlador solo se activan si detectan que el controlador se encuentra y se ve como conectado en la API de Gamepad.

Los tracked-controls interfaces de componentes con controladores de seguimiento. los controles rastreados utilizan la API de Gamepad para manejar los controladores rastreados, y se abstraen mediante el componente de controles manuales, así como los componentes de controles de vida y controles de oculus-touch. Este componente elige el controlador apropiado, aplica la pose a la entidad, observa el estado de los botones y emite los eventos apropiados.

Tenga en cuenta que debido a los cambios específicos del navegador, la API de Gamepad puede devolver los controladores Vive con los valores de identificación de "OpenVR Gamepad" o "OpenVR Controller" , por lo que se idPrefix usar idPrefix para los controladores Vive / OpenVR.

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

Controladores 3Dof y 6Dof

Añadiendo Controladores 3DoF

Los controladores con 3 grados de libertad (3DoF) están limitados al seguimiento rotacional. Los controladores 3DoF no tienen un seguimiento posicional, lo que significa que no podemos llegar ni mover nuestra mano hacia adelante y hacia atrás o hacia abajo. Tener un controlador con solo 3DoF es como tener una mano y una muñeca sin un brazo. Lea más sobre los grados de libertad para VR.

Los componentes del controlador 3DoF proporcionan un seguimiento rotativo, un modelo predeterminado que coincide con el hardware de la vida real y eventos para abstraer las asignaciones de botones. Los controladores para Google Daydream y Samsung GearVR tienen 3DoF, y ambos admiten solo un controlador por una mano.

A-Frame 0.x 0.6

Controladores de ensueño

El componente de controles de Daydream interactúa con los controladores de Google Daydream. Envuelve el componente de controles rastreados al agregar asignaciones de botones, eventos y un modelo de controlador de Daydream que resalta los botones tocados y / o presionados (trackpad).

Haga coincidir el controlador Daydream si está presente, independientemente de la mano.

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

Haga coincidir el controlador de Daydream si está presente y para la mano especificada.

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

Controladores GearVR

El componente gearvr controla los interfaces con los controladores Samsung / Oculus Gear VR. Envuelve el componente de controles rastreados al agregar asignaciones de botones, eventos y un modelo de controlador de Gear VR que resalta los botones tocados y / o presionados (trackpad, disparador).

<!-- 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>

Agregando Controladores 6DoF

Los controladores con 6 grados de libertad (6DoF) tienen un seguimiento tanto rotacional como posicional. A diferencia de los controladores con 3DoF que están restringidos a la orientación, los controladores con 6DoF pueden moverse libremente en el espacio 3D. 6DoF nos permite avanzar, detrás de nuestras espaldas, mover nuestras manos a través de nuestro cuerpo o cerca de nuestra cara. Tener 6DoF es como la realidad donde tenemos ambas manos y brazos. 6DoF también se aplica a los auriculares y rastreadores adicionales (por ejemplo, pies, accesorios). Tener 6DoF es un mínimo para proporcionar una experiencia de VR realmente inmersiva.

Los componentes del controlador 6DoF proporcionan un seguimiento completo, un modelo predeterminado que coincide con el hardware de la vida real y eventos para abstraer las asignaciones de botones. HTC Vive y Oculus Rift with Touch proporcionan 6DoF y controladores para ambas manos. HTC Vive también ofrece rastreadores para rastrear objetos adicionales en el mundo real en VR.

A-Frame 0.x 0.3

Controladores de vive

El componente vive-controls se conecta con los controladores / varitas de HTC Vive. Envuelve el componente de controles rastreados al agregar asignaciones de botones, eventos y un modelo de controlador Vive que resalta los botones presionados (disparador, control, menú, sistema) y trackpad.

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

Controladores táctiles Oculus

El componente oculus-touch-controles se interconecta con los controladores Oculus Touch. Envuelve el componente de controles rastreados al agregar asignaciones de botones, eventos y un modelo de controlador táctil.

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

Control del mouse

Los controles del mouse solo se admiten fuera del modo VR y podrían usarse para juegos sin un HMD. Para obtener más información sobre los controles del mouse, puede encontrar en el ejemplo del cursor del mouse .

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow