Windows Mixed Reality: una guía para desarrolladores (parte 1)

Hola Habr! Hoy comenzamos una serie de artículos sobre Windows Mixed Reality. Dentro de su marco, desarrollaremos una aplicación de realidad mixta en Unity desde cero. Por cierto, todo esto tendrá lugar en el formato de trabajo de laboratorio (trabajo de laboratorio), es decir, usted mismo, en paralelo con la publicación de artículos, puede crear dicha aplicación. Únete ahora!



La guía completa constará de 5 partes. Se repondrá cada semana. A continuación puede ir a la parte que necesita.

Parte 1: Exportar la aplicación UWP para Windows Mixed Reality desde Unity ;
Parte 2: Configuración del entorno (VR) ;
Parte 3: Controladores ;
Parte 4: Sonido espacial ;
Parte 5: HoloLens y gráficos .

La realidad mixta es una combinación del mundo real con contenido virtual, un entorno híbrido en el que los objetos físicos y digitales existen juntos e interactúan entre sí.

En este tutorial, creará una aplicación para auriculares inmersivos de realidad mixta (VR) de Windows y dispositivos Microsoft HoloLens (AR). Con Unity, creará una sala virtual en la que los usuarios interactuarán con un altavoz que reproduce sonido espacial. Los usuarios escucharán el sonido teletransportándose a varios puntos de la sala o moviendo el altavoz por la sala.

La aplicación se creará utilizando el Kit de herramientas de realidad mixta para obtener la máxima compatibilidad con HoloLens. Hacia el final de la lección, hará algunos cambios en la aplicación para optimizar la experiencia para el dispositivo HoloLens desde la aplicación de realidad virtual.

Después de completar la lección, usted:

  • aprenda a crear aplicaciones de realidad virtual con Unity y consolide este conocimiento;
  • Aprenda a configurar Unity para crear aplicaciones UWP para Realidad mixta.
  • Aprenda a usar las funciones estándar de Realidad Mixta (MR), como la configuración de la cámara, el procesamiento de entrada (control de la mirada, controladores de movimiento y gestos) y la reproducción espacial de sonido en aplicaciones de MR;
  • Aprende a crear aplicaciones de realidad mixta que sean adecuadas tanto para gafas de realidad virtual como para HoloLens.

Requisitos de hardware


  • Computadora habilitada para MR
  • [Opcional] Auriculares inmersivos de realidad mixta de Windows con controladores de movimiento
  • [Opcional] dispositivo HoloLens

Nota Si no tiene acceso a un auricular inmersivo o un dispositivo HoloLens, puede ver cómo funciona su aplicación en el simulador de realidad mixta o el emulador HoloLens. Ver enlaces a continuación.

Requisitos de software


Visual Studio 2017 . Cualquier edición servirá, incluida la edición comunitaria gratuita. Durante la instalación, se deben seleccionar los siguientes componentes y cargas de trabajo:


Nota En Visual Studio, se puede obtener acceso a varios kits de herramientas mediante el menú Herramientas -> Obtener herramientas y características (Herramientas -> Obtener herramientas y componentes).

Unity 2017.4.3 (al elegir componentes durante la instalación, debe agregar .Net Scripting Backend);

• Actualización de OS Windows 10 Fall Creators (o posterior);

  • Para habilitar el modo de desarrollador, vaya a Configuración -> Actualización y seguridad -> Para desarrolladores.

• [Opcional] Emulador HoloLens o simulador de Realidad Mixta .

Exporte la aplicación UWP Windows Mixed Reality de Unity


1. Crear un proyecto de Unity e importar recursos


Para esta práctica, necesitamos importar algunos recursos necesarios. Descargue estos dos paquetes de Unity y guárdelos en su computadora.

  • Holotoolkit.Unitypackage
    Esta es una instantánea de Microsoft Mixed Reality Toolkit , un conjunto de scripts y componentes que acelera el desarrollo de aplicaciones para Microsoft HoloLens y auriculares que admiten Windows Mixed Reality.
  • SpatialSoundLab.Unitypackage
    Un paquete especial preparado para esta práctica lección. Contiene recursos (modelos, materiales y clips de sonido) que se utilizarán para trabajar con sonido espacial.

Después de recibir los archivos de recursos, podemos crear un proyecto de Unity.

1. Abra el editor de Unity y haga clic en Nuevo.

2. Seleccione un nombre para el proyecto (por ejemplo, SpeakerPlacement).

3. Active 3D para la plantilla, desactive el análisis y haga clic en Create project .

4. Para importar paquetes de Unity, seleccione Activos -> Importar paquete -> Paquete personalizado en el menú, y navegue hasta el paquete Holotoolkit.unitypackage previamente guardado.



5. No anule la selección de elementos para importar todos los archivos. Haz clic en Import .



El proceso de importación consta de varias etapas y puede llevar varios minutos. Si la importación del paquete se realiza correctamente, aparece una carpeta llamada Holotoolkit en la ventana del proyecto debajo de la carpeta Activos.



6. También importe el archivo SpatialSoundLab.UnityPackage repitiendo los pasos anteriores.

7. La carpeta Assets ahora debería contener ambos paquetes.



2. Aplicación de los parámetros del proyecto.


A continuación, debemos configurar nuestro proyecto de Unity para crear una aplicación para Windows Mixed Reality. Esta tarea nos ayudará a completar el Kit de herramientas de realidad mixta.

1. En el menú superior, vaya a la sección Kit de herramientas de realidad mixta -> Configurar (Kit de herramientas de realidad mixta -> Configuración) y seleccione Aplicar configuración de proyecto de realidad mixta.



2. Seleccione la casilla de verificación Usar ejes de InputManager específicos del kit de herramientas y haga clic en el botón Aplicar.



Para fines de referencia, damos una descripción de cada uno de los parámetros:

  • Destino Windows Universal UWP (compilación para Windows Universal UWP): especifica la plataforma de destino para Unity. Se pueden ver otras opciones para la plataforma de destino seleccionando Archivo -> Configuración de compilación.
  • Compilación para Direct3D: establece el valor D3D para el parámetro Tipo de compilación en la sección Configuración de compilación. Para aplicaciones de realidad mixta diseñadas para auriculares cerrados, XAML no es compatible.
  • Configurar el parámetro Enable XR es lo mismo que configurar el parámetro Realidad virtual admitido en la sección Configuración del reproductor -> Configuración XR.
  • La configuración Habilitar .NET scripting es equivalente a configurar .NET para la Configuración del reproductor -> Otras configuraciones -> Scripting Backend (Configuración del reproductor -> Otras configuraciones -> Plataforma de scripting) La opción IL2CPP también funcionaría, pero para mantener la coherencia en este laboratorio, recomendamos utilizar la variante .NET.
  • El parámetro Usar eje de InputManager específico del Toolkit cambia los ejes de la sección Editar -> Configuración del proyecto -> Administrador de entrada para habilitar la compatibilidad con todos los ejes que se usan en la caja de herramientas . En otras palabras, incluye soporte para el gamepad Xbox y controladores para Realidad Mixta.
  • Si crea aplicaciones solo para auriculares inmersivos, puede seleccionar la casilla de verificación Dispositivos ocluidos de destino. Como vamos a transferir nuestra aplicación al dispositivo HoloLens, no seleccionaremos esta casilla de verificación.

Hemos proporcionado soporte para Realidad mixta, pero hay algunas configuraciones más que deben realizarse para la plataforma universal de Windows.

3. En el menú superior, vaya a la sección Kit de herramientas de realidad mixta -> Configurar (Kit de herramientas de realidad mixta -> Configuración) y seleccione Aplicar configuración de capacidad UWP.



4. Seleccione la casilla de verificación Percepción espacial si tiene la intención de transferir esta aplicación a un dispositivo HoloLens. Esto nos permitirá mapear el entorno y encontrar las superficies para acomodar los altavoces.

5. Haga clic en el botón Apply para guardar sus cambios.

6. A continuación, abra el cuadro de diálogo Archivo -> Configuración de compilación utilizando el método abreviado de teclado Ctrl + Shift + B, seleccione Plataforma universal de Windows y luego haga clic en Cambiar plataforma. Agregue una escena abierta al ensamblaje marcando la casilla junto al nombre de la escena y haciendo clic en el botón Agregar escenas abiertas. Confirme la oferta para guardar la escena y seleccione un nombre adecuado para ella. Llamamos a nuestra escena Principal.

3. Aplique la configuración de escena y agregue objetos de realidad mixta


Ahora tenemos que configurar la escena. Agreguemos objetos que manejarán el movimiento de la cámara y las señales del controlador.

1. Desde el menú superior, vaya a la sección Kit de herramientas de realidad mixta -> Configurar (Kit de herramientas de realidad mixta -> Configuración) y seleccione Aplicar configuración de proyecto de realidad mixta.



2. Deje todas las configuraciones predeterminadas seleccionadas y haga clic en el botón Aplicar.



Para fines de referencia, proporcionamos una descripción de todos estos parámetros:

  • El prefabricado MixedRealityCameraParent se agrega a la escena. Este prefabricado agrega una cámara estándar (principal) al origen (0,0,0), y también agrega soporte para controladores de movimiento y borde.
  • El InputManager prefabricado se agrega a la escena. Proporciona soporte de entrada (mirada, control de gestos, entrada táctil o un gamepad Xbox).
  • El Prefab DefaultCursor se agrega a la escena.

Todos los objetos agregados serán visibles en el panel de Jerarquía de Unity.

Esto completa la configuración y preparación del proyecto y la escena para crear la aplicación UWP para MR.

Guarde la escena y el diseño.

3. Haga clic en Archivo -> Guardar escenas. Cuando se le solicite elegir un nombre para la escena, asígnele el nombre Principal (o proponga cualquier otro nombre adecuado).

4. Haga clic en Archivo -> Guardar proyecto.

Nota Para obtener una descripción detallada de todos los parámetros utilizados aquí, consulte esta guía de configuración del proyecto de realidad mixta.

4. Implementación de aplicaciones en auriculares


Ahora no necesita hacer esto, pero si decide construir un proyecto, use las siguientes instrucciones para iniciarlo.

Implementar un proyecto en un auricular inmersivo

1. Vaya al Kit de herramientas de realidad mixta -> Ventana de compilación (Kit de herramientas de realidad mixta -> Ventana de compilación).

2. Haga clic Open in Visual Studio . Esta acción tomará varios minutos; durante este tiempo, se compilarán todos los recursos y se creará o actualizará una solución para Visual Studio.

Nota Si aparece un mensaje en Unity de que no hay una solución abierta para el proyecto y se le pregunta si necesita completar el ensamblaje, seleccione Sí, Generar.

3. Una vez completada la compilación, Unity iniciará Visual Studio.

4. En la barra de herramientas estándar de Visual Studio, cambie la plataforma de solución activa de ARM a x64. Para el destino de implementación, debe seleccionar Máquina local.



Si no está depurando, le recomendamos que también cambie el tipo de compilación de Depurar a Liberar, ya que las compilaciones de depuración de Unity suelen ser más lentas.

5. Inicie la aplicación presionando el botón de reproducción.

Implementar un proyecto en un dispositivo HoloLens

El procedimiento para implementar un proyecto en un dispositivo HoloLens es muy similar al procedimiento anterior para auriculares envolventes con la única excepción de que necesita seleccionar otro dispositivo de destino y seleccionar x86 como plataforma.

1. Vaya al Kit de herramientas de realidad mixta -> Ventana de compilación (Kit de herramientas de realidad mixta -> Ventana de compilación).

2. Haga clic Open in Visual Studio . Esta acción tomará varios minutos; durante este tiempo, se compilarán todos los recursos y se creará o actualizará una solución para Visual Studio.

Nota Si aparece un mensaje en Unity de que no hay una solución abierta para el proyecto y se le pregunta si necesita completar el ensamblaje, seleccione Sí, Generar.

3. Una vez completada la compilación, Unity iniciará Visual Studio.

4. En la barra de herramientas estándar de Visual Studio, cambie la plataforma de solución activa de ARM a x86 y seleccione el destino apropiado para la implementación:

  • si la implementación se realiza a través de USB, seleccione Dispositivo;
  • Si la implementación se realiza a través de Wi-Fi, seleccione Máquina remota y configure la computadora remota.



Si no está depurando, le recomendamos que también cambie el tipo de compilación de Depurar a Liberar, ya que las compilaciones de depuración de Unity suelen ser más lentas.

5. Inicie la aplicación presionando el botón de reproducción.

Para obtener información sobre la publicación de aplicaciones en Microsoft Store, consulte el sitio para desarrolladores de Windows .

Aplicación de colocación de altavoces


En nuestra aplicación de colocación de altavoces para colocar altavoces, el usuario tendrá las siguientes opciones:

  • Con los controladores de movimiento, el usuario puede teletransportarse a varios puntos de la sala de estar virtual o moverse por ella;
  • También puede seleccionar altavoces, moverlos, rotarlos, encenderlos y apagarlos y escuchar sonido espacial en toda la habitación.

A continuación hay una lista de nuestros modelos y recursos musicales.

  • Prefabs -> RoomPrefab.prefab: una sala de estar virtual para auriculares envolventes.
  • Modelos -> Speaker.3DS - un modelo de nuestros altavoces, que convertiremos en un prefabricado funcional.
  • Audio -> ChillBlueLagoon.mp3 - archivo de música (puede usar cualquier archivo en formato MP3, OGG, WAV o AIFF).

Otras características se implementarán utilizando el Kit de herramientas de realidad mixta. Los componentes de este kit se utilizarán para agregar interoperabilidad.

El original
Autores: Eric Ahlstrom, cbarkerms, Madison Hight

Source: https://habr.com/ru/post/es418655/


All Articles