Portar aplicaciones vr a Windows Mixed Reality

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

La migración 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. Actualiza a la versión más reciente de tus gráficos o motor de juegos. Los motores de juegos deben admitir la versión 10.0.15063.0 o posterior del SDK de Windows 10.
  3. Actualizar middleware, complementos y componentes. Si la aplicación contiene algún componente, 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 al que se dirige 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 migración

Comience con los siguientes pasos comunes de migración:

  1. Asegúrese de que tiene el hardware de desarrollo adecuado. La guía para entusiastas de vr 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 Programa Windows Insider.
    3. Habilitar el modo de desarrollador
    4. Cambie a los vuelos rápidos de Windows Insider a través de la sección Configuración > Actualización & Seguridad.

    Nota

    La plataforma Windows Mixed Reality todavía está en desarrollo activo. Únete al Programa Windows Insider para acceder al paquete piloto 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. Actualización a la última compilación pública de Unity con compatibilidad con Windows MR

  1. Guarde una copia del proyecto antes de empezar.
  2. Descargue la compilación pública recomendada más reciente de Unity con Windows Mixed Reality soporte técnico.
  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. Compruebe 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 software intermedio 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 Standalone.
  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 los servicios equivalentes de Windows 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 Mixed Reality OpenXR es el 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 cascos inmersivos.
  2. Obtenga información sobre cómo usar el simulador de Windows Mixed Reality y navegar por la página principal de Windows Mixed Reality.

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 estático, el contenido que colocas 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 a 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 de nivel de piso definido por el 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ézcalo explícitamente y asegúrese de que vuelve a trueobtener . Esta práctica detecta situaciones en las que el usuario ha alejado el equipo 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 enfrentan 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. Después, puede ofrecer una experiencia a escala de sala al usuario, donde puede recorrer la escena que cree.

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

Ejemplo de resultados:

Ejemplo de resultados

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

7. Trabajar con el 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 ajustar 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, consulta 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 de rendimiento y la optimización.

Para obtener una amplia explicación del rendimiento, consulte Descripción del rendimiento para 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