netlib.narod.ru | < Назад | Оглавление | Далее > |
Не так давно XACT предназначалась только для разработчиков под Xbox 360 и получить ее было не так просто. Вы должны были быть сертифицированным разработчиком для Xbox 360 и иметь доступ к XDK (Xbox Development Kit). Не слишком простая штука, даже для профессиональных разработчиков игр, работающих в индустрии много лет, если вы спросите меня.
Но все изменилось. Год назад Microsoft решила включить XACT в DirectX SDK и хотя немногие использовали ее в предназначенных только для PC играх, сейчас XACT становится важной для разработки игр XNA. Это единственный способ получить любые звуковые файлы для XNA на Xbox 360. Вам не надо устанавливать DirectX SDK чтобы получить доступ к утилите XACT; она также включена в комплект установки XNA Game Studio Express. Вы найдете ее в Start (Пуск) | All Programs (Все программы) | Microsoft XNA Game Studio Express | Tools | XACT Auditioning Utility. Если вы используете другую версию XACT, пожалуйста, убедитесь, что она поддерживается XNA; например, в версию August 2006 DirectX SDK входит XACT той же версии 2.0, но файлы содержимого сохраняются в формате версии 40. Версия October 2006 DirectX SDK и XNA Framework используют файлы содержимого версии 41, которая не совместима с предыдущими версиями. Если вы загрузите старые версии звуковых проектов XACT, то можете встретиться с очень странными ошибками, такими как отсутствие файлов или исключение InvalidOperationException. Будущие версии также могут вести себя по другому. Чтобы убедиться, что ваш проект XACT поддерживается, проверьте версию содержимого в файле .xap (который является простым текстовым файлом; вы можете открыть его в любом редакторе).
Файл .xap структурирован простым образом и очень похож на xml-файлы. Номер версии может вас немного запутать, но вам надо только проверить, что у вас версия 13 (которая соответствует версии содержимого 41 в утилите XACT и может быть проверена в диалоговом окне About, как показано на рис. 9.4). Старые версии, такие как 11 и 12 (из старых DirectX SDK) не поддерживаются. Эта проблема может также произойти, если вы открываете ранний проект XNA оставшийся с бета-времен XNA (с августа по октябрь 2006 года), в которых применялась старая утилита XACT.
Рис. 9.4 |
Signature = XACT2; Version = 13; Options { } Global Settings { [...]
Если вы хотите сделать простое изменение громкости какого-либо звука из вашего проекта XACT внутри Visual Studio вам достаточно открыть файл .xap в текстовом редакторе Visual Studio и самому отредактировать значение вместо того, чтобы сворачивать Visual Studio, искать файл .xap, открывать его, искать правильное местоположение, где хранится громкость и изменять значение с помощью утилиты XACT.
Лучше всего, если у вас, разработчика игры, есть кто-то занимающийся для вас звуковыми эффектами и музыкой. Попробуйте объяснить работу с утилитой XACT этому человеку, и вам вообще больше не придется беспокоиться о звуках, громкости и форматах. Это дело специалиста по звуку. К сожалению, в большинстве небольших команд нет отдельного человека для звука, а если вы сами программируете, создаете свою графику и другие файлы игрового содержимого, то должны будете также создать и свои звуковые эффекты. Попробуйте сначала использовать существующие звуковые эффекты или свободно распространяемые звуки, а позже заменить их. Для музыки часто имеет смысл выбрать подходящую музыку, может даже из вашей библиотеки MP3, но только для тестирования и показов вашей игры. Конечно, в финальной версии вам необходимо вставить свою собственную музыку; вы не можете так взять чью-нибудь музыку и поместить ее в свою игру. Некоторые музыкальные файлы можно свободно использовать, но большинство музыки, которую вы слышите каждый день, нельзя использовать бесплатно. Получить файлы звуковых эффектов несколько проще. Для некоторых простых звуковых эффектов вам разрешается использовать файлы звуковых эффектов из примеров игр из этой книги. Я также предлагаю поискать свободно распространяемые звуковые эффекты на сайтах в Интернете, если у вас нет никаких собственных файлов звуковых эффектов и вы не знаете, кто мог бы помочь вам.
Чтобы вам было интереснее, здесь мы создадим звуковой проект для игры, которая будет создана в конце части III этой книги: XNA Shhoter, являющейся простой игрой в стиле «убей их всех» с крутой трехмерной графикой, звуковыми эффектами и поддержкой клавиатуры, мыши и игрового пульта Xbox 360 (что мы подробнее обсудим в следующей главе).
Открыв утилиту XACT, вы увидите новый пустой проект (рис. 9.5). Он пока еще не содержит никаких звуковых файлов, волновых или звуковых банков, но в каждом новом проекте для вас сразу создаются несколько переменных и параметров:
Дерево проекта, всегда содержащее одни и те же корневые элементы. Вы не можете менять его.
Две предлагаемые по умолчанию категории: Default и Music, которые вы можете использовать, чтобы помечать ваши звуковые файлы как звуковые эффекты или музыку, делая поведение ваших звуковых файлов различным.
Одна глобальная переменная, SpeedOfSound, которая всегда равна 343.5, и четыре переменных для экземпляров реплик: Distance, DopplerShift, NumberOfCue и OrientationAngle. Все эти переменные важны только для трехмерных звуков, которые, к сожалению, пока невозможны в XNA. Подробнее этот вопрос мы обсудим когда будем писать код для воспроизведения звуковых эффектов.
Глобальные предустановки пути эффекта, в которых ничего не задано.
Все прочие корневые элементы пусты. Вы можете сами создавать дочерние элементы для каждого из них, щелкнув по кнопке на панели инструментов или щелкнув правой кнопкой мыши по элементу и выбрав New. Например, New Wave Bank создает новый волновой банк.
Рис. 9.5 |
Чтобы поместить любые файлы WAV в ваш новый проект XACT, вам надо сначала создать волновой банк, который хранит в себе все волновые файлы, загружаемые и используемые затем вашей игрой. Это требует больше работы, чем простая загрузка файла WAV самостоятельно, но идеей, лежащей в основе XACT, было предоставление создателю звукового оформления большей гибкости в самостоятельной установке всевозможных звуковых параметров, вместо того, чтобы ворчать на программиста, каждый раз, когда ему захочется подрегулировать какой-нибудь звуковой эффект. Это не слишком поможет вам, когда вы сами должны и работать с XACT и программировать, но XACT придаст вашему проекту большую организованность в части звуковых файлов, и вы всегда будете знать, где можно изменить любые звуковые параметры без необходимости лезть внутрь вашего игрового кода. Недостаток использования XACT в том, что вы больше не сможете динамически загружать звуковые файлы; все файлы содержимого (подобно скомпилированным моделям) создаются и загружаются, когда вы запускаете вашу игру, и, пока игра запущена, к ним ничего не может быть добавлено. Подобная непреклонность сначала очень огорчала меня, поскольку я всегда добавлял ресурсы динамически, пока писал и отлаживал мои тестовые модули, но после того, как я начал работать с этим, все стало прекрасно. Теперь я создаю все звуковые файлы и проект XACT на ранних стадиях проекта и в тестовых модулях использую только существующие звуки. Позднее звуковой проект может время от времени меняться.
Чтобы создать волновой банк для вашего проекта вы можете либо щелкнуть правой кнопкой мыши по узлу Wave Bank и выбрать из меню New Wave Bank, либо воспользоваться значком создания волнового банка на панели инструментов (восьмой элемент, оранжево-белый прямоугольник с волновым эффектом; см. рис. 9.5). Волновой банк это всего лишь хранилище для всех звуковых файлов, которые вы хотите использовать. У вас даже может быть несколько различных волновых банков; например, если в вашей игре несколько уровней, и вы хотите загружать только волновые файлы текущего уровня, вы должны разделить волновые файлы и таким образом оптимизировать вашу игру. Все проекты из этой книги и вообще все проекты, которые я когда-либо делал, содержат только один волновой банк, и я думаю, что за исключением разделения музыкальных и звуковых файлов для поддержки потокового воспроизведения музыки, наличие нескольких волновых банков не важно, и вам тоже, скорее всего, не понадобится.
После создания волнового банка вы можете перетащить в него файлы WAV, или, как альтернативный способ, использовать команду Insert Wave Files из контекстного меню. Рис. 9.6. показывает все звуковые файлы, которые вы собираетесь использовать для игры XNA Shooter, импортированные в ваш только что созданный проект XACT.
Рис. 9.6 |
Как видите, все звуковые файлы пока остаются неиспользуемыми, что показывается использованием красного курсива для отображения их данных. Как только вы добавите эти волновые файлы в звуковой банк, они станут зелеными. Но перед тем как делать это, вы должны убедиться, что для всех файлов заданы правильные параметры. По умолчанию никакое сжатие не выбрано и большинство звуковых файлов достаточно малы; исключение составляет файл музыки, все остальные звуковые эффекты занимают менее 1 Мбайт. Файл музыки, отхвативший огромные 36 Мбайт дискового пространства, имеет длительность три с половиной минуты и хранится в обсуждавшемся ранее формате (16 бит, 44 кГц, стерео, PCM).
Если вы хотите сжать звуковой файл с музыкой, щелкните по нему и выберите желаемые предустановки сжатия в панели свойств волнового файла. Сейчас вы видите none, но если вы щелкнете по выпадающему списку, вам не будет предложено никаких иных вариантов. Сначала вы должны создать предустановки сжатия (compression preset), и лишь затем сможете использовать их для любых волновых файлов как пожелаете (или просто назначить их всему волновому банку в целом). Подобным образом XACT работает и с другими предустановками. Например, если вы захотите создать собственную переменную для звукового эффекта, вам надо будет сначала создать ее в разделе переменных, и лишь затем вы сможете выбрать и использовать ее в звуковом банке.
Чтобы создать новые предустановки сжатия щелкните по узлу Compression Presets и выберите New Compression Preset (рис. 9.7). Теперь в поле Name введите имя для вашего сжатия; в данном случае мы хотим создать схему сжатия музыки. Поле Notes предназначено только для вас и не используется нигде вне утилиты XACT. Многие другие панели также имеют поля для примечаний и необязательные параметры, которые вам не нужны. Вы, вероятно, найдете XACT очень запутывающим, когда начнете использовать его. Я тоже сначала не любил его, но через некоторое время вы привыкнете, и вы должны помнить, что это единственный способ получить какие-либо звуковые эффекты на Xbox 360 с XNA. Если вы создаете игры только для Windows, можно по-прежнему использовать DirectSound или другие звуковые движки, которые могут быть проще в использовании или иметь другие преимущества. И, наконец, установите сжатие для Windows (доступно только ADPCM) со 128 выборками на блок (значение по умолчанию). Большие значения сделают файл меньше, но вы потеряете в качестве. Тридцать две выборки на блок — это наивысшее качество ADPCM, но файл станет примерно на 30% больше.
Рис. 9.7 |
Для Xbox 360 вы можете выбрать только XMA, но сжатие здесь гораздо лучше. Вы можете задаться вопросом, почему здесь так много вариантов, когда вы в любом случае можете выбрать только один формат сжатия. Это XACT, и все мы можем только надеяться, что в будущем получим больше форматов сжатия. XMA замечательно подходит для Xbox 360; иногда он производит файлы, размер которых кажется немного великоват, но они хорошо звучат и замечательно работают. ADPCM для платформы Windows практически непригоден. Звук хуже чем у файлов MP3, а сами файлы в 4 – 5 раз больше. Было бы хорошо добавить здесь поддержку WMA или MP3.
К сожалению, XACT не показывает сразу итоговый размер файла для XMA. Вы должны сперва скомпилировать проект, и только тогда увидите насколько сжат каждый волновой файл в формате XMA для Xbox 360. Для компиляции проекта можно щелкнуть по последней кнопке на панели инструментов или просто нажать F7. По умолчанию проект компилируется для платформы Windows, и вы по-прежнему не увидите результатов сжатия XMA. Чтобы наконец получить результат, переключите в меню View выходной формат на Xbox 360, скомпилируйте проект XACT, и ваш волновой банк будет показывать размеры файлов также и для Xbox 360 (коэффициент сжатия для PC показывается всегда и всегда один и тот же; 27% для параметров ADPCM по умолчанию).
Приведенная ниже таблица показывает процент сжатия для файла XnaShooterGameMusic.wav (размер несжатого файла 36 Мбайт).
Сжатие | Размер файла | Процент сжатия |
Несжатый | 36 Мбайт | 100% |
MP3, 192 кбит | 4.8 Мбайт | 13% |
MP3, 128 кбит | 3.1 Мбайт | 8.5% |
AccPlus, 48 кбит, подобно MP3, 192 кбит | 1.2 Мбайт | 3% |
AccPlus, 24 кбит, подобно MP3, 96 кбит | 0.6 Мбайт | 1.6% |
OGG, 160 кбит | 3.8 Мбайт | 11% |
XACT ADPCM 32 выборки на блок | 12.5 Мбайт | 34% |
XACT ADPCM 128 выборок на блок (по умолчанию) | 9.9 Мбайт | 27% |
XACT ADPCM 512 выборок на блок | 9.3 Мбайт | 26% |
XACT XMA 100% качество | 14.3 Мбайт | 40% |
XACT XMA 90% качество | 8.9 Мбайт | 25% |
XACT XMA 75% качество | 5.5 Мбайт | 15% |
XACT XMA 60% качество (по умолчанию) | 4.7 Мбайт | 13% |
XACT XMA 30% качество | 3.5 Мбайт | 10% |
XACT XMA 10% качество | 2.9 Мбайт | 8% |
По размеру файлы XMA с низким качеством очень похожи на MP3, но качество их гораздо хуже. Я не рекомендую использовать файлы XMA с очень низкими параметрами сжатия. Используйте 50% или выше; размеры файла будут почти такими же при 60% (значение по умолчанию) и 75%, моем любимом варианте, поскольку он обеспечивает очень хорошее качество и файл остается достаточно небольшим (примерно на 15% больше, чем MP3, 192 кбит, с похожим качеством звука). Если в вашей игре нет музыки, или вы используете только одну музыкальную дорожку, все это не имеет большого значения для вас, но когда в вашей игре 10 музыкальных дорожек или еще больше, вы должны дважды подумать о параметрах сжатия и исследовать все возможности.
После установки нового формата сжатия для файла музыки вы должны получить файл размером около 5 – 6 Мбайт в каталоге Xbox и 10 Мбайт в каталоге Win (рис. 9.8). Для проекта Rocket Commander XNA размеры этих файлов почти в два раза больше, поскольку там используется два файла с музыкой. В следующих играх из этой книги используется еще больше музыки, и размеры файлов будут еще больше.
Рис. 9.8 |
Хотя вы можете скомпилировать проект и даже загрузить его в вашу игру XNA, вы еще не можете использовать никакие звуки, поскольку проект XACT сейчас только хранит волновые файлы. Но для воспроизведения вам нужны звуковые реплики, которые сначала должны быть созданы в звуковом банке. И снова здесь у вас есть возможность создавать несколько звуковых банков, но, вероятно, вам никогда не потребуется делать это.
Простейший способ заставить все волновые файлы работать — это перетащить их в ваш звуковой банк. Но подождите, а где звуковой банк? У вас его пока нет. Вы должны сначала создать его, точно также как и волновой банк. Вы можете сделать это щелкнув по элементу Sound Banks или щелкнув по второму оранжевому значку на панели инструментов (с оранжевой волной, выходящей с правой стороны из оранжево-белой коробки). Новый звуковой банк будет назван Sound Bank; если у вас один волновой банк и один звуковой банк, оставьте им имена по умолчанию. Если у вас несколько волновых или звуковых банков, вы должны давать им подходящие имена, чтобы потом их было проще искать.
Чтобы перетащить все волновые файлы из волнового банка в ваш звуковой банк, вы должны разместить окна таким образом, чтобы они оба были полностью видны. Окно звукового банка состоит из двух частей: имен звуков вверху и имен реплик внизу. Выберите все файлы из волнового банка и перетащите их в секцию имен звуков звукового банка (рис. 9.9). Каждый звук здесь может получить дополнительные параметры, такие как изменение громкости, частоты (высоты тона) или применение других вариаций или эффектов. Вы можете несколько раз добавлять один и тот же волновой файл, давая звукам различные имена. Для более сложных игр вы можете даже смешивать несколько волновых файлов в нескольких дорожках и добавлять их одну поверх другой, а затем воспроизводить этот «коктейль» вместо волнового файла. Чтобы у звука было больше одной дорожки, просто перетащите другой файл поверх первого и XACT автоматически создаст для него вторую дорожку. Однако в данной главе вы не будете использовать эту возможность.
Рис. 9.9 |
Редактируя звуки в звуковом банке, вы должны убедиться, что музыке (XnaShooterGameMusic) назначена категория Music вместо Default (вы можете сделать это в панели свойств звука слева). Я также обычно устанавливаю для категории музыки более тихое воспроизведение звука, чем для звуков по умолчанию, поскольку хочу, чтобы музыка была более фоновой. В вашей игре вы можете использовать категорию музыки для управления громкостью музыки как пожелаете. Кроме того, вы, может быть, захотите обеспечить, чтобы одновременно воспроизводился только один музыкальный файл (может быть, вы несколько раз вызываете метод StartMusic, или у вас несколько файлов с музыкой и вы не хотите останавливать и перезапускать их самостоятельно).
Для оптимального воспроизведения музыки вы должны поместить в произвольном порядке все музыкальные файлы, которые хотите воспроизводить в конкретной части игры, в один элемент звукового банка (например, MenuMusic и GameMusic; смотрите в качестве примера Rocket Commander XNA). Затем щелкните Play Wave на правой стороне окна звукового банка, когда выбран элемент музыкального сопровождения. Здесь вы можете принудительно зациклить этот звук; некоторые звуки уже зациклены, но для музыки всегда лучше делать принудительное зацикливание, чтобы гарантировать, что все музыкальные файлы будут хорошо работать.
И, наконец, вы должны удостовериться, что только один музыкальный файл воспроизводится в конкретный момент времени, и, если выбран другой музыкальный файл, уместен будет красивый эффект затухания. К счастью, XACT предоставляет все это вам. Вы можете сейчас установить ограничения и длительность затухания/нарастания для каждого отдельного музыкального файла, либо вы можете поступить умнее и установить все один раз для категории Music (рис. 9.10). По умолчанию значение LimitInstances равно false; как только вы установите true, станут активными свойства ниже. Если сейчас вы попытаетесь воспроизвести другой музыкальный элемент, в то время когда какой-нибудь музыкальный элемент уже запущен, то получите исключение, поскольку для BehaviorAtMax установлено значение FailToPlay. Замените его на Replace для правильного поведения при воспроизведении музыки. Остальные параметры смотрите на рис. 9.10.
Рис. 9.10 |
Если хотите, можете скомпилировать проект еще раз, но в вашем коде XNA по-прежнему нет доступа к каким-либо звуковым эффектам. XNA позволяет вам доступ только к звуковым репликам, которые надо сперва создать. Этот этап очень прост — выберите все звуки и перетащите их в секцию реплик окна звукового банка. Имена будут автоматически взяты из имен файлов, но вы, если пожелаете, можете переименовать любой элемент. Я обычно переименовываю звуковые файлы, чтобы сделать немного проще доступ к ним в XNA.
Другая замечательная возможность, которую вы используете для игры XNA Shooter, — возможность назначать несколько звуковых эффектов одной единственной звуковой реплике. Вы используете эту возможность для звукового эффекта взрыва. У вас есть три волновых файла взрыва, но для простоты вы хотите только сказать XACT, что надо воспроизвести взрыв, и пусть она случайным образом выберет для вас один из этих звуков. Для этого удалите из списка реплик звуковые реплики Explosion2 и Explosion3, выделив их и нажав клавишу Del. Затем переименуйте реплику Explosion1 просто в Explosion. И, наконец, перетащите звуки Explosion2 и Explosion3 на звуковую реплику Explosion. Вы должны увидеть результат, показанный на рис. 9.11. Совет: чтобы редактирование было чуть проще, увеличьте окно звукового банка или разверните его на весь экран. XACT иногда будет портить вам жизнь, и, когда полосы прокрутки то появляются, то исчезают, вы можете поместить элемент не на то место или против желания продублировать элементы (со мной это происходит постоянно).
Рис. 9.11 |
Вы можете заметить, что я переименовал звуковую реплику игровой музыки в GameMusic, чтобы в коде XNA было проще вводить ее имя. Также убедитесь, что у всех остальных звуковых реплик имена просты для запоминания.
После очередной компиляции проекта вы можете использовать проект XACT в XNA и обращаться ко всем звуковым репликам. Обратите внимание, что вам не надо все время самостоятельно компилировать проект XACT в утилите XACT; XNA автоматически делает это за вас, если вы добавили файл проекта .xap в ваш проект XNA Game Studio. В качестве альтернативы вы можете просто добавить скомпилированные файлы и самостоятельно загружать их в XNA. Не имеет значения, как вы поступите, но, конечно, файл .xap в вашем проекте XNA — это наиболее удобное решение. Однако, при использовании XACT, я рекомендую периодически нажимать F7 для компиляции проекта, точно так же как вы постоянно проверяете только что написанный тестовый модуль, пока он не будет прекрасно работать.
XACT позволяет вам устанавливать другие эффекты и звуковые параметры, что особенно полезно для трехмерных звуковых эффектов, где вы можете устанавливать все виды параметров для ваших звуков. Комбинируя их с небольшим количеством собственного кода вы можете делать очень мощные вещи, такие как изменение звуковых эффектов, в зависимости от местоположения их воспроизведения, и автоматическое определение залов или открытых пространств по трехмерной геометрии. Ваш движок может также искажать эффекты, если они воспроизводятся под водой, или после того, как рядом с игроком взорвалась граната. Возможности безграничны.
Для небольших игр вам не потребуются никакие специальные эффекты, но в качестве примера я покажу вам, как создать собственную переменную, которая позволит изменять частоту (высоту тона) звукового эффекта во время выполнения. Менять это прямо в XACT просто, но у вас нет прямого доступа к этим параметрам в XNA. Вы должны сперва предоставить открытую переменную реплики, а затем обеспечить использование этой переменной звуком.
Это делается не просто для развлечения. В Rocket Commander XNA и в игре из последней части книги вам необходим этот эффект для искажения звука двигателя управляемой вами ракеты или машины в зависимости от текущей скорости.
Для создания нового экземпляра переменной реплики щелкните Cue Instance и выберите из выпадающего меню New Cue Instance Variable. Вы можете напечатать здесь все, что пожелаете, и использовать любые значения; нет никаких ограничений. В данном случае назовите переменную Pitch и задайте допустимый диапазон от –100 до +100; остальные свойства могут остаться неизменными (рис. 9.12).
Рис. 9.12 |
Затем вам надо обеспечить, чтобы XACT могла делать с этой переменной что-нибудь полезное. Вы можете сейчас установить ее и назначить любому звуковому эффекту, но она пока не делает ничего, кроме хранения значения. В данном случае вы можете использовать существующие параметры RPC Presets (Runtime Parameter Control), но сейчас их выбор очень ограничен (вы можете менять только громкость (Volume), высоту тона (Pitch) и уровень эха (Reverb Send Level)). Возможно, в будущем появится больше вариантов. Например, для Rocket Commander XNA невозможно установить панорамирование, что использовалось в версии DirectX для управляемого кода для имитации трехмерных звуковых эффектов. Если бы XACT поддерживала трехмерные звуки, это не имело бы значения, поскольку вы могли бы легко выполнить настоящие вычисления трехмерного звука, но, к сожалению, трехмерный слушатель был удален после первой бета-версии XNA. В XACT можно установить параметры трехмерных звуков, и вы можете использовать их в родных проектах XACT, но XNA пока что их не поддерживает (не слишком забавно, если вы, как я, сначала реализовали звуки, а потом все прекращает работать).
Так или иначе, для изменения высоты тона звукового эффекта вы легко можете использовать новый RPC Preset. Просто щелкните RPC Presets и добавьте новый RPC Preset; назовите его RPC Pitch или оставьте предлагаемое по умолчанию имя. Выберите в качестве параметра Sound::Pitch и используйте только что созданную переменную Pitch. Теперь перетащите левую и правую точки на графике внизу, чтобы –12 соответствовало значение –100 вашей переменной Pitch, а +12 соответствовало +100 (рис. 9.13).
Рис. 9.13 |
Заключительная вещь, которую надо сделать, прежде чем использовать предварительную установку, — привязка к ней всех звуков, чтобы они могли использовать вашу новую переменную. Для этого просто перетащите звуковые файлы из звукового банка (не используйте волновые файлы или реплики, они не будут работать) на RPC Preset.
Показанный ниже код может использоваться для запуска звуковой реплики и динамического изменения переменной высоты тона реплики. Если вы хотите установить статическое значение высоты тона, не надо проходить через все эти трудности; просто создайте новую реплику в XACT и установите для нее другое значение высоты тона. Но для звука двигателя вы хотите менять высоту динамически, и тут уже без описанных выше усилий не обойтись.
rocketCue = soundBank.GetCue("RocketMotor"); rocketCue.Play(); // Устанавливаем общую громкость для данной категории motorsCategory.SetVolume(MathHelper.Clamp(volume, 0, 1)); // Устанавливаем высоту от -55 до +55 // (чуть больше половины максимального значения) rocketCue.SetVariable("Pitch", 55 * MathHelper.Clamp(pitch, -1, 1));
Как вы скоро увидите, оставшаяся часть класса Sound еще проще, и вы, вероятно, потратите большую часть времени на работу с XACT, а потом запрограммируете класс Sound за несколько минут.
В показанном выше примере вы также видели способ изменения громкости для категории. Прямое изменение громкости реплики по умолчанию не поддерживается, но вы можете для установки значений громкости ваших звуковых реплик создать переменную громкости реплики тем же способом, которым только что создали переменную высоты тона.
netlib.narod.ru | < Назад | Оглавление | Далее > |