Звук для игр
Узнайте, как разрабатывать и включать музыку и звуки в игру DirectX, а также как обрабатывать звуковые сигналы для создания динамических и позиционных звуков.
Для программирования на звук рекомендуется использовать библиотеку XAudio2 в DirectX или API-интерфейсы среда выполнения Windows аудиографов. Здесь мы используем XAudio2. XAudio2 — это низкоуровневая аудио библиотека, которая обеспечивает обработку сигналов и микширование основы для игр, и поддерживает различные форматы.
Вы также можете реализовать простые звуки и воспроизведение музыки с помощью Microsoft Media Foundation. Microsoft Media Foundation предназначен для воспроизведения файлов мультимедиа и потоков, аудио и видео, но также может использоваться в играх, и особенно полезно для кинематографических сцен или неинтерактивных компонентов вашей игры.
Краткий обзор понятий
Ниже приведены некоторые концепции программирования аудио, которые мы используем в этом разделе.
- Сигналы — это базовая единица звукового программирования, аналогичная пикселям в графике. Процессоры цифровых сигналов (DSPs), которые обрабатывают их, похожи на шейдеры пикселей игрового звука. Они могут преобразовывать сигналы, объединять их или фильтровать их. Запрограммируя на DSPs, вы можете изменить звуковые эффекты и музыку игры с максимальной сложностью или максимальной сложностью.
- Голоса — это вложенные составные элементы двух или более сигналов. Существует 3 типа объектов голосовой связи XAudio2: исходные, вложенные и эталонные голоса. Исходные голоса работают с звуковыми данными, предоставляемыми клиентом. Исходные и вложенные голоса отправляют выходные данные в один или несколько подмиксов или эталонных голосов. Подмикс и мастеринг голоса смешивают звук со всех голосов, кормящих их, и работают над результатом. Образец голосов записывает звуковые данные на звуковое устройство.
- Сочетание — это процесс объединения нескольких дискретных голосов, таких как звуковые эффекты и фоновый звук, который воспроизводится обратно в сцене, в один поток. Подмиксирование — это процесс объединения нескольких дискретных сигналов, таких как звуки компонента шума двигателя и создание голоса.
- Форматы звука. Музыкальные и звуковые эффекты можно хранить в различных цифровых форматах для игры. Существуют несжатые форматы, такие как WAV, и сжатые форматы, такие как MP3 и OGG. Чем больше выборка сжимается , как правило, обозначается его скоростью, где ниже скорость бита, чем больше потери сжатия - тем хуже достоверности он имеет. Точность может различаться по схемам сжатия и скоростям битов, поэтому экспериментируйте с ними, чтобы найти то, что лучше всего подходит для вашей игры.
- Частота и качество выборки. Звуки можно использовать по разным ставкам, и звуки, образцы которых имеют более низкую точность. Частота выборки для качества CD составляет 44,1 КГц (44100 Гц). Если для звука не требуется высокая точность, вы можете выбрать более низкую частоту выборки. Более высокие ставки могут быть подходящими для профессиональных звуковых приложений, но вы, вероятно, не нуждаетесь в них, если ваша игра не требует профессиональной точности звука.
- Звукоизлучатели (или источники). В XAudio2 звукоизлучатели — это места, которые выдают звук, будь то простое скольжение фонового шума или рычающий рок-трек, который играл в игре jukebox. Вы указываете излучатели по координатам мира.
- Прослушиватели звука. Звуковой прослушиватель часто является проигрывателем или, возможно, сущностьЮ ИИ в более расширенной игре, которая обрабатывает звуки, полученные от прослушивателя. Вы можете подмигировать этот звук в аудиопоток для воспроизведения в проигрывателе или использовать его для выполнения определенных действий в игре, таких как пробуждение ИИ охранника, помеченного как прослушиватель.
Рекомендации по проектированию
Звук является чрезвычайно важной частью игрового дизайна и разработки. Многие игроки могут вспомнить посредственные игры, поднятые на легендарный статус только из-за запоминающегося саундтрека, или большой голосовой работы и звуком микширования, или общего звездного аудиопроизводства. Музыка и звук определяют личность игры, и устанавливают основной мотив, который определяет игру и делает его стоять отдельно от других аналогичных игр. Усилия, которые вы тратите на проектирование и разработку звукового профиля вашей игры, будет хорошо стоит.
Позиционный трехмерный звук может добавить уровень погружения за пределы, предоставляемые трехмерной графикой. Если вы разрабатываете сложную игру, которая имитирует мир, или который требует кинематографического стиля, рассмотрите возможность использования трехмерных позиционных звуковых методов, чтобы действительно привлечь проигрывателя.
Стратегия разработки звука DirectX
Концептуальные ресурсы XAudio2
XAudio2 — это библиотека аудиомиксов для DirectX, и в основном предназначена для разработки высокопроизводительных звуковых двигателей для игр. Для разработчиков игр, которые хотят добавить звуковые эффекты и фоновую музыку в свои современные игры, XAudio2 предлагает звуковой граф и смешивающий механизм с низкой задержкой и поддержкой динамических буферов, синхронного воспроизведения и неявного преобразования скорости источника.
Раздел | Описание |
---|---|
В этом разделе представлен список функций программирования аудио, поддерживаемых XAudio2. |
|
В этом разделе содержатся сведения о ключевых концепциях XAudio2, версиях XAudio2 и формате звука RIFF. |
|
В этом разделе представлен обзор распространенных концепций звука, с которыми должен быть знаком разработчик аудио. |
|
В этом разделе содержится обзор голосов XAudio2, которые используются для подмиксов, управления ими и основных звуковых данных. |
|
В этом разделе рассматриваются обратные вызовы XAudio 2, которые используются для предотвращения разрывов воспроизведения звука. |
|
В этом разделе рассматриваются графы обработки звука XAudio2, которые принимают набор аудиопотоков от клиента в качестве входных данных, обрабатывают их и предоставляют конечный результат звуковому устройству. |
|
В этой статье рассматриваются звуковые эффекты XAudio2, которые принимают входящие звуковые данные и выполняют некоторые операции с данными (например, эффект ревербации) перед передачей. |
|
В этом разделе рассматриваются потоковая передача звука с помощью XAudio2. |
|
В этом разделе рассматриваются API X3DAudio, используемые в сочетании с XAudio2, чтобы создать иллюзию звука, исходящего из точки в трехмерном пространстве. |
|
Этот раздел содержит полную ссылку на API XAudio2. |
Ресурсы XAudio2 "how to"
Раздел | Описание |
---|---|
Узнайте, как инициализировать XAudio2 для воспроизведения звука, создав экземпляр обработчика XAudio2 и создав образец голоса. |
|
Практическое руководство. Загрузка файлов аудиоданных в XAudio2 |
Узнайте, как заполнить структуры, необходимые для воспроизведения звуковых данных в XAudio2. |
Практическое руководство. Воспроизведение звука с помощью XAudio2 |
Узнайте, как воспроизводить ранее загруженные звуковые данные в XAudio2. |
Узнайте, как задать группы голосов для отправки выходных данных в один и тот же вложенный голос. |
|
Практическое руководство. Использование обратных вызовов исходной голосовой связи |
Узнайте, как использовать обратные вызовы голосовых вызовов XAudio2. |
Практическое руководство. Использование обратных вызовов подсистемы |
Узнайте, как использовать обратные вызовы ядра XAudio2. |
Практическое руководство. Создание базового графа обработки звука |
Узнайте, как создать граф обработки звука, созданный на основе одного эталонного голоса и одного исходного голоса. |
Практическое руководство. Динамическое добавление или удаление голосов из звукового графа |
Сведения о добавлении или удалении голосов подмиксов из графа, созданного в разделе "Практическое руководство. Создание базового графа обработки звука". |
Узнайте, как применить цепочку эффектов к голосу, чтобы разрешить пользовательскую обработку звуковых данных для этого голоса. |
|
Узнайте, как реализовать IXAPO для создания объекта обработки звука XAudio2 (XAPO). |
|
Практическое руководство. Добавление поддержки параметров во время выполнения в XAPO |
Узнайте, как добавить поддержку параметров во время выполнения в XAPO, реализуя интерфейс IXAPOParameters . |
Узнайте, как использовать эффект, реализованный как XAPO в цепочке эффектов XAudio2. |
|
Узнайте, как использовать один из эффектов, включенных в XAPOFX в цепочке эффектов XAudio2. |
|
Узнайте, как передавать звуковые данные в XAudio2 путем создания отдельного потока для чтения звукового буфера и использования обратных вызовов для управления этим потоком. |
|
Узнайте, как использовать X3DAudio для предоставления значений громкости и шага для голосов XAudio2, а также параметров встроенного эффекта ревербации XAudio2. |
|
Практическое руководство. Группирование звуковых методов в виде набора операций |
Узнайте, как использовать наборы операций XAudio2 для одновременного принятия в силу группы вызовов методов. |
Узнайте, как задать уровень ведения журнала отладки для XAudio2. |
Ресурсы Media Foundation
Media Foundation (MF) — это платформа мультимедиа для потокового воспроизведения звука и видео. API Media Foundation можно использовать для потоковой передачи аудио и видео, закодированных и сжатых с помощью различных алгоритмов. Он не предназначен для сценариев игрового процесса в режиме реального времени; Вместо этого он предоставляет мощные инструменты и широкую поддержку кодека для более линейного захвата и представления компонентов аудио и видео.
Раздел | Описание |
---|---|
В этом разделе содержатся общие сведения об API Media Foundation, а также средства, доступные для их поддержки. |
|
В этом разделе приведены некоторые понятия, которые необходимо понять перед написанием приложения Media Foundation. |
|
В этом разделе описывается общая конструкция Microsoft Media Foundation, а также примитивы мультимедиа и конвейер обработки, который он использует. |
|
В этом разделе описывается, как использовать Microsoft Media Foundation для выполнения записи звука и видео. |
|
В этом разделе описывается реализация воспроизведения звука и видео в приложении. |
|
В этом разделе перечислены форматы мультимедиа, поддерживаемые Microsoft Media Foundation в собственном коде. (Сторонние стороны могут поддерживать дополнительные форматы, записывая пользовательские подключаемые модули.) |
|
В этом разделе описывается, как использовать Microsoft Media Foundation для кодирования аудио и видео и создания файлов мультимедиа. |
|
В этом разделе описывается, как использовать функции аудио и видеокодеков Windows Media для создания и использования сжатых потоков данных. |
|
В этом разделе содержатся справочные сведения об API Media Foundation. |
|
В этом разделе перечислены примеры приложений, демонстрирующих использование Media Foundation. |
среда выполнения Windows типы носителей XAML
Если вы используете взаимодействие DirectX-XAML, вы можете включить среда выполнения Windows API мультимедиа XAML в приложения UWP с помощью DirectX с C++ для более простых сценариев игры.
Раздел | Описание |
---|---|
Элемент XAML, представляющий объект, содержащий звук, видео или оба элемента. |
|
Узнайте, как включить базовый звук и видео в приложение универсальная платформа Windows (UWP). |
|
Узнайте, как воспроизвести локально сохраненный файл мультимедиа в приложении UWP. |
|
Узнайте, как передавать файл мультимедиа с низкой задержкой в приложении UWP. |
|
Узнайте, как использовать контракт Play To для потоковой передачи мультимедиа из приложения UWP на другое устройство. |