Acabo de empezar a jugar con A-Frame y puedo ver controles-vive y controles oculus-touch, pero nada para google daydream.

He mirado el repositorio de componentes y no veo nada que parezca que haga el trabajo. Lo más cercano a investigar ahora sería la API de Gamepad, pero me sorprende que no pueda encontrar nada.

Tengo un Pixel XL y sueño y me gustaría incorporar el controlador en lugar de solo el seguimiento de la cabeza y el control basado en la mirada. ¿Alguien puede señalarme en la dirección correcta, por favor?

Gracias

ACTUALIZACIÓN : ¡tengo el controlador Daydream funcionando para los clics! Ejecución de la galería de imágenes 360 (https://aframe.io/examples/showcase / 360-image-gallery /) acepta clics del controlador Daydream. ¡Supongo que tal vez se había agotado el tiempo en mis intentos anteriores o no lo había emparejado correctamente! ¡Seguiré jugando!

4
TechnoBuddhist 28 dic. 2016 a las 17:16

3 respuestas

La mejor respuesta

Trabajando en la configuración de un control remoto Daydream en un proyecto Aframe. Todavía no hay componentes para el control remoto de Daydream, pero espero completar uno pronto, y parece que van a ser compatibles con el próximo lanzamiento de Aframe.

Pero puede hacer rodar a mano sin problemas.

Primero, hay algunas cosas que deberá hacer en preparación:

  1. Descargue Chrome Beta 56 en su Pixel: https://www.google.com/chrome/ browser / beta.html.
  2. Abra Chrome Beta, navegue hasta chrome://flags y habilite las banderas WebVR y Gamepad.

Ahora, podrá lanzar experiencias creadas con Aframe v0.4 o superior en WebVR verdadero. Se te indicará con las pantallas habituales de Daydream (coloca tu teléfono en el auricular y conecta el control remoto). Si te estás conectando a un entorno de desarrollo local, verás una advertencia de conexión segura, pero esto, aunque molesto, ganó " No te dejo de trabajar.

Segundo, ahora que está ejecutando WebVR verdadero, necesita aprovechar la API de Gamepad para obtener información de su control remoto Daydream. Comencemos simplemente registrando que está conectado.

    window.addEventListener('gamepadconnected', function(evt) {
      console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.",
        e.gamepad.index, e.gamepad.id,
        e.gamepad.buttons.length, e.gamepad.axes.length);
    });

Tercero, ahora que está registrando una conexión, necesitará configurar un ciclo de actualización para obtener el estado actual del Gamepad. Puedes hacer esto con requestAnimationFrame. Siga el tutorial aquí: https://developer.mozilla.org / es-ES / docs / Web / API / Gamepad_API / Using_the_Gamepad_API

Una vez que haya publicado un componente básico de dayframe-remote, publicaré un enlace aquí. Espero que esto te ayude a comenzar.


EDITAR: Parece que la sugerencia a continuación funciona muy bien. Simplemente pase "Daydream Controller" como id para los controles rastreados: tracked-controls="id: Daydream Controller".


Aquí hay una muestra de salida del controlador Daydream. Por el momento, solo el botón del panel táctil parece estar expuesto, no la aplicación o los botones de inicio.

    { 
      axes: [0, 1],
      buttons: [{
        pressed: false,
        touched: false,
        value: 0
      }],
      connected: true,
      displayId: 16,
      hand: "left",
      id: "Daydream Controller",
      index: 0,
      mapping: "",
      pose: {
        angularAcceleration: null,
        angularVelocity: [0, 0, 0],
        hasOrientation: true,
        hasPosition: false,
        linearAcceleration: [0,0,0],
        orientation: [0,0,0,1],
        position: null
      },
      timestamp: 1234567890123
    }
5
ryanbetts 29 dic. 2016 a las 01:14

Algo para que pruebes ...

La forma en que debería funcionar el soporte actual de A-Frame 0.4.0 en tracked-controls:

Si especifica que solo debe coincidir con un valor de ID de la cadena vacía '', entonces debe coincidir con cualquier gamepad con una pose ... para que pueda intentar algo como

<a-entity tracked-controls="id:"></a-entity>

Y ver si eso recibe eventos, etc.

1
machenmusik 28 dic. 2016 a las 22:34

La rama maestra A-Frame ahora contiene un componente de controlador de ensueño: https: // aframe. io / docs / master / components / daydream-controls.html

0
Paul Siersma 23 may. 2017 a las 09:17