Саунд эффекты как язык игры. Звук + изображение = общий информационный поток.
I. Неотвлекающая музыка.
II. Саунд-эффекты - язык игры.
III. О пользе интерактивности.
IV. Полифония.
V. Источник, фон, окружение.
VI. Звуковики - часть команды.
Эта статья лишь частично пересекается с лекцией на КРИ 2006, поэтому я рекомендую ознакомиться также и с аудиозаписью выступления.
Изначально планировалось раскрыть в статье и тему интерактивной музыки, но материал по эффектам получился столь объёмным, что пришлось сокращать даже его. Подробно о музыке мы поговорим в следующий раз, во второй части статьи, а сейчас лишь слегка затронем эту тему.
I.
Начнём с того, что "музыка не должна отвлекать от игры, при этом она должна создавать настроение, созвучное графическому оформлению, и ненавязчиво подбадривать пользователя, стимулируя его играть дальше"... Как часто музыкант получает такое техзадание? Практически всегда. И, я полагаю, среди людей, принимающих решения по звуку, вряд ли найдётся кто-то, кто ни разу не формулировал подобного задания. Но что лежит в основе такой формулировки, есть ли какое-то разумное обоснование?.. Вы скажете "ну, как же, это очевидно и все так делают - если музыка будет отвлекать, то...". Вот и давайте разберёмся с причинами отвлечения пользователя от игры.
Считается, что наш мозг может удерживать внимание на весьма ограниченном числе процессов одновременно (1). Сразу вычтите осязание (мышь, джойстик с обратной связью) и - при наличии соответствующих раздражителей - обоняние (казуальные игры запускаем в обеденный перерыв, не так ли?). Если человек играет на рабочем месте и косит глазом на входную дверь, из которой может появиться начальник, вычтите ещё один. Если наш игрок - секретарша, находящаяся в постоянном ожидании телефонного звонка - ещё минус один. Ничего удивительного, если в определённых ситуациях люди вообще отключают звук: им просто нужно освободить каналы восприятия.
Этим свойством мозга объясняется ещё одно интересное наблюдение: распознавать речь трёх человек, говорящих одновременно, способны лишь очень немногие люди. Если не сосредотачиваться до крайней степени, то следить удаётся лишь за двумя говорящими. И обратите внимание: то, что мы привыкли называть одним словом "звук", в данном случае активирует далеко не один процесс (восприятие на слух, выделение смысла и т.д.). Это очень важно (2).
Какой интенсивности должен быть поток звуковой информации в игре?
Здесь опасно "недожать" - если мы недостаточно загрузим внимание игрока, он может отвлечься на какие-то сигналы извне. Опасно и "пережать" - при чрезмерной нагрузке игрок начнёт упускать что-то в геймплее (до тех пор, пока не догадается выключить звук).
Проблема осложняется тем, что игровой звук - это поток переменной насыщенности (например, в какой-то момент игрока может засыпать бонусами и прочими событиями, в другое время может ничего не происходить).
Для того, чтобы ответить на этот вопрос, давайте рассмотрим правильную, последовательную подачу звукового материала в игре.
По мере прохождения игры пользователь запоминает ключевые звуки, отождествляет их с определёнными событиями, наделяет смыслом. Скажем так, изучает "язык" игры. Со временем звуки становятся однозначно узнаваемыми, мозг безошибочно извлекает из них смысл (информацию об игровых процессах). Игрок может уже не следить глазами за всем, что происходит на экране, а, скажем, запустить ракету и чисто по звуку слушать - попала она или нет. Работает механизм распознавания "речи".
Но представьте, что получится, если вдруг прозвучит слишком много звуков одновременно? Извлекать смысл из такого потока - всё равно что распознавать речь нескольких человек.
Кто-то может возразить, что в реальности к нам устремляется очень много звуков, но мы с этим вполне справляемся. Дело вот в чём:
1) Человек слабо реагирует на дальние, "безопасные" шумы, но проявляет повышенное внимание даже к тихим звукам в "опасной" (приватной, ближней) зоне.
2) Колонки переносят все звуки в "опасную зону", передача эффекта глубины пространства технически недостижима в типичных для игроков условиях.
3) Реальность далеко не всегда комфортна, поэтому апеллировать к ней не всегда правомерно. "Комфортная реальность" - та, что даёт нам знакомые звуки. Мозг более или менее "отсекает" их, и наше внимание не перегружается.
4) Даже если цель игрового звука - создать ощущение некомфортности, эффективно оперировать мы можем всё равно лишь в ближней зоне (3). Это означает, что неожиданные звуки в ближней зоне (даже если они тихие и редкие) окажут гораздо больший эффект, чем громыхание псевдо-удалённых шумов или музыки. Намеренное создание дискомфорта, при неправильном подходе, может запросто перегрузить ближнюю зону, что сделает звук вообще "нечитаемым", и весь эффект сойдёт на нет.
Итак, возвращаемся к сложностям "распознавания речи".
Если с самого начала игры из динамиков льётся непрерывная мешанина саунд-эффектов, игрок не научится их распознавать. Это будет похоже на гомон восточного базара, когда незнакомый язык просто сливается в однородный фон, и мозг постепенно начинает отсекать его. Полезной информации такой поток не доносит.
Поэтому подавайте звуки отдельно и последовательно. Только тогда игрок научится наделять их смыслом. Если в Вашей игре есть обучающие уровни, проектируя их, думайте о звуках так же, как об элементах геймплея. Tutorial - он и для звуков тоже. Надеюсь, это не сюрприз.
Если же Вы твёрдо уверены, что с самого начала хотите занять внимание игрока насыщенной звуковой картиной, то разумно будет использовать всем известные, знакомые из жизни звуки. Тогда они будут распознаваться без проблем.
Обучением ("языку" игры) дело не заканчивается. В дальнейшем важно аккуратно управлять интенсивностью звукового потока.
Как управлять, с какой целью?
Забегая вперёд, приведу практический пример, чтобы Вы могли проецировать на него дальнейшие выкладки.
Итак, Вы решили пожалеть утомившегося игрока и перемещаете его на бонус-уровень с упрощённым геймплеем. Тогда давайте будем удерживать каналы восприятия под нагрузкой за счёт более интенсивного звука. Противоположный пример: бонус-уровень на скорость, где от игрока потребуется максимальная сосредоточенность. Тогда полезно будет упростить звук. Грубо говоря, так.
Цель наша - соблюсти баланс между всеми элементами игры, то есть постоянно удерживать внимание игрока ровно настолько, чтобы он чувствовал себя в игре комфортно (4).
II.
Если саунд-эффекты - язык игры, то давайте говорить на нём правильно.
Не надо озвучивать каждое действие. Расставьте приоритеты - если несколько событий происходят одновременно, какие из них озвучить, а о каких умолчать? Сколько событий может звучать одновременно? Максимум два или три? Это зависит от Вашей игры и, даже более того, от особенности уровня. В старых классических играх звуковой чип просто физически не мог выдать больше двух эффектов одновременно - вот он, ключ к разгадке: правильный звуковой поток получался сам собой.
То же самое касается и музыки. Например, если игрок начнёт незаметно для себя подпевать изысканной и берущей за душу мелодии во время прохождения уровня, требующего максимальной концентрации... это будет означать, что кое-кто из разработчиков явно просчитался. Иногда выручает пресловутая "фоновая спокойная музыка", но что если этот самый "высококонцентрированный" уровень проходится в бешеном темпе? Спокойная музыка не подойдёт. Может быть, вообще её отключить? Да, можно и отключить. А чего бояться-то?
Есть и другое решение. Короткая, часто повторяющаяся тема, которая очень скоро начинает отсекаться мозгом, как тиканье часов. В Super Mario есть темы длительностью 4 секунды! И они отлично работают, под них можно играть очень долго. Разумеется, важно, что это грамотно и талантливо написанная музыка. Композитор может потратить очень много времени на поиск такого идеального 4-секундного рифа.
III.
Давайте посмотрим на график. Он в упрощённом виде отражает восприятие игроком типичной казуальной игры. Ниже будет приведён график также и для хардкорной игры. Я намеренно утрирую и использую "грубые" формулировки, так как сейчас важно задать общее направление мысли, без отвлечения на детали. С деталями мы разберёмся чуть позже.
В контексте нашего анализа всё происходящее в игре разделим на "звуковые события" и остальные события. Последние - это как действия игрока, так и визуально наблюдаемые действия алгоритма игры. Здесь можно заметить, что события могут происходить также лишь в сознании игрока и не отражаться в управлении ("запомнил", "заметил", "догадался"). Все эти разнородные события и реакции складываются в геймплей, но мы, повторюсь, отдельно выделим именно поток звуковых событий. На нашем графике он отмечен иконкой винилового проигрывателя. Остальные события отмечены иконкой инструментов (наблюдения и воздействия).
Фактор внешней среды отмечен иконкой телефона. Вспомним, что развлекаться казуальными играми можно и без полного погружения, оставаясь "на связи" с внешним миром.
По вертикали отмеряем загруженность внимания игрока. Низкая загрузка (немногим выше воздействия окружающей среды) приводит к рассеиванию внимания. Высокая загрузка подводит нас к границе, после которой игрок теряет способность полностью воспринимать и контролировать происходящее. Разумеется, схема чисто символическая, здесь мы оперируем отношениями "больше-меньше", а не точно измеренными величинами.
По горизонтали расположены различные игровые ситуации. Они могут происходить последовательно во времени, как изображено на графике, а могут иметь и другой порядок.
1) Игровое меню. Внимание привлекается графической заставкой и яркой музыкальной темой. От пользователя требуется минимум расторопности и сообразительности.
2) Игра. Насыщенность звукового потока заметно снижается. Как музыка, так и звуковые эффекты становятся мягче по сравнению с меню. Игровые события захватывают основное внимание. Суммарная загрузка внимания может быть снижена по сравнению с меню: игроку нужно освоиться, спокойно разобраться с правилами игры.
3) Сильный раздражитель из внешней среды, например, телефонный звонок. Игрок может продолжать игру, разговаривая по телефону, но его внимание загружено полностью. Долгое нахождение в таком состоянии некомфортно.
4) Игрок выключает звуковое сопровождение игры. Нагрузка снижается, условия для одновременного разговора по телефону и игры становятся комфортными.
После этого пользователь кладёт трубку, возвращает игровой звук и снова оказывается в обычной ситуации. Заметим здесь, что если пользователь забудет включить звук, загрузка внимания может упасть ниже уровня комфортной игры.
5) Игра производит звуковой поток, насыщенный больше обычного. Это может быть намеренным действием (например, стимуляция игрока к концентрации внимания перед сложным этапом), а может быть просто ошибкой гейм-дизайнера (звук вообще никак не контролируется и нарастает подобно лавине).
6) Не сбавляя насыщенности звука, мы усложняем геймплей за счёт остальных событий. Кстати, события эти может порождать и сам игрок: достаточно напугать его тем, что осталось мало времени, и вот он уже производит всё больше и больше действий, лихорадочно ускоряясь. Важно то, что загрузка внимания в такой ситуации вновь подскакивает до опасного максимума.
7) Мы (в роли гейм-дизайнера) догадываемся ограничить звуковой поток. Вместо того, чтобы усугублять и без того сложную игровую ситуацию, мы создаём игроку комфортные условия для решения задачи, которую ему, действительно, нужно сейчас решать.
8) "Узкий" звуковой поток оставляет нам возможность эпизодически "радовать" игрока сверхнасыщенными игровыми ситуациями. Главное - одновременно с этим не насыщать звуковой поток, иначе мы просто "вытолкнем" игрока за пределы не то что комфортного, а вообще возможного восприятия.
Напомню, график этот очень условен. Вы, наверняка, уже заметили, что он не учитывает постепенного привыкания (и, как следствие, снижения внимания) к музыкальному сопровождению (если оно повторяется от уровня к уровню). Очевидно также, что прямая, отображающая неугасающий со временем интерес к игровому процессу, может быть обусловлена только постепенно нарастающим разнообразием (или сложностью) уровней. Всё это уже "тонкая настройка".
По "тонкой настройке" можно дать одну общую рекомендацию: для создания комфортных условий игры поддерживайте поток звуковой информации таким образом, чтобы он гибко подстраивался под прогнозируемую вовлечённость игрока в данный момент.
Это довольно тонкая материя, но гейм-дизайнер её обычно чувствует.
Посмотрим теперь на график, составленный для "хардкорной" игры.
1) По сравнению с казуальной игрой, внешняя среда здесь требует меньше внимания. Игрок может как мысленно абстрагироваться от действительности, так и физически создать себе более комфортные условия для погружения в игру.
2) Отдельно введём процесс управления. В казуальной игре он, зачастую, почти не усложняется со временем. Хардкорная же игра нередко требует от игрока последовательного изучения "комбо" и предлагает ситуации, в которых нужно проявлять чудеса проворности и синхронности движений.
3) Особый случай: джойстик или руль с обратной связью переключает внимание на тактильные ощущения. То, что в остальных случаях по поводу управления наш график показывает константу, конечно, упрощение.
4) Внешний раздражитель, от которого не получается абстрагироваться (например, телефонный звонок), гарантированно "выталкивает" из игры. Распределяя внимание, игрок вынужден решать, чем жертововать.
5), 6) и 7) Подобно случаю с казуальными играми, лишь добавляется фактор управления.
Как я уже говорил, для упрощения иллюстрации я объединил всё, кроме звука и управления, в один общий поток событий. На практике же музыканту и звукорежиссёру полезно обсудить все детали геймплея с гейм-дизайнером, составить внятную картину всех этих мелких потоков информации, которые складываются в игровой процесс, понять какие потоки сколько звука приносят, сколько его получается в пике, где и как его ограничивать.
А ограничивать придётся. Гейм-дизайнеру полезно быть готовым к самым "нелогичным" предложениям звукорежиссёра. Здесь не работает прямая логика: если на экране что-то упало, это ещё не значит, что должен быть звук падения. Может быть игроку даже некогда смотреть на это, и "Бабах!" только собьёт его с толку.
Музыканту/звукорежиссёру можно посоветовать иметь под рукой в качестве аргумента художественные и анимационные фильмы, чтобы во время показа указывать пальцем на неозвученные действия. Всё подряд озвучить-то легче, чем выбрать, что озвучивать. Ограничивать звук - это и расчёт, и искусство.
Может быть, Вы никогда не задумывались об этом, но музыканты действительно знают толк в таких вещах. Когда композитор сочиняет произведение или делает аранжировку, он всегда следит за тем, чтобы всё было слышно, чтобы не получалось каши и не было необоснованных пустот. Партии инструментов могут вводиться по очереди: сначала слушатель знакомится с ними, привыкает к ним, и дальше они как бы уходят в фон, а внимание переключается на следующий вступающий инструмент. В итоге множество одновременно звучащих инструментов и мелодических линий складываются в музыку, услаждающую наш слух. Но если бы произведение начиналось сразу с кульминации, когда все инструменты играют разом каждый своё... Это как минимум тяжело для восприятия. Впрочем, правил здесь нет, я лишь хотел сказать, что музыканты умеют управлять вниманием слушателя на промежутке времени. Как минимум это объединяет их с гейм-дизайнерами.
IV.
Итак, технологии. Начнём со звуковых эффектов, затем перейдём к интерактивной музыке.
Термины и обозначения:
Полифония (P). Максимальное количество звуков (одинаковых, разных - не важно), которое инструмент может воспроизводить одновременно. Примеры: шестиструнная гитара - полифония равна 6; скрипка - полифония 3; дуэт гитары и скрипки - полифония 9; фортепьяно - полифония 88.
Базовая частота (W). Число оцифровок (замеров) в секунду при переводе звука из аналоговой формы в цифровую (или, в случае эмуляции аналогового синтеза, при дискретизации значений непрерывной функции). Наиболее часто встречаемое значение - 44100.
Отклонение частоты (dW). Изменение частоты воспроизведения замеров (оцифровок), а именно отклонение от базовой частоты W на величину dW. В зависимости от знака dW приводит к эффекту ускорения (и повышения) или замедления (и понижения) звука.
Базовая громкость (A). Грубо говоря, та громкость звука, с которой он был оцифрован. Положим её равной единице.
Отклонение громкости (dA). Изменение громкости звука относительно базовой громкости A.
Серия звуков (варианты звуков) - набор звуков, пригодных для озвучивания одного и того же события. Выбор конкретного звука из серии может происходить случайным образом или последовательным перебором - не важно. Пример: шаги (повторение одного единственного звука совсем не похоже на ходьбу, поэтому требуется несколько вариантов звука).
Для начала рассмотрим метод контроля звукового потока, разработанный нами несколько лет назад для компании Intenium GmbH. Этот метод мы давно и успешно практикуем также и в проектах других разработчиков. Метод предельно прост, реализовать его можно в рамках практически любой саунд-системы (библиотеки) без особых сложностей и временных затрат.
В этом методе ограничению подлежат только звуковые потоки, порождаемые однородными событиями. Примеры таких событий: разбивание одинаковых предметов, выстрелы из одного и того же оружия, удары мяча о препятствия, шаги нескольких персонажей по одинаковой поверхности, звук выпадания приза и т.д. Другими словами, любое событие, которое в определённой игровой ситуации может произойти несколько раз на очень коротком промежутке времени (а то и вовсе одновременно) и таким образом породить множество одинаковых звуков.
Рассмотрим на схеме метод озвучивания таких событий.
1) Для каждого нового события выбирается один звук из серии.
2) Звук направляется в очередь. Все элементы очереди сдвигаются вправо. Длина очереди = P. Если в правой ячейке находился звук, он выбывает из очереди (прерывается, перестаёт воспроизводиться). Любой звук, доигравший до конца, удаляется из очереди автоматически, очередь "сжимается".
3) Для вновь поступившего звука случайным образом выбирается отклонение частоты (dW) и громкости (dA), после чего звук начинает воспроизводиться. Максимальные значения dW и dA - глобальные величины.
Замечания, которые хотелось бы сделать по этой схеме:
а) Звуки в серии могут иметь разную длительность, а произвольное варьирование частоты может эту разницу даже усилить. Поэтому нормальной является ситуация, когда звук, поступивший в очередь позже, закончит проигрывание раньше. Этим объясняется освобождение мест в середине очереди.
б) Варьирование частоты и громкости само по себе не создаёт разнообразия и не устраняет неразборчивость микса, ни в коем случае не заменяет использования серии звуков. Более того, применение этого эффекта на одном и том же звуке быстро распознаётся как "дешёвый трюк", начинает раздражать.
в) Для пущей наглядности в этой схеме я ввёл дельты, однако на практике лучше использовать коэффициенты умножения (хотя бы потому, что базовые частоты разных звуков могут отличаться).
г) Следует задать минимальный временной промежуток "разделяемости" двух событий (Tmin). Это та небольшая разница во времени, при которой сольются и оба звука, и оба изображения. Если два одинаковых события произошли с разницей в несколько миллисекунд, предпочтительней озвучить более раннее, тогда последующее событие будет происходить уже на фоне звукового эффекта. Поэтому не спешите добавлять в очередь каждое новое событие, игнорируйте слишком часто идущие.
д) Из практики, реальные значения полифонии лежат в интервале от 1 до 3. Широкие жесты здесь неуместны: увеличив полифонию каждому эффекту лишь на единицу, Вы можете с удивлением наблюдать, как на небыстрых компьютерах появляются заметные подтормаживания.
В ini-файле каждое событие будет описано следующим образом (5):
EventName
(
SoundName1, SoundName2,.. SoundNameN;
P;
W1,W2;
A1,A2;
)
Можно усовершенствовать метод, назначив коэффициент уменьшения громкости при продвижении звука по очереди (чем правее, тем тише).
Тогда мы получим "бесплатный" (с точки зрения производительности) компрессор-лимитер: каждый новый звук будет приглушать предыдущие - перетянет акцент на себя, а остальные отодвинет в фон. При такой привязке громкости звука к месту в очереди "сжимать" очередь следует только при поступлении нового звука (а не по окончанию старого). На иллюстрации вторая ячейка очереди пуста: звук доигрался до конца, в микшер ничего не посылается (серая стрелка). Теперь при поступлении нового звука сдвигаться будет не вся очередь, а только то, что стоит левее пустой ячейки. Таким образом мы даём возможность "старым" эффектам звучать подольше, не обрезаем полифонию понапрасну.
Кстати, при сдвиге эффекта в очереди имеет смысл уменьшать его громкость не резко (ступенчато), а плавно. На эту операцию всегда есть запас по времени - Tmin. Но лучше настроить время спада более точно, посоветовавшись со звукорежиссёром (может быть даже индивидуально для каждого эффекта, в зависимости от его атаки).
Ещё одно усовершенствование применимо к серии звуков, источники которых могут быть сильно разбросаны по стереопанораме. В этом случае при вытеснении старого звука из очереди следует сперва искать звук со значением панорамы, близким к панораме нового звука. Диапазон, в котором значения панорамы считать близкими, подбирается экспериментально. А полифонию придётся немного увеличить.
Теперь рассмотрим второй метод. Назовём его методом адаптивной полифонии.
Ограничению подлежит не только полифония однородных эффектов, но и общая полифония всего звукового потока, при этом общий поток разбивается на группы и подгруппы по определённым признакам и каждая группа контролируется отдельно. Посмотреть этот метод в действии можно на примере игры "AstroMenace" компании Viewizard.
В подгруппы следует объединять события одинаковой важности с похожим частотным спектром. Задача эта для дуэта звукорежиссёра и гейм-дизайнера. Примеры подгрупп: крупные взрывы; голосовые сообщения; попадания; выстрелы из плазменного оружия; выстрелы из огнестрельного оружия. Нетрудно заметить, что последние две группы имеют одинаковую важность, однако звуки в них сильно различаются по спектру - это повод разнести их в разные подгруппы.
Полифония каждой подгруппы ограничивается индивидуально. Критерием здесь служит разборчивость звука внутри подгруппы, а сочетание со звуками других подгрупп не учитывается.
Затем подгруппы объединяются в группы по принципу похожести звучания. Лучше не ломать голову над тем, что это значит (6), а просто поручить работу звукорежиссёру. К примеру, выстрелы из огнестрельного оружия, вообще говоря, похожи на взрывы и прочие хлопки, различие лишь в масштабе. А звуки выпадения бонусов могут походить на звуки телепортации или применения плазменного оружия. Вот из таких соображений подгруппы объединяются в группы.
Подгруппам внутри каждой группы расставляются приоритеты (старше-младше). Задача больше для гейм-дизайнера. Пример отношения двух подгрупп в группе: звук попадания ракеты в игрока обладает большим приоритетом, чем звук уничтожения противника, хотя взрыв от противника может и звучать громче, и визуально занимать весь экран.
Возвращаясь к примеру с плазменным и огнестрельным оружием: эти подгруппы попадут в разные группы, поэтому постарайтесь, чтобы они получили одинаковые приоритеты в своих группах.
Полифония внутри группы ограничивается числом, не меньшим числа подгрупп. Подбирается экспериментально, в зависимости от того, какой плотности звуковую картину Вы хотите построить. И в зависимости от музыки, кстати, тоже (но это тема следующей статьи). Начните экспериментировать со значения полифонии, вдвое превышающей число групп.
Распределение полифонии в группе происходит динамически.
Пока предел полифонии в группе не достигнут, нет нужды разбираться, какой подгруппе принадлежит звук (то есть каков его приоритет).
Но как только мы подходим к пределу, встаёт вопрос, какой из звуков вытеснять, прерывать. Смотрим на полифонию внутри той подгруппы, которой принадлежит новый звук: если максимум уже достигнут, то всё просто - вытесняем самый старый звук в подгруппе.
Если же в подгруппе есть свободное место, то вытеснять придётся звук из другой, младшей подгруппы. Как обрабатывать эту ситуацию, решать Вам, в зависимости от характера и протяжённости звуковых эффектов в Вашей игре. Например, можно прерывать самый старый звук (среди всех младших подгрупп) или находить подгруппу с максимальной на данный момент полифонией и разрежать обстановку в ней.
На иллюстрации изображены две подгруппы, объединённые в одну группу. В скобках указана максимально допустимая полифония. В данный момент суммарное количество звуков в подгруппах превышает допустимую полифонию группы, поэтому включается механизм сокращения полифонии. Он действует на вторую подгруппу (положим, у неё меньший приоритет). Из иллюстрации видно, что требуется сокращение полифонии ещё на один, но за счёт какой подгруппы это делать - решать Вам. Я бы предложил теперь "обрезать" первую подгруппу. Но это всё детали, углубляться в алгоритм не будем.
Парадокс состоит в том, что всё это выглядит довольно сложно, а результат слушается очень просто - как будто никаких алгоритмов контроля звука и не задействовано вовсе. Однако, стоит Вам отключить контроль и сравнить результат, никаких сомнений не останется. Надо. Контролировать надо. Будь у Вас "шутер века" или "простенькая" казуальная игра - лучше один раз написать правильный алгоритм, чем на каждом новом проекте снова и снова удивляться, "почему этот звукорежиссёр не может справиться с такой простой работой". Не в звукорежиссёре дело. Программисты, вперёд!
V.
Нередко встечается ситуация, когда программист, гейм-дизайнер, менеджер проекта или любой другой несчастный, на которого легла обязанность подключать звуки в игру и/или "вообще контролировать этих музыкантов", проделывает буквально следующее: получив кучу эффектов, загружает их в аудио-редактор и, с ужасом увидев "пустые хвосты" в конце каждого звука, безжалостно их обрезает. Мол, нечего место (и полифонию) тратить. Ситуация, действительно, хрестоматийная, от этих творческих натур всегда подспудно ожидают чего-то подобного - наверняка забыл, поленился, не подумал... Так вот, не надо этого делать. И вот почему.
"Пустые хвосты" (отсутствие звука) - это нулевая амплитуда. 16-битный звук - это 65536 градаций амплитуты. Если бы Ваш монитор имел разрешение 65536 точек по вертикали, Вы смогли бы отличить пустоту от непустоты. Но на самом деле окошко, в котором Вы просматриваете форму волны, на два десятичных порядка меньше. Если же Вы загрузили стереозвук, точность отображения по вертикали сокращается ещё вдвое. Отклонения амплитуды в один-два пикселя, скорее всего, будут незамечены или признаны несущественными и тоже попадут под нож... Но, поверьте, при такой точности отображения "не видно" вовсе не означает "не слышно". Давайте замеряем относительный уровень сигнала, который выглядит "слишком тихим" (за 0 db принимается максимальная амплитуда). Получим что-то в районе -40 db.
Прослушивая звуки на рабочем месте, Вы вынуждены поднимать громкость выше уровня окружающего шума. Вентиляторы компьютеров, разговоры коллег, кондиционер или шум из окна - каков абсолютный уровень этого шума? Можно предполагать, что в районе 65 db (если у Вас не отдельный специально оборудованный кабинет). Уровень полезного звука Вы, естественно, делаете выше уровня шума (допустим, 75 db). Теперь посчитаем ослабление на 40 db ("невидимая" часть звука, которую Вы собрались отрезать). Это же звук громкостью 35 db! Вообще говоря, это уровень тихой музыки или нешумной комнаты. То есть вполне ощутимый звук. Да, он почти неразличим в условиях производственного цеха, но Вы уверены, что Ваши пользователи будут играть в таких же условиях?
Какую полезную информацию содержит этот "невидимый хвост"? Взаимодействие источника звука с окружением. Отражения от стен и предметов - реверберацию. Коротких звуков в природе не бывает. Вообще. Единственное место, где Вы могли бы услышать звук без реверберации - зал для тестирования микрофонов на заводе "Октава" (это один большой звукопоглотитель, там нет даже пола, вместо него - сетка). Короткий звук - нонсенс, дискомфорт, вызов слуховому центру мозга. Отрезать реверберацию, находящуюся, тем более, в хорошо слышимом диапазоне - моветон.
Отдельно отмечу, что при ограничении полифонии по вышеописанному методу любой звук обрывается только тогда, когда начинает воспроизводиться новый, очень похожий звук с таким же частотным спектром и с более высокой громкостью (особенно в начале звука, на атаке). Возникающий эффект частотного перекрытия практически полностью скрывает факт прерывания старого звука. Звук как бы и не прерывается, а впитывается новым звуком.
Обрезание "хвостов", помимо цели уменьшения полифонии "задаром", может преследовать и цель экономии памяти. Эта вторая цель гораздо более благородна, и ей следовало бы посвятить гораздо больше места в статье. Если бы решение не укладывалось в пару строк. Итак, программная реверберация. Звукорежиссёру следует готовить короткие "голые" звуки, а эффект реверберации будет в дальнейшем накладываться программно.
Эффект WavesReverb входит в DirectX, начиная с восьмой версии. В популярную саунд-систему BASS уже интегрирована поддержка Direct Music Objects, но можно вполне обойтись и без BASS. Саунд-система FMOD Ex содержит собственный алгоритм реверберации.
Можно написать и свой ревер (благо, открытых исходников на эту тему немало). Вообще, набор собственных процедур для микширования саунд-эффектов предпочтительней: это и гибкость управления полифонией, и независимость от платформы и чужого движка, свобода выбора формата для музыки, возможность регулировать уровни посылов на эффекты (почти незаметная реверберация на одних звуках, сильная на других) и т.д. Минусы у этого подхода, конечно, тоже есть, и все их знают: больше и дольше трудиться. Однако, практика показывает, что находятся люди, успешно преодолевающие даже это.
VI.
Звуковики - часть команды.
Насколько часто это утверждают на словах, настолько же часто об этом забывают на деле.
Может быть, причина в самих музыкантах? Большинство читателей на вопрос о своей работе ответит одним словом: игры. Вы делаете игры. Музыкант же, скорее всего, ответит иначе: музыка. Он пишет музыку.
И это повод насторожиться. Ведь мы с вами должны делать одно общее дело.
Специалист по звуку должен быть вовлечён именно в создание игры. Он должен иметь такое же полное представление о геймплее, как и гейм-дизайнер. В начале статьи я показывал, что воздействовать на игрока можно двумя способами: изображением и звуком - так разработайте схему этого воздействия совместно с звукорежиссёром!
Независимо от того, находится ли звуковое подразделение в Вашем офисе или работает удалённо, состоит из десяти человек или из одного, роль саунд-директора в проекте такая же основополагающая, как роль арт-директора и ведущего гейм-дизайнера. Если Вы не допустите "звуковика" к работе над игрой, он и будет делать музыку, а не игру. Вы получите от него просто звуковую константу по заданному шаблону, звуковой довесок к вашему продукту.
Во всём должен быть смысл, а смысл игры - не в картинках, не в пресловутой атмосфере, а в самом игровом процессе. Когда этот смысл во всех нюансах будет открыт музыканту так же, как он открыт гейм-дизайнеру, только тогда можно создать комплексный инструмент воздействия на игрока. И получить нужный, предсказуемый результат.
P.S. В следующей статье я расскажу об интерактивной музыке на примере казуальных игр (Billy Bob, Seven Lands), дисковых ("Магия Крови") и консольных проектов (пока секрет). Также, наконец, мы поговорим о новых трекерных технологиях (на примере "Azteca", "Fairy Jewels" и др.).
Сноски.
(1) "Если обратиться к итоговым параметрам деятельности мозга, то и они окажутся достаточно скромными - человек не может следить более, чем за 5-7 переменными" - ИПМ. им. М.В.Келдыша РАН. (от себя добавлю - при проведении эксперимента в пределах одной модальности).
(2) "Смысловое восприятие речи на слух является перцептивной, мыслительно-мнимической деятельностью, которая осуществляется в результате выполнения целого ряда сложных логических операций таких, например, как анализ, синтез, дедукция, индукция, сравнение, абстракция, конкретизация и т.д." - wiki, Аудирование.
(3) Передача информации о глобальных событиях средствами ближней зоны - задача не всегда тривиальная, порой даже творческая. Представьте, что Вам нужно информировать игрока о приближении босса, о воздушном налёте или залпе "Катюш". Можно, руководствуясь физикой и логикой, изобразить далёкий залп, после которого плавно наращивать громкость воющих снарядов. А можно, руководствуясь соображениями психологии и драматургии, подвести сослуживца, который в паническом ужасе тихо прошепчет игроку прямо в ухо "о боже, что это?!" и укажет пальцем на огни в небе. А рёв снарядов может и подождать немного... В общем, простор для творчества здесь есть.
(4) "Комфорт" в широком смысле - "получаю то, за чем пришёл". Шутер от первого лица, казуальный Тетрис, рейсинг, файтинг или стратегия - везде своё понятие комфорта.
(5) Здесь dW уже заменено на W1 и W2 - коэффициенты отклонения в обе стороны (они могут быть несимметричными). Пример: 0.9 и 1.3. Базовая частота всегда полагается равной единице.
(6) Кроме очевидного частотного спектра, сравнительных характеристик здесь немало: это и параметры огибающей громкости (ADSR), и эффекты обработки (фленжер, фейзер) и др.
Александр Мачуговский / the SandS
|