Audio para juegos
Aprende a desarrollar e incorporar música y sonidos en tu juego DirectX, y cómo procesar las señales de audio para crear sonidos dinámicos y posicionales.
Para la programación de audio, se recomienda usar la biblioteca XAudio2 en DirectX o las API de gráficos de audio de Windows Runtime. Usamos XAudio2 aquí. XAudio2 es una biblioteca de audio de bajo nivel que proporciona una base de procesamiento y mezcla de señales para juegos, y admite una variedad de formatos.
También puede implementar sonidos simples y reproducción de música con Microsoft Media Foundation. Microsoft Media Foundation está diseñado para la reproducción de archivos multimedia y secuencias, tanto audio como vídeo, pero también se puede usar en juegos, y es especialmente útil para escenas cinematográficas o componentes no interactivos del juego.
Conceptos de un vistazo
Estos son algunos conceptos de programación de audio que usamos en esta sección.
- Las señales son la unidad básica de programación de sonido, análoga a píxeles en gráficos. Los procesadores de señal digital (DSP) que los procesan son como los sombreadores de píxeles del audio del juego. Pueden transformar señales, combinarlas o filtrarlas. Al programar con los CSP, puedes modificar los efectos de sonido y la música de tu juego con tan poca o tanta complejidad como necesites.
- Las voces son los compuestos submezclados de dos o más señales. Hay 3 tipos de objetos de voz XAudio2: voces de origen, submezcla y maestro. Las voces de origen funcionan en los datos de audio proporcionados por el cliente. Las voces de origen y submezcla envían su salida a una o varias voces de submezcla o patrón. Las voces de submezcla y maestro mezclan el audio de todas las voces que los alimentan y operan en el resultado. La creación de voces de maestro escribe datos de audio en un dispositivo de audio.
- La mezcla es el proceso de combinar varias voces discretas, como los efectos de sonido y el audio de fondo que se reproducen en una escena, en una sola secuencia. La submezcla es el proceso de combinar varias señales discretas, como los sonidos componentes de un ruido del motor y la creación de una voz.
- Formatos de audio. Los efectos de música y sonido se pueden almacenar en una variedad de formatos digitales para tu juego. Hay formatos sin comprimir, como WAV y formatos comprimidos como MP3 y OGG. Cuanto más se comprima una muestra ( normalmente designada por su velocidad de bits, donde menor es la velocidad de bits, cuanto más pierde la compresión- la fidelidad peor que tiene. La fidelidad puede variar entre esquemas de compresión y velocidades de bits, así que experimente con ellos para encontrar lo que funciona mejor para su juego.
- Frecuencia de muestreo y calidad. Los sonidos se pueden muestrear a diferentes velocidades, y los sonidos muestreados a una velocidad inferior tienen una fidelidad mucho más pobre. La frecuencia de muestreo para la calidad de CD es de 44,1 Khz (44100 Hz). Si no necesita una alta fidelidad para un sonido, puede elegir una frecuencia de muestreo más baja. Las tarifas más altas pueden ser adecuadas para aplicaciones de audio profesionales, pero probablemente no las necesites a menos que tu juego exija sonido de fidelidad profesional.
- Emisores de sonido (o orígenes). En XAudio2, los emisores de sonido son ubicaciones que emiten un sonido, ya sea un simple blip de un ruido de fondo o una pista de roca rasgada reproducida por un jukebox en el juego. Los emisores se especifican por coordenadas del mundo.
- Escuchas de sonido. Un agente de escucha de sonido suele ser el jugador, o quizás una entidad de inteligencia artificial en un juego más avanzado, que procesa los sonidos recibidos de un agente de escucha. Puedes submezclar ese sonido en la secuencia de audio para la reproducción en el reproductor, o puedes usarlo para tomar una acción específica en el juego, como despertar una protección de IA marcada como un agente de escucha.
Consideraciones de diseño
El audio es una parte enormemente importante del diseño y desarrollo del juego. Muchos jugadores pueden recordar un juego mediocre elevado a estado legendario simplemente debido a una banda sonora memorable, o un gran trabajo de voz y mezcla de sonido, o producción general de audio estelar. La música y el sonido definen la personalidad de un juego y establecen el motivo principal que define el juego y lo diferencian de otros juegos similares. El esfuerzo que dedicas a diseñar y desarrollar el perfil de audio de tu juego merecerá la pena.
El audio 3D posicional puede agregar un nivel de inmersión más allá del proporcionado por gráficos 3D. Si estás desarrollando un juego complejo que simula un mundo o que exige un estilo cinemático, considera la posibilidad de usar técnicas de audio posicional 3D para dibujar realmente al jugador.
Hoja de ruta de desarrollo de audio de DirectX
Recursos conceptuales de XAudio2
XAudio2 es la biblioteca de mezcla de audio para DirectX y está pensada principalmente para desarrollar motores de audio de alto rendimiento para juegos. Para los desarrolladores de juegos que quieren agregar efectos de sonido y música de fondo a sus juegos modernos, XAudio2 ofrece un gráfico de audio y un motor de mezcla con baja latencia y compatibilidad con búferes dinámicos, reproducción sincrónica precisa de muestras y conversión implícita de velocidad de origen.
Tema | Descripción |
---|---|
En el tema se proporciona una lista de las características de programación de audio compatibles con XAudio2. |
|
En este tema se proporciona información sobre los conceptos clave de XAudio2, las versiones XAudio2 y el formato de audio RIFF. |
|
En este tema se proporciona información general sobre los conceptos comunes de audio con los que un desarrollador de audio debe estar familiarizado. |
|
Este tema contiene información general sobre las voces XAudio2, que se usan para submezclar, operar en datos de audio maestros y . |
|
En este tema se tratan las devoluciones de llamada XAudio 2, que se usan para evitar interrupciones en la reproducción de audio. |
|
En este tema se tratan los gráficos de procesamiento de audio XAudio2, que toman un conjunto de secuencias de audio del cliente como entrada, los procesan y entregan el resultado final a un dispositivo de audio. |
|
En el tema se tratan los efectos de audio XAudio2, que toman datos de audio entrantes y realizan alguna operación en los datos (como un efecto de reverberación) antes de pasarlos. |
|
En este tema se trata el streaming de audio con XAudio2. |
|
En este tema se trata X3DAudio, una API que se usa junto con XAudio2 para crear la ilusión de un sonido procedente de un punto en el espacio 3D. |
|
Esta sección contiene la referencia completa de las API XAudio2. |
Recursos de "procedimientos" de XAudio2
Tema | Descripción |
---|---|
Aprenda a inicializar XAudio2 para la reproducción de audio mediante la creación de una instancia del motor XAudio2 y la creación de una voz de maestro. |
|
Aprenda a rellenar las estructuras necesarias para reproducir datos de audio en XAudio2. |
|
Aprenda a reproducir datos de audio cargados previamente en XAudio2. |
|
Aprenda a establecer grupos de voces para enviar su salida a la misma voz de submezcla. |
|
Aprenda a usar devoluciones de llamada de voz de origen XAudio2. |
|
Aprenda a usar devoluciones de llamada del motor XAudio2. |
|
Aprenda a crear un gráfico de procesamiento de audio, construido a partir de una sola voz de maestro y una sola voz de origen. |
|
Cómo: Agregar o quitar voces dinámicamente de un grafo de audio |
Obtenga información sobre cómo agregar o quitar voces de submezcla de un grafo que se ha creado siguiendo los pasos descritos en How to: Build a Basic Audio Processing Graph. |
Aprenda a aplicar una cadena de efectos a una voz para permitir el procesamiento personalizado de los datos de audio para esa voz. |
|
Aprenda a implementar IXAPO para crear un objeto de procesamiento de audio XAudio2 (XAPO). |
|
Cómo: Agregar compatibilidad con parámetros en tiempo de ejecución a un XAPO |
Obtenga información sobre cómo agregar compatibilidad con parámetros en tiempo de ejecución a un XAPO mediante la implementación de la interfaz IXAPOParameters. |
Aprenda a usar un efecto implementado como XAPO en una cadena de efectos XAudio2. |
|
Aprenda a usar uno de los efectos incluidos en XAPOFX en una cadena de efectos XAudio2. |
|
Obtenga información sobre cómo transmitir datos de audio en XAudio2 mediante la creación de un subproceso independiente para leer un búfer de audio y usar devoluciones de llamada para controlar ese subproceso. |
|
Obtenga información sobre cómo usar X3DAudio para proporcionar los valores de volumen y tono para las voces XAudio2, así como los parámetros para el efecto de reverberación integrado XAudio2. |
|
Cómo: Agrupar métodos de audio como un conjunto de operaciones |
Aprenda a usar conjuntos de operaciones XAudio2 para que un grupo de llamadas de método surtan efecto al mismo tiempo. |
Aprenda a establecer el nivel de registro de depuración para XAudio2. |
Recursos de Media Foundation
Media Foundation (MF) es una plataforma multimedia para la reproducción de audio y vídeo en streaming. Puede usar las API de Media Foundation para transmitir audio y vídeo codificado y comprimido con una variedad de algoritmos. No está diseñado para escenarios de juego en tiempo real; en su lugar, proporciona herramientas eficaces y compatibilidad amplia con códecs para una captura y presentación más lineales de componentes de audio y vídeo.
Tema | Descripción |
---|---|
Esta sección contiene información general sobre las API de Media Foundation y las herramientas disponibles para admitirlas. |
|
En este tema se presentan algunos conceptos que deberá comprender antes de escribir una aplicación de Media Foundation. |
|
En esta sección se describe el diseño general de Microsoft Media Foundation, así como los primitivos multimedia y la canalización de procesamiento que usa. |
|
En este tema se describe cómo usar Microsoft Media Foundation para realizar la captura de audio y vídeo. |
|
En este tema se describe cómo implementar la reproducción de audio y vídeo en la aplicación. |
|
En este tema se enumeran los formatos multimedia que Microsoft Media Foundation admite de forma nativa. (Los terceros pueden admitir formatos adicionales escribiendo complementos personalizados). |
|
En este tema se describe cómo usar Microsoft Media Foundation para realizar la codificación de audio y vídeo y crear archivos multimedia. |
|
En este tema se describe cómo usar las características de los códecs de audio y vídeo de Windows Media para generar y consumir secuencias de datos comprimidas. |
|
Esta sección contiene información de referencia para las API de Media Foundation. |
|
En esta sección se enumeran las aplicaciones de ejemplo que muestran cómo usar Media Foundation. |
Tipos de medios XAML de Windows Runtime
Si usas la interoperabilidad directX-XAML, puedes incorporar las API multimedia XAML de Windows Runtime en tus aplicaciones para UWP mediante DirectX con C++ para escenarios de juego más sencillos.
Tema | Descripción |
---|---|
Elemento XAML que representa un objeto que contiene audio, vídeo o ambos. |
|
Aprende a incorporar audio y vídeo básico en tu aplicación de Plataforma universal de Windows (UWP). |
|
Aprende a reproducir un archivo multimedia almacenado localmente en tu aplicación para UWP. |
|
Aprende a transmitir un archivo multimedia con baja latencia en tu aplicación para UWP. |
|
Aprende a usar el contrato Reproducir para transmitir contenido multimedia desde tu aplicación para UWP a otro dispositivo. |