Cómo se hace el sonido para otra realidad

Continuamos la serie de artículos sobre Windows Mixed Reality y desarrollamos desde cero una aplicación Unity de realidad mixta en formato de trabajo de laboratorio. Usted mismo puede, en paralelo con la publicación de artículos, crear dicha aplicación. Hoy hablaremos sobre el sonido espacial y cómo crear la sensación de estar en una realidad diferente.



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 .

Sonido espacial


El altavoz está listo, ahora intente iniciar y detener la reproducción del sonido espacial. En esta sección, agregaremos una fuente de sonido y controles de reproducción de audio.

Dado que algunas de las tareas que enfrentamos son similares a las completadas anteriormente, le daremos instrucciones en forma de listas para acelerar el proceso.

Verifique sus acciones con las capturas de pantalla que se encuentran al final de cada etapa grande, y vea los enlaces adicionales para obtener instrucciones en las instrucciones.

Agregar una fuente de sonido


Para reproducir sonido desde un altavoz, debe agregarle el componente Unity AudioSource .

  1. Seleccione el objeto Speaker en la escena y haga clic en Agregar componente -> Audio -> Fuente de audio.
  2. Haga clic en el pequeño icono en forma de cruz a la derecha de la propiedad Clip de audio del componente Fuente de audio y seleccione Chill Blue Lagoon.
  3. Desactive la casilla de verificación Reproducir al despertar, ya que controlaremos la reproducción con los botones. Cambiaremos la configuración para el soporte de sonido espacial más adelante.



Agregar controles de reproducción al altavoz


Para agregar un botón de reproducción al altavoz, siga estos pasos:

1. En el panel Proyecto, busque el prefabricado CircleButton en Activos -> HoloToolkit -> UX -> Prefabs -> Carpeta de botones (Recursos -> HoloToolkit -> UX -> Prefabs -> Botones) y arrástrelo al panel Jerarquía agregando este prefabricado a la escena como hijo del objeto Speaker.

2. Déle al botón agregado el nombre PlayButton.



3. Aumente el tamaño del PlayButton estableciendo su propiedad Transform Scale en (90, 90, 90).

4. Después de seleccionar el objeto PlayButton, haga clic en Agregar componente -> Evento -> Activador de eventos (Agregar componente -> Evento -> Activador de eventos).

5. Haga clic en Agregar nuevo tipo de evento -> Clic de puntero.

6. Haga clic en el botón + en la parte inferior de la lista de eventos vacía.

7. Arrastre el objeto Speaker desde el panel Jerarquía al campo para descartar eventos etiquetados como Ninguno (Objeto).

8. En la lista desplegable Sin función, seleccione AudioSource-> Play ().



Para agregar un botón de pausa al altavoz, siga estos pasos:

1. Duplique el PlayButton presionando Ctrl + D o haciendo clic derecho en un recurso en el panel Jerarquía y seleccionando Duplicar, luego cámbiele el nombre a PauseButton.

2. Para la función de activación de eventos del objeto PauseButton, establezca el valor en AudioSource-> Pause ().



Ahora estos botones deberían funcionar, pero es difícil usarlos, ya que se superponen entre sí. Otro problema: el usuario no los ve cuando el altavoz se gira hacia un lado. Para resolver este problema, haga lo siguiente:

1. Establezca la propiedad Transform Position del PlayButton en (-6, 18, 0).

2. Para la propiedad Transform Position del PauseButton, establezca los valores (6, 18, 0).

3. En el panel Jerarquía, haga clic con el botón derecho en el objeto Altavoz y seleccione Crear vacío para crear un objeto hijo vacío. Cambie el nombre del GameObject agregado a ButtonBillboard. Para cambiar el nombre de un objeto, haga clic con el botón derecho y seleccione Cambiar nombre.

4. Arrastre ambos botones al objeto ButtonBillboard, convirtiéndolos en objetos secundarios de este objeto.

5. Con el objeto ButtonBillboard seleccionado en el Inspector, haga clic en Agregar componente -> Billboard. El componente Billboard se puede encontrar usando la barra de búsqueda. El script Billboard del Kit de herramientas de realidad mixta hace que el objeto esté constantemente frente a la cámara y a menudo se usa para elementos de interfaz de usuario.

6. Debe obtener la siguiente estructura para la cartelera:



Para que los botones de reproducción y pausa sean más fáciles de distinguir, puede reemplazar sus iconos estándar por otros. Esto se puede hacer de varias maneras, pero usaremos el más simple, dado el tamaño de nuestro proyecto.

1. Con un PlayButton seleccionado, desplácese hacia abajo en el Inspector hasta el componente Icono del botón compuesto.

2. Seleccione la casilla de verificación Anular icono.

3. Arrastre el sprite Inicio desde la carpeta Activos -> Texturas a la propiedad Anulación de icono del componente Icono de botón compuesto.

4. Repita estos pasos para el objeto PauseButton usando el sprite Pause.



Agregar sonido envolvente


Ahora tenemos un altavoz que se puede encender, apagar y mover alrededor de la sala de estar virtual. Sin embargo, no tenemos un sonido espacial que mejore el efecto de presencia en nuestra aplicación.

En Unity, el sonido espacial se implementa utilizando el complemento Spatializer. Los archivos de complemento son parte de Unity, por lo que es fácil implementar el sonido espacial.

1. Vaya a la sección Edición -> Configuración del proyecto -> Audio (Edición -> Configuración del proyecto -> Sonido).

2. Para el parámetro Plugin de Spatializer, cambie el valor de None a MS HRTF Spatializer.

Dado que el sistema de sonido envolvente de Microsoft actualmente solo admite una frecuencia de muestreo de 48,000 Hz, la frecuencia de muestreo del sistema también debe establecerse en 48,000 (si aún no lo ha hecho) para evitar que el HRTF falle.



Ahora necesita establecer la configuración para el clip de sonido.

1. En el panel Jerarquía, seleccione el objeto Altavoz.

2. Desplácese al componente Fuente de audio del panel Inspector y seleccione la casilla de verificación Espacializar.

3. Para el parámetro Spatial Blend, seleccione 3D (el valor numérico es 1).

4. Expanda el menú Configuración de sonido 3D.

5. Para establecer las configuraciones óptimas de sonido 3D para nuestra aplicación, configure el valor de Rolloff Logarítmico para el parámetro de Rolloff de Volumen, y configure el parámetro de Distancia Mínima en 3.

6. Con el altavoz seleccionado, haga clic en Agregar componente -> Emisor de audio. Esta es una clase en el Kit de herramientas de realidad mixta que utiliza el componente AudioSource conectado y el subconjunto de filtro de sonido Unity para aplicar y controlar efectos de sonido, como la absorción.



Guardar y correr


Ahora nuestro altavoz está completamente listo. Convirtámoslo en un prefabricado.

1. Arrastre el objeto Altavoz a la carpeta Activos -> Prefabricados para convertirlo en un prefabricado.

Al convertir el altavoz en un prefabricado, haremos un objeto que pueda reutilizarse. Después de eso, podremos crear cualquier número de instancias de oradores para nuestra escena u otras escenas de este proyecto.

Ahora guardemos la escena (presionando Ctrl + S) y ejecútela para ver los resultados de nuestro trabajo.

Ahora podemos hacer muchas cosas interesantes:

  • tocar y parar el sonido;
  • acerca el altavoz a ti mismo, notando que el sonido se hace más fuerte y más claro;
  • mueva el altavoz más lejos de usted, notando que el volumen del sonido se reduce.

No olvide que puede teletransportarse a varios puntos de la habitación presionando el botón "Adelante" en la palanca de mando y seleccionando el punto en el piso al que desea ir. De esta manera, puede alejarse más del orador.

El original
Autores: Eric Ahlstrom, cbarkerms, Madison Hight

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


All Articles