Compartir a través de


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

Introducción a XAudio2

En el tema se proporciona una lista de las características de programación de audio compatibles con XAudio2.

Introducción a XAudio2

En este tema se proporciona información sobre los conceptos clave de XAudio2, las versiones XAudio2 y el formato de audio RIFF.

Conceptos comunes de programación de audio

En este tema se proporciona información general sobre los conceptos comunes de audio con los que un desarrollador de audio debe estar familiarizado.

Voces de XAudio2

Este tema contiene información general sobre las voces XAudio2, que se usan para submezclar, operar en datos de audio maestros y .

Devoluciones de llamada de XAudio2

En este tema se tratan las devoluciones de llamada XAudio 2, que se usan para evitar interrupciones en la reproducción de audio.

Gráficos de audio XAudio2

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.

Efectos de audio XAudio2

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.

Streaming de datos de audio con XAudio2

En este tema se trata el streaming de audio con XAudio2.

X3DAudio

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.

Referencia de programación de XAudio2

Esta sección contiene la referencia completa de las API XAudio2.

Recursos de "procedimientos" de XAudio2

Tema Descripción

Cómo: Inicializar XAudio2

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.

Cómo: Cargar archivos de datos de audio en XAudio2

Aprenda a rellenar las estructuras necesarias para reproducir datos de audio en XAudio2.

Cómo: Reproducir un sonido con XAudio2

Aprenda a reproducir datos de audio cargados previamente en XAudio2.

Cómo: Usar voces de submezcla

Aprenda a establecer grupos de voces para enviar su salida a la misma voz de submezcla.

Cómo: Usar devoluciones de llamada de voz de origen

Aprenda a usar devoluciones de llamada de voz de origen XAudio2.

Cómo: Usar devoluciones de llamada del motor

Aprenda a usar devoluciones de llamada del motor XAudio2.

Cómo: Crear un grafo básico de procesamiento de audio

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.

Cómo: Crear una cadena de efectos

Aprenda a aplicar una cadena de efectos a una voz para permitir el procesamiento personalizado de los datos de audio para esa voz.

Cómo: Crear un XAPO

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.

Cómo: Usar un XAPO en XAudio2

Aprenda a usar un efecto implementado como XAPO en una cadena de efectos XAudio2.

Cómo: Usar XAPOFX en XAudio2

Aprenda a usar uno de los efectos incluidos en XAPOFX en una cadena de efectos XAudio2.

Cómo: Transmitir un sonido desde el disco

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.

Cómo: Integrar X3DAudio con XAudio2

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.

Depuración de problemas de audio en XAudio2

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

Acerca de Media Foundation

Esta sección contiene información general sobre las API de Media Foundation y las herramientas disponibles para admitirlas.

Media Foundation: Conceptos esenciales

En este tema se presentan algunos conceptos que deberá comprender antes de escribir una aplicación de Media Foundation.

Arquitectura 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.

Captura de audio y vídeo

En este tema se describe cómo usar Microsoft Media Foundation para realizar la captura de audio y vídeo.

Reproducción 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.

Formatos multimedia admitidos en Media Foundation

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).

Codificación y creación de archivos

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.

Códecs de Windows Media

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.

Referencia de programación de Media Foundation

Esta sección contiene información de referencia para las API de Media Foundation.

Ejemplos del SDK 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

Windows.UI.Xaml.Controls.MediaElement

Elemento XAML que representa un objeto que contiene audio, vídeo o ambos.

Audio, vídeo y cámara

Aprende a incorporar audio y vídeo básico en tu aplicación de Plataforma universal de Windows (UWP).

MediaElement

Aprende a reproducir un archivo multimedia almacenado localmente en tu aplicación para UWP.

MediaElement

Aprende a transmitir un archivo multimedia con baja latencia en tu aplicación para UWP.

Conversión multimedia

Aprende a usar el contrato Reproducir para transmitir contenido multimedia desde tu aplicación para UWP a otro dispositivo.

Referencia