Как посмотреть звуковые файлы в играх

Обновлено: 05.07.2024

Все мы играем. Все мы в той или иной мере рассуждаем о сюжетах игр, об их постановке, о дизайне уровней, о сложности, о музыке. Но слушаем ли мы сами игры? Давайте сегодня немного поговорим именно об этом.

Какой то бесполезный выпуск. Плохой звук — плохой. Хороший звук — хороший. А мы и не догадывались.

Нуу, что касается сиджа, даже близко не является правдой. Система звуков там просто отвратительная, и хоть с их уникальностью проблем не возникает, ибо отличить их друг от друга никакого труда не составит, но вот определить откуда идет звук, это уже действительно сложно. В идеальных условиях, конечно, можно услышать все как оно есть, но такое случается совсем не часто и даже редко. Ведь любой панчхол или ротэйшн, иначе говоря любая дырка, заставляет игрока путаться. Ведь звук здесь поступает не как в жизни со всех щелей, а из самой ближней, что может сыграть с неопытным (а зачастую и с опытным) игроком злую шутку. Даже я, наиграв 2200+ часов, только недавно стал еле-еле понимать, с моего ли этажа звук или это где-то сверху, а может снизу, ибо разница настолько незаметная, что приходится очень и очень тщательно прислушиваться, куда тщательнее чем следовало бы. Не зная что неподалеку от тебя какая-то щель/и, можно подумать что противник где-то сзади, а может за углом, фликануть в него или выйти префом, ну и мгновенно пожалеть о своем поступке, ведь ты только что сдал свою позицию.

Короче говоря — звук срань говна пирога.

Афиша будто говорит:

«Что, какая часть истории серии Диаблы / ИСГ / Японского репортажа? Не, не слышу»

Хмм… интересная тема.

В Life is Strange (первый сезон) очень хорошие звуковые эффекты. Странный пример, я знаю! Но вы погодите с выводами обо мне.

Можно убедиться в этом, поглядев видео на ютубе от игроков. Они так и называются «Life is Strange Backwards Message» (или Backwards Audio (Hidden Messages))

Кстати, про Doom 16 года — наконец до него добрался, играю на кошмаре и очень бесит то, что враги, кроме зомби, практически не издают звуков. Т.е. ты приходишь на новую арену, начинаешь бой и видишь, например, что спавнится рыцарь ада. Ты начинаешь его фокусить и вдруг умираешь, потому что второй рыцарь, спавн которого ты не увидел, заходит к тебе со спины — ты не слышишь врагов, не слышишь как они появляются, как готовят атаку, как передвигаются. Это прям бесит, очень портит впечатления от хорошего шутера.
Кстати, Фен, что-то про позиционирование звука как-то восприятие царапает — его давно и успешно используют, в том же Серьёзном Сэме без этого нереально на высоких сложностях. И не только в шутерах он на приличном уровне очень давно встречается. Конечно, до уровня Хэллблейд врядли кто-то доходит, но у Ninja Theory концепция игры на этом строится, они вне конкуренции. Когда показывали звук в РДР2, я вообще ничего не угадал. В первом куске ну явное кладбище. Кладбище, и все тут, мгновенно воображение нарисовало. Возможно, я неправильный. Про последующие куски вообще ничего не мог придумать. С звуковым дизайном как с фотографиями блюд, если они настоящие — то выглядит не так вкусно. В рдр очень много работы саундизайнеров благодаря чем звук на столько насыщенный, в то же время те же юбисофт скорей всего просто пришли в лес и записали пару часов ( если не взяли его со стоков). С саундтреком все немного тяжелей, когда я учился на звукорежиссера, нам говорили, что очень много нужно уделять прозрачности и панораме, если каждый звук на своем месте (скрипка слева и близко, труба справа и дальше) то уху будет приятней это слушать, а эмбиент по сути на этом и строиться.

Как-то примеры от Юбисофт не очень явно показаны.

В чём проблема с тем, что, если взять звук «Мужик стоит в лесу и ничего не происходит» и наложить на такой же момент в другой игре, то ничего не изменится? Одинаковые ситуации одинаково звучат.

С горой ещё более странный элемент: в оригинале персонаж стоит на холме на пустыре, что ещё кроме ветра и птичек он должен слышать? Наоборот, учитывая, что в основе игры лежит геймплей про «стреляй-убивай», то такие моменты тишины нужны, чтобы передохнуть, поржать о чём-то с напарниками и отойти от произошедшего.

Даже момент для наложения выбран неудачно: я ожидал мычания быков слева и шуршание флажков на ветру, и вначале даже подумал, что помню игру лучше, чем была, ан нет. Это Фен решил похимичить со звуком.

Надо было брать более активные моменты, навроде «Вот мужик идёт по снегу, стреляет из лука в птицу и она падает, а вот другой мужик идёт по песку, стреляет из арбалета в енота и тот падает со скалы», и взять игры с бо'льшим разрывом по времени выхода, тогда отсутствие разницы выглядело бы куда менее простительно.

Всё написанное далее — моё непрофессональное мнение, не претендующее на какую-либо объективность.
Хех, то ли я неправильный, то ли подбор композиций так себе.
1) Про эмбиент в целом — нет, не чувствую, ни волн, ни ветра. Про ветер вообще подумал, что это босс появляется. Компьютеры — ХЗ, не знаю.
2) Там где лес с вороньём — у меня первая ассоциация — кладбище, и вОроны пируют трупами на виселицах, скрипящих на ветру.
3) Таверна и город похожи, ок.
4) Река — похоже, ок.
5) Замершее озеро — у меня корабль в штиль, и только снасти скрипят.
6) Пещера, ветер, призраки завывают. Мрачноватая обстановочка. В целом к аду подходит — не везде же там крики грешников должны быть.
7) Про Тонущий город — мне, наоборот, кажется, что это так и задумано, что других людей не слышно, они скрыты водяной пеленой дождя и бесконечно далеки от героя.

В целом про звук: в разных играх он выполняет разные задачи. Например, в походовых стратегиях он должен создавать атмосферу, сигнализировать о важных событиях, требующих внимания и действия игрока. Музыка на заднем фоне полезна, дополняет атмосферу.
В слэшере музыка должна задавать темп, это более важно, чем атмосфера, и при этом не перекликаться с действиями врагов — информационная функция гораздо важнее, чем в той же стратегии.
В командном шутере музыка вообще не нужна — весь фокус на информации.

Музыка в компьютерных играх часто представлена в нестандартных форматах, и её воспроизведение с помощью обычных программ-плееров невозможно.

Программы для извлечения музыки

Существуют специализированные программы, позволяющие извлечь музыку из игр. Среди наиболее универсальных программ этого класса можно выделить:

  • Game Audio Player,
  • WinRipper,
  • Total Recorder.

Game Audio Player (GAP)

Программа Game Audio Player, разработанная российским программистом Валерием Анисимовским, является плеером и поддерживает множество игровых музыкальных форматов, в том числе используемые в играх серий Command & Conquer (например, Red Alert) и Need for Speed (например, Hot Pursuit и High Stakes).

Предусмотрена возможность сохранения найденной в игровых ресурсах музыки в стандартные Wave-файлы.

Трекерную (например, MOD, XM, S3M) и MIDI-музыку программа не поддерживает.

Предусмотрена система плагинов: любой желающий может написать программный модуль, обеспечивающий поддержку произвольного формата.

WinRipper

В отличие от GAP, программа WinRipper Петра Павловского не является плеером и ориентирована исключительно на извлечение звука из файлов игровых ресурсов. В то же время WinRipper избавлен от некоторых недостатков GAP.

Поддерживается не только музыка в Wave-подобных форматах, но и трекерная и MIDI-музыка.

Теоретически возможно прямое воспроизведение музыки из игровых ресурсов через популярный плеер Winamp при помощи соответствующего плагина от разработчика WinRipper, но при этом Winamp и WinRipper должны работать параллельно, да и сам плагин сейчас найти проблематично (он распространялся отдельно от WinRipper), и с современными версиями Winamp он, скорее всего, несовместим.

WinRipper не поддерживает плагины: чтобы добавить в неё поддержку других форматов, необходимо вмешиваться непосредственно в исходный код программы.

Своеобразным достоинством программы является её небольшой размер — всего 51 КБ (версия 0.79) против 1,24 МБ у GAP 1.32.

К сожалению, разработка GAP и WinRipper прекращена, а официальные сайты их разработчиков в настоящее время недоступны.

Total Recorder

Программы типа Game Audio Player и WinRipper обладают общим недостатком: они способны извлечь музыку только в тех случаях, когда музыка в игре представлена в одном из поддерживаемых программой форматов. Но постоянно выходят новые игры, где используются новые форматы, при этом официальные спецификации игровых музыкальных форматов обычно не публикуются.

Программа Total Recorder представляет собой универсальное решение, позволяя получить необходимый музыкальный файл практически всегда: с помощью специального программного драйвера эмулируется самостоятельное звуковое устройство. При этом весь звуковой поток, проходящий через это виртуальное звуковое устройство, перехватывается и может быть сохранён в стандартный Wave-файл.

Некоторые звуковые платы позволяют записывать воспроизводимый звук, но есть принципиальная разница: в программах типа Total Recorder звук не записывается, а перехватывается в неизменном виде. Благодаря этому исключаются потери качества записанного файла относительно исходного звука игры, связанные с несовпадением частот дискретизации исходного звукового потока и полученного файла.

Потери качества возможны в том случае, если громкость в игре установлена на уровень, отличный от максимального (в том числе неуправляемыми образом). Определённую трудность при использовании таких программ также представляет возможное наличие посторонних (звучащих параллельно с музыкальным сопровождением) звуков, отключить которые есть возможность не в каждой игре.

В отличие от Game Audio Player и WinRipper, Total Recorder является платной программой.

Аналогичными возможностями, но уже на аппаратном уровне, обладают профессиональные и полу­профес­сиональные звуковые платы компании ESI — например, Juli@. В них доступна фирменная технология DirectWIRE, позволяющая осуществлять произвольную маршрутизацию звуковых потоков без потерь и перенаправлять выходной звуковой сигнал на вход с вытекающей возможностью записать его обычным образом в любой программе для звукозаписи — например, Sound Forge.

Специализированные утилиты

В отдельных случаях имеет смысл использовать небольшие утилиты, предназначенные исключительно для извлечения музыки из какой-то единственной игры. Порой такие утилиты даже являются консольными (лишены графического интерфейса и работают из командной строки), но такой способ конвертации обычно всё равно более удобен и обеспечивает более гарантированное качественное соответствие оригиналу, чем запись в реальном времени при помощи программ типа Total Recorder.

Например, почти в каждой новой игре компании Electronic Arts используемый в игре звуковой формат претерпевает изменения, и существующие версии более-менее универсальных программ типа GAP оказываются бессильными.

Из узкой специализации таких утилит вытекает и невозможность дать какие-то конкретные рекомендации — для каждой игры следует искать свою утилиту. Например, для игры Project I.G.I. существует программа Innerloop Studios WAV->WAV converter, преобразующая файлы из нестандартного варианта формата Wave в стандартные Wave-файлы.

Музыка из игр для игровых приставок (консолей)

Воспроизвести такие файлы можно либо в специализированных плеерах типа Audio Overload, либо с помощью популярных плееров с использованием сторонних плагинов. Например, бесплатного Windows-плеера foobar2000 с плагинами Game Emu Player (foo_gep) и PSF Decoder (foo_psf) достаточно для воспроиз­ведения музыки из игр большинства игровых приставок.

Need for Speed и Epic Pinball

Кстати, плагин ADPCM (foo_adpcm) для того же foobar2000 поддерживает прямое воспроизведение ASF/MUS-файлов из PC-игр серии Need for Speed, а плагин Dumb (foo_dumb) поддерживает воспроизведение музыкальных файлов в нестандартном трекерном формате PSM, использо­ванном в замеча­тельной старой DOS-игре с замеча­тельной музыкой — Epic Pinball, правда в последнем случае звучание по сравнению с игрой заметно отличается в плане стереопанорамы и соотношения громкостей отдельных дорожек.

Музыка невероятно прочно интегрировалась в другие виды искусства и человеческой деятельности. Сегодня ни одно кино или игра не обходятся без саундтрека, радиопередача без джингла, а новый сингл любимой (да и нелюбимой) группы — без выхода сопровождающего клипа. Случается и такое, что "интегрированная" музыка нравится слушателю больше, чем произведение, в которое она интегрирована. В этом случае возникает закономерный вопрос: неужели для того, чтобы услышать зацепившую песню, каждый раз нужно открывать фильм или запускать игру, ее содержащую? Ну нет, лучше мы просто эту песню вытащим.

Самым действенным средством для извлечения понравившейся мелодии (или любого другого ресурса) из Flash-ролика можно считать программу Sothink SWF Decompiler (www.sothink.com, $80, 3,2 Мб). Установив ее, просто выделите нужный ролик в Проводнике и во всплывающем меню выберите пункт Sothink SWF Decomplier. Того же результата можно достичь, сразу запустив программу и найдя ролик в панели Explorer. Теперь в панели Resources отображаются все ресурсы, которые можно вытащить из клипа. Если вас интересует только музыка, откройте вкладку Sound, прослушайте ее пункты и отметьте галочкой те из них, которые хотите извлечь. Если же вы хотите вынуть из ролика какие-то элементы, помимо звуков, просто изучите содержимое других вкладок. Закончив, жмите на Export, укажите путь для сохранения и наслаждайтесь полученным результатом. Еще одна полезная функция SWF Decomplier — экспорт SWF-ролика в "родной" формат FLA.

Если файлы данных подопытной игры находятся в открытом виде, но не читаются вашим проигрывателем, попробуйте открыть их здесь: File > Add File(s) или File > Add Directory, если вы хотите добавить в плейлист все понимаемые программой файлы в заданной папке. Если искомые звуки запакованы в один или несколько больших архивов, воспользуйтесь командой File > Scan File(s). Если вы не знаете, в каком именно файле хранится музыка, проверьте всю папку с игрой при помощи пункта Scan Directory. Опция Recurse Subdirectories влияет на то, будут ли при проверке выбранной директории сканироваться вложенные папки. Вам, скорее всего, понадобится ее включить. Итак, если удача вам улыбнулась, то по завершении сканирования Gap предложит вам список найденных объектов. Чтобы прослушать файл, дважды по нему кликните. Теперь выделите те файлы, которые хотите сохранить, и воспользуйтесь командой File > Save File(s). Если же формат игрового аудио окажется для вашего плейера экзотическим, вам пригодится встроенная в программу возможность конвертирования любого аудиофайла в WAV: File > Convert File(s). В качестве WAV Format можно выбрать либо PCM (чтобы впоследствии пережать его в mp3), либо уже сжимающие кодеки типа OggVorbis и Windows Media Audio.

Ну, а если Game Audio Player вам не помог, переходим к следующему пункту плана. Программа Magic Extractor (magicteam.ag.ru/files.html, 943 Кб, freeware) не ориентирована сугубо на вытаскивание аудио, а предназначена для распаковки игровых файлов целиком. Magic Extractor поддерживает довольно много форматов и в общей сложности может с успехом применяться почти в 200 играх. В левой части окна программы можно задать путь к папке с игрой и выбрать интересующие вас файлы (если вы открыли папку, но файлов для выбора не видите — значит, вам снова не повезло, и ваша игра в не входит в число поддерживаемых). Если же все прошло успешно, в правой части окна появится список запакованных объектов с видом по категориям. Кликнув на нужный файл, вызовите из всплывающего меню пункт "Извлечь выбранный объект". Правда, при распаковке некоторых типов архивов — например, близзардовского MPQ — вы не увидите ни категорий, ни даже расширений содержащихся в них файлов. Придется извлекать все и искать иголку в стоге сена. С другой стороны, с тем же MPQ прекрасно справляется вышеописанный Gap — нужно только задать ему список файлов архива, а эти списки для большинства известных игр, хранящих данные в MPQ, входят в дистрибутив.[pic]

Прямая запись

Компьютерная газета. Статья была опубликована в номере 40 за 2006 год в рубрике soft


Культура модификации игр зародилась ещё в древние времена. Самое раннее, что я помню, это Wolfenstein 3D (1992 год). Если не ошибаюсь, можно было рисовать свои карты, а потом и новых врагов, заменять текстуры и звуки. Главным препятствием в моддинге является разбор неизвестных форматов данных. Оставим моральные аспекты этого явления для других ресурсов, и остановимся на технических сложностях, которые могут возникнуть в этом нелегком деле.

У меня накопилось довольно много историй такого рода, от самых простых, типа разбора простейшего архива, где в одном файле хранятся много тысяч файлов игры, до замены 3D-моделей, исследования и написания нестандартных кодеков звука. Расскажу одну из них, средней сложности.

Допустим, у вас появилось желание заменить определённые фразы в игре, или вообще замахнуться на полную озвучку на каком-нибудь языке, для которого у разработчиков не хватило сил или ресурсов. Казалось бы, надо только записать звук, найти где он находится в игре, и заменить нужные файлы. Но не всегда это бывает просто, например, в последних играх из серии Batman: Arkham используется звуковой движок wwise, который уже довольно давно интегрирован в Unreal Engine.

Я уже не раз сталкивался с UE, но, как известно, коммерческие разработчики имеют возможность полностью менять любую часть кода движка, поэтому почти все игры получаются уникальными с точки зрения структур данных, и это всегда интересно поисследовать.

Для начала посмотрим звуковые файлы. Они как обычно лежат в папке audio и собраны в один большой пакет, с неожиданным расширением .WAD (привет DOOM). При желании даже можно извлечь из него все звуки, но это будет несколько тысяч безымянных файлов, и найти среди них что-то будет весьма проблематично, разве что «вручную» переслушивать их все. Надо сказать, что чаще всего бывает проще. Разработчики, для своего же удобства, оставляют где-нибудь файл со списком фраз. Но это не тот случай.

Логично предположить, что раз сама игра как-то находит нужные звуки и субтитры к ним, значит, эта информация где-то содержится в файлах, надо только её найти. Нигде в папках для локализации тексты не обнаруживаются, значит они разбросаны по отдельным уровням игры, как это часто бывает. Возьмем для примера один из .upk файлов с названием, похожим на уровень, и распакуем его. Благо, инструменты для этого имеются, даже с исходными текстами.

Внутри довольно быстро обнаруживаются файлы типа .RDialogueEvent, в которых невооруженным глазом видны тексты фраз на 11 языках.


Имена файлов похожи на имена исходных звуков. Замечательно, теперь осталось только найти соответствие между ними и звуковыми файлами. Вот только тут и начинаются проблемы. В звуковом пакете конечно есть идентификаторы. Это 30-битный хеш, который всегда используются в wwise для звуков, но к сожалению нигде среди файлов диалога их найти не удаётся. Везде одни непонятные цифры, ничего похожего на ID звука нет, они сразу были бы заметны. С другой стороны, это и понятно, ведь движок не так прост, и нельзя просто так взять и проиграть звуковой файл в игре. Он содержится в аудио-банке, у него множество свойств, накладывающих различные эффекты и т.д.

И тут оказывается, что в каждой папке с диалогом есть файл .akbank — видимо это и есть аудио банк wwise.


Вот у него внутри как раз очень много идентификаторов, перепробовав которые наугад, мы обнаруживаем, что один из них (выделен зеленым) имеется в звуковом пакете. Если мы извлечем оттуда данные по этому идентификатору, то получим некий сегмент из слепленных вместе нескольких звуков. Сконвертируем эти звуки из внутреннего формата wwise в обычные ogg. Да, действительно, в одном из них Бэтмен говорит: «I don't have time for this», а в другом файле ему отвечают. И фразы как раз соответствуют текстам именно этого диалога.

Уже неплохо! В принципе, на этом можно было бы и остановиться: все диалоги разложены по папкам, для каждого из них есть банк со ссылкой на звуковой сегмент. Мы конечно не знаем, где какой файл, но разрезать сегмент на части, послушать и расставить по местам несколько фраз (а их в диалогах обычно бывает всего 3-4 штуки) можно и вручную.

Но мы не ищем легких путей. Разбираться, так до конца. Проверим на всякий случай, вдруг звуки идут прямо по порядку? Конечно же нет, они перепутаны. Как ни крути, где-то должна быть информация о связи звуков в сегменте с текстом диалога. Я довольно долго копался в разных файлах, в надежде что-то обнаружить, но всё бесполезно. Хорошо. Раз такое дело, распакуем все пакеты игры. Это несколько гигабайт, ну ничего, первый раз что-ли? Вот только полный поиск по всем данным игры также ничего не дал. Единственное место, где есть идентификаторы звуков, это аудио банк. Выходит, связь идёт только через него. Ничего не поделаешь, придется лезть внутрь и разбираться, как он устроен.

Теперь, для верности, найдём в игре какой-нибудь диалог, который можно быстро проверять. После эффектного вступления с очаровательной девушкой-репортёршей и маски-шоу, Бэтмена захватывает Hugo Strange. Он говорит пару фраз, начинающихся с «I feel I should thank you», потом уходит, и начинается игра. Именно здесь происходит первое сохранение. Этот момент нам подойдёт.


Найдём фразу злодея в файлах. Она оказывается в пакете OW_E8_Ch1z_Anim. Так сразу и не догадаешься. Внутри всего один диалог, в котором содержится всё начало игры. Это целых 24 фразы, но возможно это даже хорошо, в мешанине кодов легче найти число 24, чем 1 или 2. Итак, мы собирались изучить содержимое .akBank

Формат банков wwise оказывается уже частично исследован. Будем надеяться что этой информации хватит для нашей цели. Судя по началу файла .akbank, в нем находятся сразу 5 аудио банков для 5 языков, первым идёт банк INT (английский) — его мы и посмотрим.


Сначала там имеется непонятная таблица после заголовка ВКРК, потом довольно много нулей (это видно на прошлой картинке), потом сегмент BKHD, и потом сегмент HIRC, в котором, по всей видимости, находится описание всех аудио-объектов. В данном случае у нас их 79 штук (0x4F выделено зеленым). Как утверждает описание, объекты в сегменте идут один за другим, для каждого указан тип (1 байт), потом 32-битная длина, и ID. Длина и содержимое объекта отличается в зависимости от типа.


Объекты тип 2 — это собственно звуки. Тип выделен красным, длина — желтым. У каждого из них указан ID самого объекта (зеленым) и ID звукового файла (фиолетовым), где он содержится. Ниже видно начало следующего объекта такого же типа.


Объекты 3 — звуковые действия, похоже каждое из них это «проиграть звук», с какими-то неизвестными нам параметрами, но в каждом из них есть свой ID (серым) и ID звука, который собственно нужно проиграть (зеленым).

Объекты 4 — звуковые события. Очень короткие записи, в которых только и есть, что ID события (голубым), а также указано, что оно содержит только одно действие, и ID этого самого действия (серым).

Ну вот, похоже у нас имеется 24 цепочки событий следующего вида:

событие —> действие —> звук

Они связаны идентификаторами, и в итоге заканчиваются ссылками на звуковые файлы. Как же найти нужные файлы? Поискав эти коды, мы обнаруживаем их как раз в той самой таблице в начале банка. Видимо это таблица, в которой записано, где внутри звукового сегмента находятся отдельные звуки. И действительно, в ней как раз 24 элемента, и для каждого файла указан тот самый ID, который у нас был в звуковом объекте, смещение относительно начала, и длина. Поздравляем! Теперь у нас полностью прослеживается связь от аудио-событий в банках до отдельных звуковых файлов:


To есть как исходные данные у нас есть ID нескольких событий, по одному для каждой фразы диалога, и для каждого из них мы можем найти звуковой файл. Но как связать их теперь с самим диалогом?

Попробуем поискать где-нибудь эти идентификаторы. В файлах диалогов их опять нет. В папке есть еще какие-то очень короткие файлы .akevent — их тоже 24 штуки. Очевидно, это файлы аудио-событий. Внутри какие-то небольшие числа, у всех одинаковые, от них никакого толку. Единственное, что там есть разного, это как раз id аудио-событий, которые мы нашли в банке.


Опять тупик: есть идентификаторы для всех событий, но связи между ними и текстом диалога нет! На всякий случай сделаем тест: поменяем в нужном файле ID и запустим игру. Да, действительно, Хьюго открывает рот, но ничего не говорит. Значит это именно те данные, по которым игра находит нужный звук. Заодно отмечаем, что субтитр всё равно показывается. Значит тексты диалогов в нашем случае первичны, а от них уже идёт звук.

И тут я вспоминаю, что у движка UE3 есть привычка ссылаться на объекты пакета через их порядковый номер внутри пакета, то есть прямо как они упакованы внутри него. Посмотрим файл экспорта, который образуется у нас при распаковке пакетов:


Номера здесь десятичные, и начинаются с нуля, в игре же они начинаются с 1, поэтому получается, что файлы событий в экспорте идут под номерами 0x35-0x4С. Посмотрим, нет ли их где-то среди диалогов. Начинаем смотреть — и надо же, прямо в начале файла есть этот номер!


Вот и последнее недостающее звено. Заодно рядом обнаруживаем 0x2С — это номер файла банка. В случае если в папке вдруг будет несколько диалогов, их тоже можно будет отличить. Теперь мы полностью знаем, как по тексту диалога найти соответствующий звук.


Такая вот получилась довольно сложная схема взаимодействия. Похоже разработчики решили не заботиться об удобстве, и просто положились на внутренние механизмы движка, что и привело к такому результату в данном случае. А случаи, как я уже сказал, бывают самые разные. Структура файлов и связи между ними могут быть совершенно другие. Здесь у нас от текста диалога шла ссылка на звук. А бывает наоборот, первичным является звук, а к нему по идентификатору находится текст. Или первично событие скрипта игры, а от него идут ссылки и на звук, и на текст. Бывает, что файлы находятся не по имени, а по хешу. Но в любом случае, каким-то образом они все связаны, остаётся только найти эту связь.

В качестве последнего штриха попробуем проверить наши результаты. Найдём файл диалога именно от нужной нам фразы «I feel I should thank you» и заменим в нём 4B на 4C. Запускаем игру, и наш друг Хьюго вместо этой фразы многозначительно произносит: «It will be my legacy, a monument to your failure and if you try to stop me, I guarantee everyone will know your secret.»

Оставим на этом Бэтмена, исследование можно считать законченным. В письменном виде процесс выглядит быстро, но на самом деле каждый этап может сопровождаться долгим созерцанием 16-ричных цифр, без всякой надежды на то, что в какой-то момент они сложатся в осмысленные цепочки, и вы поймёте, что они значат. Но иногда это всё-таки происходит.

Звук в играх значительно влияет на передачу информации, создание определённого настроения, усиление вовлечения и другое.

Разбираемся, какие категории звуков существуют, как работает система восприятия звуков и что нужно учитывать начинающему саунд-дизайнеру.

Основы саунд-дизайна в играх: как звуки влияют на геймплей и определяют опыт пользователей

ВЛАДИМИР СЕМЫКИН

Автор и энтузиаст геймдизайна

Основные категории звуков в играх

Синхронные шумы (foley)

Это звуки, которые записывают для озвучки соответствующих действий. При этом необязательно выполнять то же самое действие, чтобы получить нужный сэмпл.

Например, саунд-дизайнеры Dark Sector озвучивали процесс убийства и расчленения противников при помощи фруктов, овощей и орехов — разработчики их били, ломали, давили, сжимали и так далее. В результате получились «сочные» и запоминающиеся звуки убийств.

Запись звуков для Dark Sector

Этот тип шумов назвали в честь Джека Фоли — специалиста по звуку, который первым записал звук отдельно от видео, а потом наложил его поверх изображения. Ему пришлось использовать такой подход из-за слишком шумных ранних видеокамер, которые заглушали остальные звуки.

Синхронные шумы не обязаны полностью соответствовать действительности — главное, чтобы они звучали достоверно и давали нужное ощущение. Например, саунд-дизайнер The Last of Us Part II Джесси Джеймс Гарсия при создании звука бьющегося стекла придумал целую последовательную систему, чтобы вызвать нужный эффект.

Звуки бьющегося стекла в The Last of Us Part II

Сперва слышен начальный удар, в котором совмещены звуки бьющегося ветрового стекла и короткого электрического разряда. Затем звучит треск, который повторяется в рандомной последовательности для придания реалистичности действия. Потом — низкий глухой удар, позволяющий почувствовать силу этого действия. Последний звук — упавшие на землю осколки. Это наиболее важный момент, который позволяет прочувствовать, что «у каждого действия есть последствия».

Когда Гарсия создавал звук разбивающегося автомобильного стекла, он хотел вызвать страх и усилить ощущение того, что игрока загнали в угол. Поэтому он добавил звук небольшого взрыва, так как неожиданный и резкий звук может застать пользователя врасплох.

Это звуковые эффекты явлений, которых нет в реальности. Например, разнообразные звуки интерфейсов или звук, который появляется во время парирования в Dark Souls.

Пример звуковых эффектов в Dark Souls

Музыка

Применяется, чтобы передать эмоциональное состояние и задать определённое настроение.

Саундтрек может быть линейным и адаптивным. В первом случае музыка играет так, как это задумал композитор. Во втором всё зависит от контекста — мелодия формируется в зависимости от действий, происходящих в игре.

Например, композитор Untitled Goose Game Дэн Голдинг использовал адаптивную музыку, чтобы передать «мышление» гуся — когда птица крадётся, мелодия играет медленно и тихо, а в моменты активных действий музыка становится задорной и быстрой. При этом переход между состояниями происходит абсолютно незаметно — возникает ощущение, что это полностью цельная композиция.

Адаптивный саундтрек в Untitled Goose Game

Чтобы добиться такого эффекта, Голдинг разбил оригинальные композиции на много мелких кусочков и создал систему, которая подбирает нужные фрагменты к текущей геймплейной ситуации. Так система следит за контекстом и включает нужные куски.

По словам композитора, общее количество вариантов композиции, которые могут получиться в игре, равно «числу с 52 нулями». Голдинг создал всю музыку на основе нескольких работ французского композитора Клода Дебюсси.

Подобным образом создавался саундтрек для Control. Композитор Мартин Стиг Андерсен придумал систему, которая тоже соединяет разрозненные фрагменты в единую мелодию. По словам Андерсена, его работа заключалась не в написании саундтрека, а в создании мета-композиции — подхода, при помощи которого игра формирует мелодию.

Эта система учитывает множество параметров: расстояние до ближайшего врага, количество здоровья, общую ситуацию на поле боя и так далее. По словам геймдиректора Control Микаэля Касуринена, особенно сложным испытанием для команды стало создание песни для одного из наиболее впечатляющих эпизодов игры — «Лабиринта пепельницы».

Прохождение «Лабиринта пепельницы»

Во время прохождения этой локации играет композиция Take Control вымышленной группы Old Gods of Asgard. Сложность добавления этой песни в игру заключалась в наличии вокальной партии — разработчикам пришлось делать так, чтобы слова сочетались друг с другом независимо от ситуации в бою. При этом было важно сохранить нужный ритм и смысл текста песни.

Голосовая озвучка

Используется не только в песнях. При помощи озвученных диалогов до игрока доносится значительный объём информации. А озвучка действий помогает передать ощущения, которые испытывает герой: например, крик во время падения с высоты или стон при получении урона.

Очевидно, что при подборе актёров озвучки необходимо учитывать соответствие голоса и персонажа — тембр, дикция и общее звучание должны подходить образу персонажа. При этом голос можно исказить, если нужно озвучить монстра или пришельца.

Пример изменённого голоса в Mass Effect

Эмбиенс

Это длинные звуковые дорожки, которые создают атмосферу и формируют аудиоландшафт окружения. Такие фоновые дорожки должны начинаться и заканчиваться незаметно — конец должен плавно переходить в начало, чтобы создать ощущение непрерывности и не нарушить погружение игрока.

Важно помнить, что у каждого звука должен быть свой приоритет. Например, фоновый звук окружения не должен перекрывать крик противника, который собирается атаковать.

Самое главное в игре — это геймплей, поэтому все элементы должны поддерживать его, а не мешать ему.

Пример эмбиенса в The Elder Scrolls V: Skyrim

Звуки в играх предназначены не только для пользователей — искусственный интеллект противников также может «слышать» внутриигровой шум. Эта особенность наиболее актуальна для жанра стелс-экшенов, в которых геймеры должны вести себя тихо и осторожно, чтобы не привлекать к себе нежелательное внимание.

Чтобы система восприятия звуков работала предсказуемо и адекватно, она должна учитывать множество дополнительных факторов. Например, разные объекты и преграды не пропускают звук, поэтому в закрытых помещениях он не может распространяться по прямой.

В Splinter Cell: Blacklist все противники используют систему TEAS (tactical environment awareness system), которая содержит всю необходимую информацию об окружении. Обычно она используется для передвижения по пространству, но её дополнительная функция заключается в симуляции распространения звука. Враги знают, где находятся препятствия, поэтому понимают, как распространяется звук. Если волна до них доходит, то они реагируют соответственно.

Основы саунд-дизайна в играх: как звуки влияют на геймплей и определяют опыт пользователей

Профессия

Геймдизайнер 🎮

Узнать больше

  • Освоите профессию геймдизайнера
  • Разработаете прототип и проведёте балансировку собственной игры
  • Научитесь составлять полный комплект проектной документации

При этом реакция персонажей зависит от двух факторов — расстояния до источника звука и приоритета. С расстоянием всё понятно — если источник шума находится слишком далеко, то NPC его просто не услышит. Дальность определяется при помощи системы TEAS, которая учитывает геометрию окружения.

Вот так рассчитывается расстояние до источника звука в одном помещении А это пример, на котором показано, как рассчитывается расстояние до источника звука, если он находится в другом помещении

Приоритет влияет на то, на какой источник звука персонаж будет реагировать в первую очередь. Например, если в соседней комнате слышны выстрелы, то NPC не обратит внимания на небольшой шорох рядом с собой.

Но система TEAS из Splinter Cell: Blacklist — пример инструмента, который учитывает лишь дальность источника звука. Эта особенность лежит в основе целой механики, но сама система не может имитировать реальную природу звуковых волн.

Чтобы звук в игре распространялся в соответствии с физическими законами, используется примерно та же технология, что и при трассировке лучей. Технология позволяет просчитывать физически корректное поведение звуковых волн с учётом всех отражений, преломлений и поглощений. Соответственно на распространение звуковых волн влияет не только геометрия окружения, но и материалы, которые по-разному отражают и поглощают их.

Консоли нового поколения уже поддерживают подобную технологию — у Sony за звук отвечает чип Tempest Engine, который рассчитывает все искажения звуковых волн. У Microsoft система построена на основе Project Triton. Обе технологии создают объёмное звучание и работают с любыми колонками и наушниками.

Демонстрация распространения звуковых волн при помощи технологии Microsoft

NPC (Non-Player Character) — персонаж, который не находится под контролем игрока

Советы от игровых композиторов и саунд-дизайнеров

В заключение перечислим некоторые советы от игровых композиторов и саунд-дизайнеров, которые поделились своим опытом с начинающими коллегами.

⟹ По словам аудиодиректора студии Pearl Abyss Хвимана Рю, саунд-дизайнеры должны помнить, что аудио — это симбиотическая, а не автономная часть игры. Музыка и звук должны быть тщательно интегрированы и смешаны со всеми другими компонентами. Как бы ни был хорош отдельный эффект, он не должен отвлекать или затмевать другие аспекты игры. При этом он обязательно должен улучшать пользовательский опыт.

⟹ Разработчик American McGee’s Alice и Spore Джордан Мейнард считает, что звуки отлично подходят для создания крепкой ассоциации с игрой. Мелодии и звуковые эффекты могут стать узнаваемым символом, поэтому саунд-дизайнеры должны стремиться к уникальности.

Фанаты серии The Legend of Zelda вряд ли перепутают звуки из игры с чем-либо ещё

⟹ Композитор Resident Evil 7, Bloodborne, Mass Effect 3, Borderlands 2 Крис Веласко считает, что в рабочем процессе важно выстроить правильные отношения с остальной командой разработчиков. Например, если добавить слишком много микроменеджмента, то это убьёт всю творческую свободу композитора. Лучше, чтобы остальные члены команды лишь описывали, какое ощущение должна вызывать композиция, а не указывали на то, как она должна звучать.

Также Веласко признался, что в работе над саундтреком игры он старается как можно раньше получить концепт-арты — любые визуальные материалы способны передать нужное настроение. А это, в свою очередь, может стать отправной точкой для композитора. Ещё лучше, если будет доступен игровой билд.

⟹ Саунд-дизайнер из Mighty Bear Games Абель Тан советует первым делом продумать весь звуковой ландшафт игры. Часто звуки добавляются в последний момент, из-за чего они работают не так, как надо. Именно поэтому команда должна ещё на ранних этапах разработки решить, как игра будет звучать. Для этого можно отталкиваться от темы и сеттинга игры, её настроения и эмоций, которые должен испытывать пользователь.

Вышеуказанные мнения экспертов можно свести к следующим рекомендациям, которые помогут новичкам избежать многих ошибок:

Учитывайте звуковой аспект: при помощи SFX, foley и других инструментов можно создать эмоциональную связь между пользователем и игрой.

Всегда помните, что звук — это вспомогательный элемент, который никогда не должен мешать геймплею. Даже самую мелодичную композицию стоит приглушить, если она мешает получать значимую внутриигровую информацию.

Постарайтесь начать работу над саунд-дизайном как можно раньше. Параллельная работа над разными частями игры позволяет лучше связать разрозненные аспекты.

Читайте также: