Программирование игр для Windows. Советы профессионала

ЗВУКОВЫЕ ЭФФЕКТЫ И МУЗЫКА


Игры без звука подобны бассейну без воды. Это просто нонсенс! Звук тесно связан с действиями, происходящими в игре. Звуковые эффекты и музыка - это основа магии игр. Они могут изобразить чувство страха, волнения и неприязни. Я считаю, что хороший звук намного важнее хорошей графики. Потому что даже прекрасная, замечательно работающая в реальном времени, трехмерная графика с трассированным пространством без звука превращаетсяпросто в двигающиеся картинки. В этой главе мы узнаем, что же такое Звук и как его реализовать на персональном компьютере. Мы ограничимся звуковой картой Sound Blaster фирмы Creative Labs и совместимыми с ней устройствами. В этой главе мы рассмотрим:

§

Основы звука;

§          Устройство и архитектуру звуковой карты Sound Blaster;

§          Создание и воспроизведение оцифрованных звуковых эффектов;

§          Частотный синтез звука;

§          MIDI-музыку;

§          Специальные методы работы со звуком.

§          Основы звука

Со звуком мы сталкиваемся каждый день. Это одно из понятий, определить которое не очень тяжело. Звук - это человеческое восприятие волн давления, распространяющихся в воздушной среде, точно так же, как свет - восприятие электромагнитных волн, распространяющихся в пространстве. Вокруг звучащего объекта воздух расширяется и сжимается. Это расширение и сжатие порождает волны, которые, в конце концов, и достигают вашего уха, создавая переменное давление на барабанные перепонки. На рисунке 9.1 изображен источник звука и распространение звуковых волн от него.

Распространение звуковых волн из одной точки в другую по воздуху является механическим, так как оно происходит за счет передачи молекулами воздуха своей кинетической энергии друг другу. Когда волна распространяется, она теряет свою энергию из-за трения (мы воспринимаем это как снижение уровня громкости) до тех пор, пока, наконец, ее энергия окончательно не поглотится воздухом.






Звуковые волны имеют некоторые интересные свойства. Например, известный эффект Доплера. Все мы знаем разницу между звуком приближающегося и удаляющегося поезда. Данный эффект обусловлен тем, что скорость распространения звуковых волн зависит от скорости самого поезда. Не забывайте, что в отличие от световых волн, звук распространяется медленно. В среднем их скорость составляет 600 миль в час, так что поезд, двигающийся со скоростью 60 миль в час, может в достаточной степени повлиять на распространение звука. Если вы вспомните, звук приближающегося поезда выше и его тон (или частота колебаний) постепенно возрастает. После того как поезд прошел, тон (частота) снижается. Все это происходит из-за того, что передвигающийся объект порождает фронт звуковой волны в результате локального повышения давления. Таким образом, поезд одновременно и передвигается, и порождает звук, вследствие чего частота звука приближающегося и удаляющегося поезда различаются.

Теперь поговорим о специфических терминах, которые мы будем использовать при рассмотрении различных звуковых эффектов. Для наглядного представления звуков обычно используют двухмерные графики (см. рис. 9.2).



По оси Х обычно откладывают время, а по оси Y — амплитуду звука. Чистая нота ДО первой октавы (440Гц) будет выглядеть так, как это показано на рисунке 9.3.

Как вы можете видеть, волна порождает сама себя снова и снова и внешне выглядит как функция от времени. Это одно из свойств чистого тона; он может быть описан функцией синуса. Математически это записывается так:

F(t)=sin(2*Pi*F*t)

где F — генерируемая нами частота.

Как легко увидеть на рисунке 9.3, из формы волны мы можем получить несколько параметров. Один из них - амплитуда

(или, проще говоря, уровень громкости). Ее обычно измеряют в децибелах. Децибелы изменяются по логарифмической шкале: звук в 5дБ в 10 раз сильнее звука в 4дБ. (По такой же шкале измеряют силу землетрясения. При 5 баллах лишь немного подрагивает, а при 7 уже рушатся горы, ведь такое землетрясение в 100 раз сильнее!)



Другая величина, определяемая по графику, — это длина звуковой волны. Длина волны определяется, как время или расстояние между двумя вершинами синусоиды. Легко видеть что это длительность одного полного цикла звука. Посмотрите для примера на рисунок 9.4. Здесь изображены два разных волновых графика.

Частота одной волны - 500Гц, а другой - 1000Гц. Тысячегерцовая волна имеет в два раза больше полных циклов за единицу времени, чем пятисотгерцовая.



Теперь мы должны поговорить о частотной характеристике восприятия (frequency response). Обычно человек воспринимает звук, как показано на рисунке 9.5.



Мы слышим в диапазоне 20Гц-15КГц, и восприимчивость обычно сильно падает к 20КГц (большинство людей вообще не воспринимает звук за этим порогом). Следовательно, мы должны создавать наше звуковое сопровождение игры именно в таких пределах.

Достаточно о том, что такое звук. Попробуем его сделать!


Содержание раздела