Portabilidad de aplicaciones de VR a Windows Mixed Reality

Windows 10 incluye compatibilidad con cascos envolventes y holográficos. Otros dispositivos, como La Grieta de Las Manualizaciones o HTC Vive, tienen dependencias en bibliotecas que existen encima de la API de plataforma del sistema operativo. Para llevar las aplicaciones de VR de Unity de Win32 existentes a Windows Mixed Reality, debe volver a asignar el uso del SDK de VR específico del proveedor a las API y complementos de VR entre proveedores de Unity.

La portabilidad de aplicaciones de VR a Windows Mixed Reality requiere los siguientes procesos de alto nivel:

  1. Asegúrese de que el equipo ejecuta el Windows 10, versión 1709 (actualización de Fall Creator) o posterior, o Windows 11.
  2. Actualice a la versión más reciente del motor de juegos o gráficos. Los motores de juegos deben admitir la versión 10.0.15063.0 o posterior del SDK de Windows 10.
  3. Actualice el middleware, los complementos y los componentes. Si la aplicación contiene componentes, actualice a las versiones más recientes.
  4. Tener como destino la versión más reciente de Unity y el complemento OpenXR. Quite las dependencias de los SDK duplicados. Dependiendo del dispositivo que tenga como destino el contenido, quite o compile condicionalmente ese SDK.
  5. Trabaje con problemas de compilación específicos de la aplicación, el motor y las dependencias de los componentes.

Pasos comunes de portabilidad

Comience con los siguientes pasos comunes de portabilidad:

  1. Asegúrese de que tiene el hardware de desarrollo adecuado. La guía para entusiastas de la realidad virtual enumera el hardware de desarrollo recomendado.

  2. Actualice al último vuelo de Windows 10.

    1. Instalación del Windows 10 Creators Update
    2. Únase al Windows Insider Program.
    3. Habilitar el modo de desarrollador
    4. Cambie a los vuelos de Windows Insider Fast a través de Configuración > Sección de seguridad de actualización&.

    Nota:

    La plataforma Windows Mixed Reality todavía está en desarrollo activo. Únase al Windows Insider Program para acceder al vuelo rápido de Windows Insider. No obtenga compilaciones en versión preliminar del anillo Insider Skip Ahead, ya que esas compilaciones no son las más estables para el desarrollo de realidad mixta.

  3. Si usa Visual Studio, actualice a la compilación más reciente. Consulte Instalación de las herramientas en Visual Studio 2022. Asegúrese de instalar la carga de trabajo Desarrollo de juegos con Unity .

Pasos de portabilidad de Unity

Revise los pasos comunes para asegurarse de que el entorno de desarrollo está configurado correctamente. Para migrar el contenido de Unity existente, siga estos pasos:

1. Actualice a la compilación pública más reciente de Unity con Windows compatibilidad con MR

  1. Guarde una copia del proyecto antes de empezar.
  2. Descargue la compilación pública recomendada más reciente de Unity con compatibilidad con Windows Mixed Reality.
  3. Si el proyecto se creó en una versión anterior de Unity, revise las Guías de actualización de Unity.
  4. Siga las instrucciones para usar el actualizador automático de API de Unity.
  5. Vea si necesita realizar otros cambios para ejecutar el proyecto y solucionar los errores y advertencias.

2. Actualice el middleware a las versiones más recientes.

Con cualquier actualización de Unity, es posible que tengas que actualizar uno o varios paquetes de middleware de los que depende tu juego o aplicación. La actualización al middleware más reciente aumenta la probabilidad de éxito en el resto del proceso de portabilidad.

3. Destino de la aplicación para que se ejecute en Win32

Desde dentro de la aplicación de Unity:

  1. Vaya a Configuración de compilación de archivos>.
  2. Seleccione PC, Mac, Linux Independiente.
  3. Establezca la plataforma de destino en Windows.
  4. Establezca la arquitectura en x86.
  5. Seleccione Cambiar plataforma.

Nota:

Si la aplicación tiene dependencias en servicios específicos del dispositivo, como la realización de coincidencias desde Steam, deshabilítelas ahora. Puede enlazar el Windows servicios equivalentes más adelante.

4. Agregar compatibilidad con el complemento openXR de Mixed Reality

  1. Elija e instale una versión de Unity y un complemento XR. Aunque Unity 2020.3 LTS con el complemento openXR de Mixed Reality es mejor para Mixed Reality desarrollo, también puede compilar aplicaciones con otras configuraciones de Unity.

  2. Quite o compile condicionalmente cualquier compatibilidad de biblioteca específica para otro SDK de VR. Esos recursos pueden cambiar la configuración y las propiedades del proyecto de maneras que no son compatibles con Windows Mixed Reality.

    Por ejemplo, si el proyecto hace referencia al SDK de SteamVR, actualice el proyecto para que use en su lugar las API comunes de VR de Unity, que admiten Windows Mixed Reality y SteamVR.

  3. En el proyecto de Unity, tiene como destino el SDK de Windows 10.

  4. Para cada escena, configure la cámara.

5. Configurar el hardware de Windows Mixed Reality

  1. Revise los pasos descritos en Configuración de auriculares inmersivos.
  2. Obtenga información sobre cómo usar el simulador de Windows Mixed Reality y navegar por la Windows Mixed Reality inicio.

6. Utilice la fase para colocar contenido en el suelo

Puede crear experiencias Mixed Reality en una amplia gama de escalas de experiencia. Si va a migrar una experiencia de escalado sentado, asegúrese de que Unity esté establecido en el tipo de espacio de seguimiento estacionario :

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Este código establece el sistema de coordenadas del mundo de Unity para realizar un seguimiento del marco fijo de referencia. En el modo de seguimiento estacionario, el contenido que coloques en el editor justo delante de la ubicación predeterminada de la cámara (forward is -Z) aparece delante del usuario cuando se inicia la aplicación. Para hacer más reciente el origen sentado del usuario, puede llamar a XR de Unity . Método InputTracking.Recenter .

Si va a migrar una experiencia a escala permanente o una experiencia de escala de sala, coloca contenido en relación con el piso. El motivo es que el piso del usuario use la fase espacial, que representa el origen definido del nivel de piso del usuario. La fase espacial puede incluir un límite de sala opcional que configuró durante la primera ejecución.

Para estas experiencias, asegúrese de que Unity está establecido en el tipo de espacio de seguimiento RoomScale . RoomScale es el valor predeterminado, pero establézcala explícitamente y asegúrese de que vuelve a trueobtener . Esta práctica detecta situaciones en las que el usuario ha movido su equipo fuera de la sala que calibraron.

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App can't make assumptions about where the floor plane is.
}

Una vez que la aplicación establece correctamente el tipo de espacio de seguimiento RoomScale, el contenido colocado en el plano y=0 aparece en el suelo. El origen en (0, 0, 0) es el lugar específico en el piso donde el usuario estaba durante la configuración de la sala, con -Z que representa la dirección hacia delante a la que se enfrentaban durante la instalación.

En el código de script, puede llamar al TryGetGeometry método en el UnityEngine.Experimental.XR.Boundary tipo para obtener un polígono de límite, especificando un tipo de límite de TrackedArea. Si el usuario definió un límite, obtendrá una lista de vértices. A continuación, puede ofrecer una experiencia de escalado de sala al usuario, donde puede recorrer la escena que cree.

El sistema representa automáticamente el límite cuando el usuario lo acerca. La aplicación no necesita usar este polígono para representar el propio límite.

Ejemplo de resultados:

Example of results

Para obtener más información, consulte Sistemas de coordenadas en Unity.

7. Trabajar a través del modelo de entrada

Cada juego o aplicación que tiene como destino una pantalla montada en la cabeza existente (HMD) tiene un conjunto de entradas que controla, tipos de entradas que necesita para la experiencia y API específicas a las que llama para obtener esas entradas. Es sencillo y sencillo aprovechar las entradas disponibles en Windows Mixed Reality.

Consulte la guía de portabilidad de entrada para Unity para obtener más información sobre cómo Windows Mixed Reality expone la entrada y cómo se asigna la entrada a lo que hace la aplicación ahora.

Importante

Si usa controladores HP Reverb G2, consulte Controladores HP Reverb G2 en Unity para obtener más instrucciones de asignación de entrada.

8. Probar y optimizar el rendimiento

Windows Mixed Reality está disponible en muchos dispositivos, desde equipos de juegos de gama alta hasta equipos estándar de mercado amplio. Estos dispositivos tienen presupuestos de proceso y gráficos considerablemente diferentes disponibles para la aplicación.

Si has migrado tu aplicación con un equipo premium con presupuestos de proceso y gráficos significativos, asegúrate de probar y generar perfiles de tu aplicación en hardware que represente tu mercado objetivo. Para obtener más información, consulte Windows Mixed Reality directrices mínimas de compatibilidad de hardware del equipo.

Tanto Unity como Visual Studio incluyen generadores de perfiles de rendimiento, y tanto Microsoft como Intel publican directrices sobre la generación de perfiles y la optimización del rendimiento.

Para obtener una explicación exhaustiva del rendimiento, consulte Descripción del rendimiento de Mixed Reality. Para obtener detalles específicos sobre Unity, consulte Recomendaciones de rendimiento para Unity.

Asignación de datos de entrada

Para obtener información de asignación de entrada e instrucciones, consulte Guía de portabilidad de entrada para Unity.

Importante

Si usa controladores HP Reverb G2, consulte Controladores HP Reverb G2 en Unity para obtener más instrucciones de asignación de entrada.

Consulte también