Unity y la realidad virtual

Unity es una herramienta de desarrollo de videojuegos creada por la empresa Unity Technologies.

También se ha utilizado para crear experiencias de Realidad Virtual interactivas , como “Baymax Dreams”, producida por Disney junto con Unity, donde se ha utilizado el editor para procesar y previsualizar en tiempo real todos los capítulos de la miniserie.

Es la plataforma de desarrollo de VR más utilizada, y más del 91 % de las experiencias de HoloLens fueron creadas con Unity.

Ya sea que se trate de VR, AR o MR, puedes contar con el pipeline de renderizado altamente optimizado de Unity y las capacidades de iteración rápida del editor para hacer realidad tu visión creativa XR.

¿Por qué Unity para VR/AR?

  • Llega al mayor público posible

Unity es compatible con todas las últimas y más importantes plataformas . El soporte nativo está ahora disponible para Oculus Rift, Steam VR/Vive, Playstation VR, Gear VR, Microsoft HoloLens y Daydream View de Google.

  • Frame rates ultra altas

Gracias a un pipeline de renderizado estereoscópico altamente optimizado y las herramientas que te ayudan a optimizar aún más tu contenido

  • Desarrollo iterativo rápido

Crea una compilación para una plataforma específica exactamente como esa, retoca algunos valores y compila nuevamente.

Visión General de VR

Unity VR le permite apuntar a dispositivos de realidad virtual directamente desde Unity, sin ningún complemento externo en los proyectos. Proporciona un conjunto básico de API y características con compatibilidad para múltiples dispositivos. Proporciona compatibilidad hacia adelante para futuros dispositivos y software.

Al utilizar el soporte VR nativo en Unity:

  • Versiones estables de cada dispositivo de VR
  • Una sola interfaz API para interactuar con diferentes dispositivos de VR
  • Una carpeta de proyecto limpia sin ningún plugin externo para cada dispositivo
  • La habilidad de incluir y cambiar entre varios dispositivos en sus aplicaciones
  • Better performance (Lower-level Unity engine optimizations are possible for native devices)

Habilitando el Soporte VR de Unity

Para habilitar el soporte de VR nativo para sus compilaciones de juegos y el editor, debe abrir Player Settings (menú: Edit > Project Settings > Player). Seleccione XR Settings y marque la casilla de verificación Virtual Reality Supported. Establezca esto para cada objetivo de construcción. Habilitar el soporte de realidad virtual en una compilación independiente no habilita también el soporte para Android (y viceversa).

Navegando a los Player Settings desde el Editor de Unity


Use la lista de SDK de realidad virtual debajo de la casilla de verificación para agregar y eliminar dispositivos de realidad virtual para cada objetivo de compilación. El orden de la lista es el orden en que Unity intenta habilitar dispositivos VR en tiempo de ejecución. El primer dispositivo que se inicializa correctamente es el habilitado. Este orden de lista es el mismo en el reproductor integrado.

Habilitando Virtual Reality Support a través de los ajustes de XR

Qué pasa cuando VR está habilitado

Cuando VR esté habilitado en Unity, unas pocas cosas suceden automáticamente:

Renderización automática a una pantalla montada a la cabeza (Head-mounted display)

Todas las cámaras de su escena pueden renderizarse directamente en la pantalla montada en la cabeza (HMD). Ajusta automáticamente las matrices de visualización y proyección para tener en cuenta el seguimiento de la cabeza, el seguimiento posicional y el campo de visión.

Es posible deshabilitar la renderización en el HMD utilizando la propiedad stereoTargetEye del componente de la cámara. Alternativamente, puede configurar la Cámara para que se renderice en una Render Texture utilizando la propiedad Target Texture.

Use la propiedad stereoTargetEye para configurar la cámara para que solo muestre un ojo específico al HMD. Esto es útil para efectos especiales como un alcance de francotirador o videos estereoscópicos. Para lograr esto, agregue dos cámaras a la escena: una dirigida al ojo izquierdo y la otra dirigida al ojo derecho. Establezca máscaras de capa para configurar lo que Unity envía a cada ojo.

Input automático de seguimiento de cabeza

Unity aplica automáticamente el seguimiento de la cabeza y el campo de visión apropiado (FOV) a la cámara si el dispositivo objetivo está montado en la cabeza. Puede establecer manualmente el FOV en un valor específico, pero no puede establecer los valores de transformación de la cámara directamente. Consulte la siguiente sección sobre Comprensión de la cámara para obtener más información.

El seguimiento automático de la cabeza y el seguimiento posicional aseguran que la posición y orientación coincidan más estrechamente con la posición y orientación del usuario antes renderice el marco. Esto brinda una buena experiencia de realidad virtual y evita que el usuario experimente náuseas.

Colocando como hijo la Main Camera a un Gameobject

Piense en la posición y orientación de la cámara como donde el usuario está mirando en su posición neutral.

Hay diferencias entre experiencias sentadas y de escala a un cuarto:

  • Si su dispositivo admite una experiencia a escala de la habitación, la posición de inicio de la cámara es el centro del espacio de juego del usuario.
  • Usando la experiencia sentada, puede restablecer las cámaras a la posición neutral usando XR.InputTracking.Recenter().

Cada cámara que se está rindiendo al dispositivo reemplaza automáticamente el FOV de la cámara con el FOV que el usuario ingresa en la configuración del software para cada VR SDK. El usuario no puede cambiar el campo de visión durante el tiempo de ejecución, porque se sabe que este comportamiento induce el mareo por movimiento.

Modo del Editor

Si su dispositivo VR admite el modo Editor, presione Reproducir en el Editor para probar directamente en su dispositivo.

El ojo izquierdo se muestra en la ventana Vista del juego si tiene stereoTargetEye configurado a la izquierda o ambos. El ojo derecho se representa si tiene stereoTargetEye configurado a la derecha.

No hay una vista automática de lado a lado de los ojos derecho e izquierdo. Para ver una vista de lado a lado en la Vista del juego, cree dos Cámaras, coloque una a la izquierda y otra al ojo derecho, y configure la ventana de visualización de forma que se muestren una al lado de la otra.

Tenga en cuenta que hay una sobrecarga en la ejecución en el Editor, porque Unity IDE necesita representar cada ventana, por lo que puede experimentar un retraso o una vibración. Para reducir la sobrecarga de representación del editor, abra la Vista del juego y habilite Maximizar en el juego.

Unity Profiler es una herramienta útil para tener una idea de cómo debería ser su rendimiento cuando se ejecuta fuera del Editor. Sin embargo, el perfilador en sí también tiene gastos generales. La mejor manera de revisar el rendimiento del juego es crear una compilación en su plataforma de destino y ejecutarla directamente. Puede ver el mejor rendimiento cuando ejecuta una compilación que no es de desarrollo, pero las compilaciones de desarrollo le permiten conectar el generador de perfiles para un mejor perfil de rendimiento.

Recomendaciones de hardware y software para el desarrollo VR en Unity

Hardware

Lograr un frame rate similar a su HMD destino es esencial para tener una buena experiencia VR. Este debe coincidir con el refresh rate (tasa de actualización) de la pantalla utilizada en el HMD. Si el frame rate cae debajo del refresh rate del HMD, esto se nota en particular y a menudo lleva a que cause nauseas al jugador.

Software

  • Windows: Windows 7, 8, 8.1, y Windows 10 son todos compatibles.
  • Android: Android OS Lollipop 5.1 o superior.
  • OS X: OSX 10.9+ con Oculus 0.5.0.1 runtime. Sin embargo, Oculus ha pausado el desarrollo para OS X, entonces utilice Windows para una funcionalidad VR nativa.
  • Graphics card drivers: Asegúrese de que sus drivers (controladores) estén actualizados. Cada dispositivo se mantiene al día con los drives más nuevos, por lo que los drivers más viejos podrían no estar soportados.

Requisitos de tiempo de ejecución del dispositivo

Cada dispositivo VR requiere que tenga instalado el tiempo de ejecución adecuado en su máquina. Por ejemplo, para desarrollar y ejecutar Oculus, necesita tener instalado el tiempo de ejecución de Oculus (también conocido como Oculus Home) en su máquina. Para Vive, necesitas tener Steam y SteamVR instalados.

Dependiendo de la versión que esté utilizando, las versiones de tiempo de ejecución para cada dispositivo específico que pueden diferir. Puede encontrar versiones de tiempo de ejecución en las notas de lanzamiento de cada lanzamiento principal y secundario.

Con algunas actualizaciones de versión, las versiones anteriores en tiempo de ejecución ya no son compatibles. Esto significa que el soporte nativo de Unity VR no funciona con versiones anteriores en tiempo de ejecución, pero continúa trabajando con nuevas versiones en tiempo de ejecución.

El soporte de VR nativo no lee los complementos desde la carpeta de su proyecto, por lo que no se incluyen las versiones anteriores del complemento con soporte nativo si tiene habilitado el soporte de VR. Si desea utilizar una versión anterior con un lanzamiento que ya no es compatible con esa versión, desactive la compatibilidad con Native VR (vaya a Configuración XR y desactive la opción Realidad virtual admitida). Luego puede acceder al complemento como cualquier otro complemento de terceros.

Autor: Angie Fernanda Suarez Avendaño

Editor: Carlos Pinzón

Código: UCRV-6

Fuentes:

Unity. (2020). Unity para VR y AR. Unity. https://unity3d.com/es/unity/features/multiplatform/vr-ar

Garcia,D. (2019). Qué es Unity. openwebbinars. https://openwebinars.net/blog/que-es-unity/

Dondé,E. (2019). Curso gratuito de unity vr. industria animacion. http://www.industriaanimacion.com/2019/12/curso-gratuito-unity-vr/

Unity. (2020). Realidad virtual. Unity. https://unity.com/es/unity/features/vr

Unity. (2020). El rincón de la VR y la AR. Unity. https://unity.com/es/VR-and-AR-corner

Unity. (2020). Visión General de VR.Unity.https://docs.unity3d.com/es/530/Manual/VROverview.html

Unity.(2020).PlayerSettings.[imagen].Unity.https://docs.unity3d.com/es/2018.4/uploads/Main/PlayerSettings.png

Unity.(2020). VRSepported.[imagen].Unity.https://docs.unity3d.com/es/2018.4/uploads/Main/VRSupported.png

Unity.(2020). CameraContainer.[imagen].Unity.https://docs.unity3d.com/es/2018.4/uploads/Main/CameraContainer.png

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *