netlib.narod.ru | < Назад | Оглавление | Далее > |
В этой главе подробно рассматривается XACT. XACT — это название утилиты создания кроссплатформенного звукового сопровождения от Microsoft, позволяющей вам создавать звуковые проекты для платформ Windows и Xbox 360. В действительности, это единственный способ воспроизведения звуков в XNA. Это не имеет большого значения для платформы Windows, так как при желании вы можете подключить другие звуковые движки (DirectSound из DirectX, OpenAL, FMod и т.д.) и воспроизводить звуки или музыку с их помощью. Но на Xbox 360 все не так просто, ведь здесь вы можете использовать только XNA Framework и абсолютно невозможно воспользоваться какими-либо другими библиотеками для воспроизведения звука. Причина, по которой вы не можете использовать ничего, кроме XACT, кроется в том, что вы не можете использовать в XNA никакого неуправляемого кода, а для воспроизведения звука или люго другого низкоуровневого использования аппаратуры на Xbox 360 вам не обойтись без неуправляемого кода для доступа к оборудованию. По этой же причине вы не можете использовать какие-либо другие графические движки или средства ввода, кроме предоставляемых вам XNA.
Но с XACT не все плохо; причина, по которой он был реализован в XNA, заключается в необходимости обеспечить возможность использования одного и того же звукового содержимого и кода воспроизведения звука как на платформе Windows, так и на Xbox 360. Например, Xbox 360 поддерживает только сжатие XMA; PC использует другие форматы сжатия для звуков и музыки, такие как MP3, OGG, ADPCM и множество других нестандартных форматов сжатия, но в XACT поддерживается только ADPCM. Приложения для передачи голоса по IP используют собственные защищенные форматы сжатия звука, поскольку человеческий голос может быть сжат лучше, чем, например, музыка. Звуковые эффекты обычно короткие и небольшие, а разработчики игр хотят обеспечить максимально высокое качество звуковых эффектов и поэтому звуки часто хранятся несжатыми или используют сжатие без потери качества. Музыка, с другой стороны, требует много места для хранения. Если ваша игра на DVD, или у вас на жестком диске полно места, которое можно потратить впустую, вы можете просто хранить музыку в виде несжатых файлов WAV или непосредственно на CD или DVD. Для игр XNA такой вариант не подходит, поскольку на Xbox 360 у вас нет доступа к DVD, а потратить впустую несколько сотен мегабайт на жестком диске только для музыки к игре — это не самая лучшая идея.
В прошлом для приложений DirectX или DirectX для управляемого кода вы, скорее всего, использовали бы для воспроизведения звуков DirectSound или применяли бы другие библиотеки, такие как OpenAL, либо коммерческие звуковые движки, такие как FMod. Но даже с этими библиотеками вам все еще приходилось писать много собственного кода; вам надо было решить, какой звуковой формат вам лучше подходит и самому беспокоиться о сжатии звука. Кроме того, вы самостоятельно должны были реализовать способ воспроизведения музыки. Например, DirectSound в действительности не приспособлен для музыки — он поддерживает только файлы WAV — а если вы хотите воспроизводить музыкальные файлы MP3 или OGG, вам придется использовать другие библиотеки, такие как DirectShow, Windows MCI, ActixeX кодеков звукового воспроизведения либо другие свободно распространяемые или коммерческие библиотеки и звуковые движки. Верно, звук требует много работы. Код непосредственно для воспроизведения звуков или музыки в большинстве игр очень прост. Он становится более сложным, если вы хотите использовать сложные расчеты трехмерного звука и если вы желаете поддерживать звуковое окружение, но все равно эти вещи легче запрограммировать, чем разработать собственный трехмерный движок.
netlib.narod.ru | < Назад | Оглавление | Далее > |