Usando la API de seguimiento de manos actualizada de Presence Platform, presentamos el seguimiento de manos con nuestra última actualización místico en la plataforma Meta Quest titulada «Hands & More». Estamos muy emocionados de finalmente dejar que la gente juegue místico en búsqueda sin controladores físicos! En esta publicación, discutimos la evolución y la iteración de la implementación del seguimiento manual en místico– y, en particular, la adición de más soporte para ello en Unreal Engine 4.27.2.
Publicación invitada de Hannah Gamiel
Hannah Gamiel es directora de desarrollo en Cyan, el estudio detrás del original «místico Juegos, y ayudó a desarrollar el nuevo ‘mista (2020)‘, que incluye soporte VR. Originalmente proveniente de una formación puramente técnica, ahora ayuda a supervisar la producción de todos los títulos y gestiona los esfuerzos comerciales y técnicos en Cyan. Ha trabajado en títulos como Myst (2020), The Witness, Braid, Anniversary Edition, Obduction, Firmament (¡próximamente!) y más.
Fase de diseño y consideraciones
Diseño de navegación para seguimiento manual
Imagen que muestra a dónde quieres ir. Probablemente pensaste en mostrar, ¿verdad? Por esta razón, decidimos utilizar un método de «señalamiento» para el movimiento. místico.
Cuando esté en el modo de teletransporte, puede señalar a dónde quiere ir y el anillo de teletransporte aparecerá en su destino. Recoger el punto (estirando el resto de los dedos o simplemente arrastrando el dedo índice hacia la palma de la mano) activará el teletransporte.
Cuando esté en el modo de movimiento suave, señalar con la mano, que domina el movimiento libre (que se puede configurar en nuestra configuración de control, pero por defecto es la mano izquierda), comenzará a moverlo suavemente en la dirección que está señalando.
Al probar los gestos con el gesto de señalar, descubrimos que el seguimiento de la mano con los dedos índice y medio a veces puede no ser confiable si el resto de la mano lo oscurece. El sistema no está seguro de si estos dedos apuntan completamente a su mano o si están completamente «cerrados». Hemos agregado un pequeño factor de «fudge» al código para proporcionar un inicio/ejecución de movimiento más estable en este frente, al que llegaremos un poco más adelante cuando discutamos los cambios en el soporte de seguimiento manual listo para usar. en Unreal Engine.
Giro
El método «punto» no funciona para todos los usos de navegación. Al girar, primero combinamos apuntar con girar la muñeca. Una comparación de la muñeca del jugador y el vector de avance de la cámara indicaría la dirección de la curva (y qué tan grande debería ser la curva). Probamos esto inicialmente porque parecía intuitivo mantener el tema señalador para navegar entre todos los modos.
Sin embargo, surgieron complicaciones durante las pruebas de comodidad. Cuando se probó, la mayoría de los jugadores mirarían hacia adelante con las palmas de las manos, como probablemente lo harías al tratar de señalar algo fuera de un juego. Girar la muñeca hacia la izquierda y hacia la derecha (alrededor del eje hacia arriba de la muñeca) mientras la palma de la mano mira hacia el piso es un desafío y tiene un rango de movimiento muy limitado, especialmente cuando intenta alejarse de su pecho.
Este problema también ocurre cuando le pides a un jugador que señale algo frente a él con las palmas hacia adentro. Puedes doblar tu muñeca a Tu cuerpo es bastante fuerte, pero no obtendrás el mismo rango de movimiento doblando la muñeca lejos de tu cuerpo.
¿Cómo solucionamos esto? Terminamos asignando el giro a un gesto de «pulgar hacia arriba» en lugar de un gesto de señalar con el dedo.
Imagina dar un pulgar hacia arriba. Ahora gire la muñeca hacia la derecha y hacia la izquierda. Tenga en cuenta que si bien no tiene un gran rango de movimiento, aún es bastante consistente apuntar con el pulgar hacia la «izquierda» o la «derecha» con este gesto.
Eso es lo que decidimos para disparar en modo de seguimiento manual. Si bien apuntar con el pulgar no parece la forma más intuitiva de rotar, es hizo al final la forma más conveniente y consistente de hacerlo.
En el giro rápido, girar la muñeca hacia la izquierda o hacia la derecha desde una posición con el pulgar hacia arriba provoca que se inicie un solo giro rápido. Luego debe regresar su mano a la posición «central» (directamente hacia arriba) para restablecer el chasquido, además de esperar un tiempo de reutilización muy corto para activar un giro chasquido nuevamente.
Con un giro suave, girar la muñeca con el pulgar hacia arriba comenzará a girar hacia la izquierda o hacia la derecha, una vez que salga de una «zona muerta» que evita el giro hasta que haya cruzado el umbral.
Lidiar con los conflictos entre el movimiento y las poses de interacción con objetos.
Por supuesto, señalar con el dedo es un gesto demasiado amplio como para suponer que solo se usa para navegar. Las personas harán el mismo gesto de señalar para presionar botones o interactuar con otras cosas en el mundo, solo por costumbre o por sus propias expectativas. Sería bastante vergonzoso acercarse (pero no A la derecha hasta) un botón, apúntelo con el dedo para presionarlo y luego, de repente (y sin querer) ¡acérquese en el juego (o sin querer inicie un teletransporte)!
Evitamos que se produzca movimiento mientras el jugador está interactuando con algo al evitar que se activen los códigos de movimiento cuando la mano que realiza el gesto de movimiento está en un área específica de un objeto interactivo. Esta área se ha modificado varias veces para lograr un buen «punto óptimo» según las pruebas de juego.
Descubrimos que este punto óptimo está a unos 25 cm de la posición espacial del hueso de la punta del dedo índice. místico está repleto de objetos interactivos de varios tamaños (desde pequeños botones hasta palancas muy grandes) colocados tanto en espacios amplios como en pasillos estrechos, por lo que nos llevó un poco de prueba decidirnos por ese número. Inicialmente probamos 60 cm (aproximadamente dos pies), pero eso impedía que ocurriera el movimiento cuando los jugadores necesitaban acercarse aún más a un objeto. Del mismo modo, cualquier cosa de menos de 25 cm provocaría un movimiento no deseado del jugador cuando los jugadores intentaran agarrar o tocar un objeto.
Una de nuestras mejores áreas de prueba fue la sala del generador en Myst Island, donde pasas por una entrada estrecha e inmediatamente te recibe un panel lleno de botones. Si el área de prueba de interacción era demasiado grande, los jugadores no podían moverse por la entrada y hacia el panel porque reconocía los botones al alcance del dedo índice.
Dicho esto, 25 cm es lo que se trabajó específicamente para místico. Es posible que otros juegos necesiten ajustar este número si quieren implementar algo similar mientras consideran sus propios criterios.
Diseño de interacciones de objetos para el seguimiento manual
Por el momento todas las interacciones detectables están en místico están diseñados para trabajar con el seguimiento manual: girar válvulas, abrir puertas, presionar botones, pasar páginas de libros, etc.
Las interacciones se basaron en lo que ya habíamos configurado. místico con controladores táctiles. Cuando presiona el botón de agarre allí, la representación de malla en el juego de su mano se deslizará automáticamente a una pose de «agarrado», donde cierra su mano en un puño (si está vacío) o toma un objeto. Para el seguimiento manual, hemos agregado un código que hace una suposición informada sobre cuándo ha doblado los dedos lo suficiente como para «agarrar» algo, iniciando la misma lógica que se mencionó anteriormente.
Por ejemplo, si está utilizando el seguimiento manual y su mano se cierne sobre algo tangible, el color de su mano se volverá naranja (esto es lo que sucede cuando no está utilizando el seguimiento manual místico también RV). Cuando agarra un objeto interactivo comenzando a apretar los dedos en un puño, un orbe naranja reemplaza la malla de su mano y representa el lugar donde su mano está unida al objeto.
La razón por la que elegimos este método, en lugar de crear mallas móviles personalizadas para sus manos, o permitir que sus manos/dedos interactúen físicamente con partes de esos objetos, es porque queríamos que las interacciones coincidieran con lo que estamos ofreciendo en la página de controladores táctiles. ahora.
Sin embargo, presionar los botones funciona de manera diferente. No hay necesidad de abstracción ya que los botones no son objetos tangibles y, en cambio, le permitimos simplemente presionar un botón utilizando colisionadores de cápsula generados entre cada una de las articulaciones de los dedos en la malla de la mano en movimiento. Debido a esto, puedes hacer todo tipo de cosas raras y divertidas, como usar solo el dedo meñique o el nudillo del dedo anular para interactuar con cualquier botón del juego si realmente lo deseas.
Esta implementación difiere ligeramente de la forma en que los controladores táctiles interactúan con los botones en el juego, ya que normalmente esperamos que los jugadores usen el botón de agarre en su controlador para configurar la mano como una red de «señalar con el dedo» para presionar con precisión el botón en el juego en su extremo. . Con el seguimiento de la mano, obviamente hay mucha más flexibilidad en la pose que puede crear con la mano y, por lo tanto, muchas más oportunidades para presionar botones con la misma precisión.
Interacciones de menú/interfaz de usuario
Finalmente, para interactuar con los menús, usamos el mismo paradigma de interacción que usa Meta para la plataforma Quest: un pellizco de dos dedos entre el pulgar y el índice de cada mano. Esto se puede usar tanto para abrir nuestro menú en el juego como para interactuar con elementos en el menú. ¡No tiene sentido reinventar la rueda aquí cuando a los jugadores ya se les enseña a hacer esto en los menús del nivel del sistema operativo cuando habilitan el seguimiento de manos por primera vez en Quest!
Comunicar todo esto al jugador
Debido a que el seguimiento de manos no es una entrada tan común en Quest como lo es en los controladores táctiles, y porque algunas personas pueden estar jugando místico Por primera vez (¡o incluso el primer juego de realidad virtual!) hemos tratado de ser considerados acerca de cómo pasamos toda esta información de seguimiento manual al jugador. Hemos tenido cuidado de incluir otra versión de nuestro «diagrama de controlador» diseñado específicamente para describir las interacciones de seguimiento manual (si está habilitado en místico) y mostramos al jugador notificaciones especiales que le indican exactamente cómo mover las manos.
Además, sentimos que era importante recordarle al jugador cómo tener una experiencia de seguimiento de manos fluida una vez habilitada. El jugador será notificado. místicode que la estabilidad del seguimiento de las manos es mucho mejor si se aseguran de estar en una habitación bien iluminada y de mantener las manos dentro de su campo de visión.
Meta también informa a los jugadores que estos son clave para un entorno de seguimiento de manos bien rastreado, pero sabemos que algunos jugadores pueden ingresar a un juego sin analizar primero las señales de Meta al respecto, por lo que decidimos recordárselo a la gente en caso de que lo olvidaran.