Как корректно вставить свою музыку в игру, используя X-Ray SDK
Любым музыкальным редактором (например, можно использовать Sound Forge 8.0), подготавливаем наши звуковые файлы, они должны быть сохранены в следующем виде: WAV (standard) 44100Гц, Моно, 16 бит. После сохранения выбранных треков в данном виде, их необходимо перевести в формат, поддерживаемый игрой. Для этого нам понадобится X-Ray SDK – официальный пакет разработчика для игры S.T.A.L.K.E.R..
Вы спросите, почему сразу не сохранять треки в формате OGG 44100Hz, Mono? Ответ прост – в комментах OGG-файла должны прописываться параметры распространения звука по игровому миру. Именно по этой причине собственные звуки в игре практически не слышно на определенных расстояниях, именно поэтому в консоль выводятся сообщения о ! Invalid ogg-comment version, file: и т.п. Итак, открываем Actor Editor либо Level Editor. На панели инструментов справа вверху ищем пункт меню Sounds, кликаем его и выбираем Sound Editor (звуковой редактор). Откроется окно редактора звука. Для того, чтобы там появились наши файлы, необходимо скопировать их в папку rawdata\sounds в корне установленного Level Editor’a (например, C:\Program Files\X-Ray SDK\level_editor\rawdata\sounds). В этой папке вполне могут оказаться какие-то «левые» файлы – их можно смело удалить.
Lamp.gif
Заметка
Важно, чтобы копируемые туда файлы были именно в формате WAV!
После того, как вы скопировали свои файлы в папку SDK, в окне Sound Editor’a должен появиться их список.
Sound editor - описание параметров
Sound editor - описание параметров
Выбираем трек и изменяем следующие параметры:
Параметр Описание
Quality = 0.0 Ширина полосы частоты, окружающая центральную частоту (для более плавного угасания звука или его стабильности).
MinDist = 300.0 Расстояние, с которого громкость звука начнет затухать (чем ниже к MaxDist, тем плавнее переход, но Quality нужно увеличить).
MaxDist = 300.0 Максимальное расстояние, на котором звук будет слышен ГГ.
MaxAIDist = 300.0 Максимальное расстояние, на котором звук будут слышать NPC.
BaseVolume = 1.0 Громкость.
А также задается, к какому типу звуков в игре он относится: в нашем случае - undefined:
Game Type Описание
undefined Неопределенный. Ставим этот тип, чтобы NPC не реагировали на музыку и прочее.
Item picking up Подбирание предмета.
Item dropping Выбрасывание предмета.
Item taking Взятие предмета.
Item hiding Убирание предмета.
Item using Использование предмета.
Weapon Shooting Выстрелы оружия. Ставить на все виды оружейного выстрела, взрыва и т.д. Обязательно выставьте BaseVolume = 2.0 и Quality = 1.0, это нормализует громкость.
Weapon empty clicking Щелчок УСМ при отсутствии патрона (осечка).
Weapon bullet hit Звук попадания пули в поверхность.
Weapon recharging Перезарядка оружия. Ставить на все звуки, связанные с перезарядкой оружия.
NPC Injuring Ранение NPC. Ставить на все призывы о помощи в папке help (...я ранен...' или ...ап-птечку...).
NPC Talking Беседы NPC. Ставить на диалоги, истории, анекдоты и гитарную музыку. Это позволит NPC после анекдота вставить коментарий (типа ... хорош... комик, блин).
NPC Attaking Атаки NPC. Ставить на крики при атаке. Это подходит к папке fight. NPC начинают более тактично вести себя при атаках ГГ и других группировок.
NPC dying Смерть NPC.
NPC injuring Ранение NPC.
NPC step Шаги NPC.
NPC eating Приём пищи NPC.
Anomaly idle Постоянный звук аномалей. Только на постоянный звук, на Hit... ставить ИМХО... NPC Injuring т.к другие
NPC начнут обходить данную аномалию в которую влез ГГ или еще кто-либо.
Object breaking Разрушение объекта.
Object colliding Столкновение объекта(ов), удар
Object exploading Взрыв.
World Ambient Мировое окружение. Ставить на все окружающие звуки. Фоновую музыку лучше привязать к undefined.
Остальные параметры не тестировал пока. Нажимаем ОК, снова жмем на панель инструментов, ищем пункт меню Sounds и жмем на кнопку синхронизации с игрой. Ждем.
Если всё было сделано правильно, то в папке gamedata\sounds в директории Level Editor’a (например, C:\Program Files\X-Ray SDK\level_editor\gamedata\sounds\) можно забрать готовые ogg-файлы с правильными комментариями. Но после этого нужно удалить папку Sounds т.к все остальные .ogg станут в категорию (Delete) и вам снова нужно будет закачать папку Sounds из оригинальной gamedata 'ы.
После этого смело кладем наши звуки в папки игры, не забывая удалять старые, а не заменять их.
Ниже перечислены комментарии к музыке, содержащейся в аддоне NLC, согласно каждой локации.
Звук Quality MinDist MaxDist MaxAIDist BaseVolume
Сидорович 1,05 1 5 0,1 1
Прапор 1,05 1 17 0,1 0,7
Боров 1,03 2 10 0,1 1
Сяк 1,03 1 10 0,1 1
Музыка у Бармена 1,00 2 19 0,1 1
Громкоговоритель Долга 0,10 15 75,15 0,1 0,90
Громкоговоритель Свободы 0,09 7 55 0,1 1
Громкоговоритель НИИ Агропром 1,10,12 15 150 0,1 1
Громкоговоритель Кордон (блокпост) 0,40 15 300 0,1 1
Приведенные в таблице цифры – это средние значения, каждый конкретные трек необходимо слушать в игре, потому что изначальная - «своя» громкость у всех треков разная.
Несколько примечаний, почему нельзя делать параметр MaxDist больше, чем он указан в таблице для определенных локаций:
---------------Сидорович-----------
MaxDist = 5.0 (если сделать хотя бы "6", то музыку будет слышно на поверхности над бункером около дерева)
--------------------Прапор---------------------
MaxDist = 17.0 (если сделать больше, то музыка будет мешать слушать разговоры и музыку у костра)
----------------------Боров-------------------------
MaxDist = 10.0 (если делать больше, то музыку из комнаты Борова будет слышно далеко через стену слева,
что неправдоподобно)
-------------------- Бармен ------------------
MaxDist = 19.0 (если сделать больше, то музыку будет слышно на улице через стену)
-------------------- Долг -------------------
MaxDist = 75.15 (если делать расстояние больше, то музыку будет слышно в самом баре, т.е в
подвале, что неправильно)
BaseVolume = 0,90 (если выше то вы просто не будите слышать гитарных песен)
----------------------Свобода---------------------
MaxDist = 55.0 (если сделать больше, то музыка будет мешать слушать разговоры и музыку у костра)
И еще один нюанс, связанный с громкостью музыки: если при маленьком расстоянии MaxDist сделать высокую громкость или MinDist, то процесса затухания громкости будет практически не слышно – при движении ГГ это приведет как к резкому возникновению музыки, так и к такому же резкому ее прекращению. Это очень режет слух. Не забывайте применять Quality..., это всегда смягчит переход звука с резкого на более мягкий. Например: MinDist=10; MaxDist=150 значение Quality =0,30 или 0,40 что значительно смягчит угасание звука.
Шаблоны для начинающих
Для всех переозвученных тем, затрагивающих окружающую среду (это относится к папкам ambient, nature: ветра, амбиента, электричества, new_wind-ы (любые) или крики, эхо и прочее типа rnd_outdoor):
Quality = 1.00
MinDist = 20.00
MaxDist = 150.00
MaxAIDist = 50.00
BaseVolume = 1.0
Game Type: =World Ambient
Для звуков дождя и порыва ветра:
Quality = 1.00
MinDist = 10.00
MaxDist = 300.00
MaxAIDist = 300.00
BaseVolume = 1.50
Game Type: =World Ambient
Для скрипов и мелких эффектов:
Quality = 1.00
MinDist = 1.20
MaxDist = 50.00
MaxAIDist = 20.00
BaseVolume = 1.0
Game Type: =World Ambient
Для голоса NPC:
Quality = 1.00
MinDist = 10.00
MaxDist = 300.00
MaxAIDist = 300.00
BaseVolume = 1.50
Game Type: ставим в зависимости от категории
Важное замечание
После того, как рассортируете звуки по папкам, не забудьте, что речь NPC должна находиться не прямо в \sounds\, а в \character_voice\, а то потом будете несколько дней рыть, где вы ошиблись и корректны ли звуки вообще.
Тестирование, тестирование и еще раз тестирование?
Удачного моддинга!
Авторы:
Данное руководство было написано AMK Team & Сяк, Сахаров, а может и еще кем.
Все равно всем участникам данного текста огромное спасибо.
Немного статью дополнил и поправил loxotron.