Это тема поддержки статьи: Добавление своей музыки в игру S.T.A.L.K.E.R. используя X-Ray SDK. Оставляйте здесь свои комментарии и вопросы.
Toggle %s Последние сообщения тем
Тема | Форум | Posted by | Дата |
---|---|---|---|
|
|
Добавление своей музыки в игру S.T.A.L.K.E.R. используя X-Ray SDK
Создал:
RUS_D
, 25 Sep 2014 16:27
6 replies to this topic
#1
Posted 25 September 2014 - 16:27
#2
Posted 25 September 2014 - 19:32
Вспомогательные программы для работы со звуком
S.T.A.L.K.E.R. Sound Attribute Viewer and Tweaker
Эта прога позволяет просматривать и, что самое главное, редактировать настройки дальности слышимости звуков в Сталкере без использования СДК. Крайне удобно, когда нужно подобрать дальности слышимости или громкость без необходимости после каждой правки каждый раз прогонять звук через СДК. Один раз прогнал - и дальше настраиваешь уже в этой проге. Прога импортная, поэтому все на инглише. Но там все просто - разберетесь.
Скачать : [attachment=4404:SAVandT_1.1.7z]
FIX - S.T.A.L.K.E.R - ! Invalid ogg-comment version, file + ! Missing ogg-comment
Программа для игры S.T.A.L.K.E.R Тень Чернобыля (возможно и остальных версий) - "автоматическая" правка "ошибки" комментариев в файлах ogg,
т.е. исправления ошибок в log файле типа:
! Invalid ogg-comment version, file: \s.t.a.l.k.e.r. shadow of chernobyl\gamedata\sounds\ambient\rnd_outdoor\rnd_krik9.ogg ! Missing ogg-comment, file: \s.t.a.l.k.e.r. shadow of chernobyl\gamedata\sounds\characters_voice\human_01\freedom\fight\hit\hit_1.ogg
Ссылка на скачивание (исходники внутри) : [attachment=4403:OggCommentFix.zip]
как работать?
разработка в Code::Blocks 10.05
сборка в mingw32-gcc version 4.8.1 (GCC)
S.T.A.L.K.E.R OGG Comment Fixer v.0.06 build 2014.0324
oggcommentfix.exe - fix comment in ogg file(s)
Usage: oggcommentfix -<command><value>...--<command>=<value>...[file.ogg]
Commands:
-l,--log_file - включение лога, и вывод всех действий в него (имя по умолчанию oggcommentfix.log)
-C,--correct - включение автоматической корректировки ogg-comment
по умолчанию устанвливается:
Quality: 3
MinDist: 1.00
MaxDist: 24.00
MaxAIDist: 24.00
BaseVolume: 1.00
GameType:World ambient .
-Cq;mid;mad;maid;bv;gt , --correct=q;mid;mad;maid;bv;gt - корректировки ogg-comment c параметрами: Quality;MinDist;MaxDist;MaxAIDist;BaseVolume;GameTypes
-CHxxxxxxxxxxxxxxxx , --correcthex=xxxxxxxxxxxxxxxx - корректировки ogg-comment в виде HEX дампа xxxxxxx, размером 48 символов (т.е. 24 байта)
-D,--delete - удаление файла если ogg-comment есть и "он правильный" , специально для подготовки апдейтов и патчей.
-F,--folder - сканирование каталога (по умолчанию откуда запустили)
-I,--info - вывод большего кол-ва информации.
-IH - также выводит ogg-comment в HEX формате.
-Y,--yes - позволяет корректировать, если ogg-comment - уже есть.
-h,--help - собственно сама помощь.
===
Известные баги:
- программа не работаем (ругается на открытие файла), если в пути есть пробел.
- протокол работы (ключ -l) перезаписывается поверх.
- программа не дает корректировать, если .ogg содержит корректный ogg-comment (это фича, а не баг), нужен ключ -Y
===
Техническое описание механизма корректировки :
т.к. пока еще не доработан механизм корректной вставки ogg-comment, используются внешние утилиты
1. запускается `VorbisComment.exe -t "TRACKNUMBER=123456789012" -w имя_файла.ogg` , удаляем все комментарии и вставляется только один, длинной 24 байта.
2. поверх комментария TRACKNUMBER=123456789012 , записывается готовая "HEX матрица" .
3. полируем (корректируем) чек-суммы страниц в выходном .ogg файле.
===
Примеры работы:
1. копируем каталог звуков (D:\S.T.A.L.K.E.R. Shadow of Chernobyl\gamedata\sounds\) во временный каталог (D:\gamedata_tmp\sounds\)
2. запускаем программу с ключами ведения лога и указываем каталог со звуками:
> oggcommentfix.exe -l -FD:\gamedata_tmp\sounds\
получаем oggcommentfix.log
---
file:D:\gamedata_tmp\sounds\ambient\rnd_outdoor\rnd_shooting_6.ogg size: 73402
Q: 3 MinD: 30.0000 MaxD: 200.0000 MaxAID: 150.0000 BsVl: 1.0000 | World ambient
file:D:\gamedata_tmp\sounds\ambient\rnd_outdoor\rnd_shooting_9.ogg size: 33722
Q: 3 MinD: 30.0000 MaxD: 200.0000 MaxAID: 150.0000 BsVl: 1.2500 | World ambient
file:D:\gamedata_tmp\sounds\ambient\rnd_outdoor\rnd_wind_tree.ogg size: 42237
Q: 3 MinD: 30.0000 MaxD: 200.0000 MaxAID: 200.0000 BsVl: 1.2500 | World ambient
file:D:\gamedata_tmp\sounds\ambient\siren1.ogg size: 163983
No ogg-comment or invalid version.
file:D:\gamedata_tmp\sounds\ambient\siren2.ogg size: 163983
No ogg-comment or invalid version.
file:D:\gamedata_tmp\sounds\ambient\sparks1.ogg size: 53114
Q: 3 MinD: 0.2000 MaxD: 4.7500 MaxAID: 4.7500 BsVl: 1.1500 | World ambient
---
Сокращения указанных параметров :
Q: - Quality
MinD: - MinDist
MaxD: - MaxDist
MaxAID: - MaxAIDist
BsVl: - BaseVolume
| World ambient - GameType
Инструкция по добавлению звуков в S.T.A.L.K.E.R. Clear Sky
[attachment=4405:S.T.A.L.K.E.R. Clear Sky - Звуки формата ogg в игре.zip]
Audacity
описание / ссылки
«Бесплатный многоплатформенный редактор звуковых файлов, ориентированный на работу с несколькими дорожками.
Редактор Audacity обеспечивает выполнение следующих функций:
-импорт и экспорт файлов WAV, MP3, Ogg Vorbis, FLAC и других форматов;
-запись с микрофона, линейного входа и других источников;
-запись до 16 каналов одновременно (необходима многоканальная звуковая карта);
-эффекты и расширения как в комплекте поставки, так и устанавливаемые отдельно;
-индикаторы уровня записи и воспроизведения;
-изменение темпа с сохранением высоты тона;
-изменение высоты тона с сохранением темпа;
-удаление шума по образцу;
-воспроизведение множества дорожек одновременно;
-сведение дорожек с разными качественными характеристиками с автоматическим преобразованием к заданным характеристикам проекта в режиме реального времени;
-результаты могут сохраняться во множество форматов, обеспечиваемых библиотекой libsndfile.»
Stalker Mus Creator 1.1
«Утилита написана специально под Сталкер, позволяет добавлять определенные музыкальные композиции (т.е. гитарную музыку) каждой группировке и работать со звуковыми файлами.»
[attachment=4406:stalk_mus_creator.zip]
Edited by Viktor, 25 September 2014 - 23:24.
#3
Posted 25 September 2014 - 20:09
После того как вы скопировали свои файлы в папку SDK в окне Sound Editor’a должен появиться их список. Выбираем трек и изменяем следующие параметры:
читать
MinDist = 300.0 - расстояние, с которого звук начнет затухать (практически это и есть громкость звука)
MaxDist = 300.0 - максимальное расстояние, на котором звук будет слышен ГГ
MaxAIDist = 300.0 - максимальное расстояние, на котором звук будут слышать NPC
BaseVolume = 1.0 - громкость
А также задается к какому типу звуков в игре он относится:
Game Type:
- undefined – неопределенный, на них NPC не реагируют
- Item picking up - подбирание предмета
- Item dropping - выбрасывание предмета
- Item taking - взятие предмета
- Item hiding - убирание предмета
- Item using – использование предмета
- Weapon shooting – выстрел оружия
- Weapon empty clicking - щелчок УСМ при отсутствии патрона
- Weapon bullet hit - звук попадания пули в поверхность
- Weapon recharging - перезарядка оружия
- NPC dying - смерть NPC
- NPC injuring - ранение NPC
- NPC step - шаги NPC
- NPC talking - разговор NPC
- NPC attacking - атака NPC
- NPC eating - приём пищи NPC
- Anomaly idle – звуки аномалий
- Object breaking - разрушение объекта
- Object colliding - столкновение объекта(ов), удар
- Object exploading - взрыв
- World ambient - звуки окружающего мира
Остальные параметры не трогаем. Нажимаем ОК и ждем окончания синхронизации звуков. Если всё было сделано правильно, в папке gamedata\sounds в директории Level Editor’a (например, c:\Program Files\X-Ray SDK\level_editor\gamedata\sounds\) можно забрать готовые файлы ogg с валидными комментами. После этого смело кладем наши звуки в папки игры.
Для информации: в файле m_stalker.ltx прописываются коэффициенты реакции NPC на конкретную группу звуков (чем больше коэффициент - тем больше паника):
[stalker_sound_perceive]
weapon = 2.0; 0.75; 10 коэффициент усиления приоритета\силы звука
item = 0.2; коэффициент усиления приоритета\силы звука
npc = 1.0;1;2 коэффициент усиления приоритета\силы звука
anomaly = 0.5; коэффициент усиления приоритета\силы звука
world = 0.2; коэффициент усиления приоритета\силы звука
Таким образом, каждому звуку в игровом мире можно задать требуемые параметры и определить реакцию на него NPC.
В качестве примера приведем таблицу настроек звука в X-Ray SDK, которые были использованы в S.T.A.L.K.E.R's sound remake mod v 4.0.
Звук Min Dist Max Dist Max AI Dist Base Volume Game Type
Перезарядка оружия 1 12 5 1,00 Weapon recharging
Доставание (убирание)
оружия 1 12 5 1,00 Weapon recharging
Выдергивание чеки гранаты 1 12 5 1,00 Weapon recharging
Удар бойка УСМ (осечка) 1 8 3 1,00 Weapon empty clicking
Все взрывы, кроме ручных гранат (ВОГ-25, бочки и т.д.) 20 200 100 1,00 Weapon shooting
Взрывы ручных гранат 30 200 100 1,30 Weapon shooting
Звук двигателя вертолета 40 350 100 1,00 Undefined
Пуск ракеты с вертолета 50 300 100 1,00 Weapon shooting
Звук двигателя ракеты 15 150 70 1,00 Weapon shooting
Крупнокалиберный пулемет 25 500 150 1,20 Weapon shooting
Свист пуль 1 8 3 1,00 NPC attacking
Попадание пули по бетону 3 15 5 1,00 Weapon bullet hit
Попадание пули по твердой поверхности 3 20 7 1,00 Weapon bullet hit
Попадание пули в грунт 2 12 4 1,00 Weapon bullet hit
Попадание пули по стеклу 3 15 5 1,00 Weapon bullet hit
Попадание пули по металлу 5 25 10 1,00 Weapon bullet hit
Попадание пули в песок 2 10 3 1,00 Weapon bullet hit
Попадание пули в дерево 3 15 5 1,00 Weapon bullet hit
Попадание пули по поверхности воды 3 12 4 1,00 Weapon bullet hit
Попадание пули по деревянному предмету 2 12 5 1,00 Weapon bullet hit
Падение тела 2 10 5 1,00 NPC dying
ЗВУКИ ВЫСТРЕЛОВ
Звук Min Dist Max Dist Max AI Dist Base Volume
АН-94 «Абакан» 17 400 100 1,30
АН-94 «Абакан» ПБС 3 50 20 1,00
АК-74 18 400 110 1,45
АК-74 ПБС 3 50 20 1,00
АКСУ-74 19 400 115 1,50
АКСУ-74 ПБС 3 55 22 1,00
АКСУ-74 м1 2 30 10 1,00
M-92F “Beretta” 12 250 65 2,00
M-92F “Beretta” ПБС 1 30 15 1,00
БМ-16 «Обрез» 20 300 110 2,00
“Colt” M1911A1 13 280 70 2,00
“Colt” M1911A1 ПБС 1 33 17 1,00
“Colt” M1911A1 м1 1 15 5 1,00
“Desert Eagle” 17 400 100 2,00
“Desert Eagle” м1 20 450 115 2,00
“Desert Eagle” (м1) ПБС 3 50 25 1,00
FN-2000 17 400 100 1,40
FN-2000 ПБС 2 50 18 1,00
Форт-12 12 240 62 2,00
Форт-12 ПБС 1 28 14 1,00
HK G-36 16 380 95 1,30
HK G-36 ПБС 3 50 18 1,00
“Gauss” 10 160 50 1,70
ГП-25/30 8 200 50 1,00
ОЦ-14 «Гроза» 17 350 90 1,40
ОЦ-14 «Гроза» м1 18 400 110 1,50
ОЦ-14 «Гроза» ПБС 2 25 12 1,00
ОЦ-14 «Гроза» м1 ПБС 2 45 18 1,00
FN “Browning” HPSA 12 250 65 2,00
FN “Browning” HPSA ПБС 1 30 15 1,00
Нож 1 3 1 1,00
“Enfield” L85A2 16 400 95 1,35
“Enfield” L85A2 ПБС 3 50 18 1,00
“Enfield” L85A2 м2 1 25 10 1,00
LR-300 18 420 110 1,50
LR-300 ПБС 3 50 20 1,00
LR-300 м1 1 25 10 1,00
М-203 8 200 50 1,00
HK MP5 (м1) 12 250 60 1,75
HK MP5 (м1) ПБС 1 25 12 1,00
HK MP5 м2 1 17 5 1,00
ПБ 1 17 4 1,00
ПМ 12 240 60 2,00
ПМ ПБС 1 28 14 1,00
РГ-6 8 200 50 1,00
РПГ-7 15 400 100 1,00
Sig P-220 14 300 70 2,00
Sig P-220 ПБС 1 33 17 1,00
Sig SG-550 15 370 93 1,35
Sig SG-550 ПБС 3 50 18 1,00
SPAS-12 17 280 90 2,00
СВД 20 450 140 1,50
СВУ 5 120 35 1,00
ТОЗ-34 18 300 100 2,00
HK USP. 45 14 300 70 2,00
HK USP. 45 ПБС 1 33 17 1,00
АС «Вал» 1 25 8 1,00
ВСС «Винторез» 1 25 8 1,00
Wincheaster W-1300 18 300 105 2,00
Walther P-99 (м1) 13 270 67 2,00
Walther P-99 (м1) ПБС 1 25 13 1,00
АКМ 18 400 115 1,40
АКМ ПБС 3 50 20 1,00
FN P-90 12 250 63 1,60
FN P-90 ПБС 2 30 12 1,00
ПКМ 20 450 150 1,60
Сайга-12К 18 300 100 2,00
Огнемет АМК 5 80 35 1,20
Как добавить новую озвучку для группировки
Звуки группировок лежат в папке «sounds\characters_voice». От Вас требуются маломальские познания в английском языке. Есть 2 различных голоса «human_01», «human_02» - без эффекта дыхательной маски и один приглушенный - «human_03».
Далее, в каждой из этих папок фразы и музыка раскиданы по группировкам. Звуки, которые НПС будет использовать в игре прописываются в файлах, лежащих в папке «gamedata\config\gameplay». А именно в characters_desc_*********, где прописывается директория, откуда НПС будут брать звуки, когда заспаунятся, но нас интересует только эта строка:
<snd_config>characters_voice\human_01\newbie\</snd_config>
Это я говорю на тот случай, если Вы захотите не заменять оригинальные звуки, а добавить свои. Нужно просто послушать, например, папку sounds\characters_voice\human_01\newbie, разобраться какие звуки соответствуют той или иной ситуации в игре, и заменять их своими по аналогии. Наиболее часто используемая НПС папка, это папка «fight», разберем на ее примере что за что отвечает:
attack – звуки нападения НПС;
backup – звуки, используемые при отходе назад;
cover_fire – звуки, когда НПС хочет прикрыть огнем;
death – смерть НПС;
detour – просьба прикрыть НПС;
enemy – звуки, используемые НПС при обнаружении противника;
enemy_down – звуки, используемые НПС при убийстве противника;
enemy_hit – звуки, используемые НПС при ранении противника;
fire – звуки нападения НПС;
friend_hitted – реакция НПС на ранение союзника;
friendly_fire – реакция НПС на дружественный огонь;
grenade – реакция НПС на брошенную гранату;
hit – звуки ранения НПС;
searching_enemy – звуки, используемые НПС при поиске противника;
threat – звуки нападения НПС;
tolls – реакция НПС на смерть союзника.
Далее, Вы создаете свою папку звуков (о том, как переводить звук в формате WAV в формат OGG при помощи X-Ray SDK было написано выше), назовем ее «characters_voice\human_04\newbie», заменяете в файле «character_desc_escape.xml», к примеру, вот этот профиль новичка:
<specific_character id="esc_stalker_novice_default2" team_default = "1">
<name>GENERATE_NAME_stalker</name>
<icon>ui_npc_u_green_stalker_2</icon>
<bio>esc_stalker_novice_bio</bio>
<class>esc_stalker_novice</class>
<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<rank>127</rank>
<reputation>-8</reputation>
<money min="200" max="600" infinitive="0"/>
<snd_config>characters_voice\human_04\newbie\</snd_config>
<crouch_type>-1</crouch_type>
<visual>actors\novice\green_stalker_2</visual>
<supplies>
[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
device_pda \n
device_torch \n
sigaret \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
</supplies>
#include "gameplay\character_criticals_3.xml"
<start_dialog>hello_dialog</start_dialog>
<actor_dialog>neitral_treasure_2_dialog</actor_dialog>
#include "gameplay\character_dialogs.xml"
</specific_character>
и.........начинаем новую игру с новыми звуками! Да, новую игру начинать ОБЯЗАТЕЛЬНО, иначе ничего не изменится.
P.S. В названии каждого звукового файла стоит число « _1», « _2» и т.д. Эти числа не являются ограничением количества звуковых файлов, которые могут находиться в той или иной папке. К примеру, если Вы захотели добавить собственных гитарных композиций, а стандартные заменять тоже не хочется, то Ваши гитарные композиции должны начинаться с номера «12», т.е. в папке «sounds\characters_voice\human_01\newbie\music» находятся 11 оригинальных треков в формате OGG, Ваши треки должны тогда называться: «guitar_12», «guitar_13», «guitar_14» и т.д., можно хоть 100 штук добавить.
Небольшое добавление.
Если вы хотите добавить новый звук и вызывать его из логики, то действовать придется немного по другому.
Понадобятся файлы sound_theme.script и script_sound.ltx.
Открываем первый файл.
Находим строку "theme = {".
После { идет перечисление всех звуков.
Добавляем туда наш новый звук:
название = {min_snd = 10, max_snd = 20, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}
min, max думаю объяснять не нужно. Остальные данные я не трогал.
Да! Лучше добавляйте звук в самый конец этого списка, и не забывайте, что все звуки тут идут через запятую. Это важно, ибо не проставив одну единственную запятую игра будет вылетать.
Далее открываем script_sound.ltx и добавляем в любое место файла наш новый звук:
[название_seq]
stalker = 0,scenario\marsh\мой_звук
Тут тоже думаю все понятно: название и путь до звука.
Вот и все. Теперь можете использовать свой новый звук в логике (к примеру НПС подошел к точке, проиграл звук с анимацией, пошел дальше).
Удачного моддинга!
#4
Posted 25 September 2014 - 20:12
Добавление в главное меню нескольких фоновых мелодий
Для реализации нам понадобится пара-тройка музыкальных треков (wasteland2_1,wasteland2_2...), предварительно разбитых на два моно канала и переведенных в OGG формат с частотой 44kHz(64kbps),моно. В этом может помочь Adobe Audition 3.0,Sound Forge 9.0,или любой другой аудиоредактор.
Также есть еще один вариант: Если уж очень лень - Музычку можно вытащить из различных МОДов, обычно в каждом, разработчики, как правило, засовывают новую музыку, которая лежит в "gamedata\sounds\music".
И так берем наши OGG треки и засовываем, в выше указанную папку, gamedata\sounds\music, не забывая про то, что каждая дорожка должна состоять из левого и правого моно канала "wasteland2_1_l" - левый канал и "wasteland2_1_r" - правый!
Причем количество дорожек не ограничено .
Далее нам понадобится ui_mm_main.xml, который лежит в "gamedata\config\ui" и находим там вот такой текст:
<menu_sound random="0" > <menu_music>music\wasteland2</menu_music> <!-- <menu_music>music\guitar_1</menu_music> <menu_music>music\guitar_2</menu_music> <menu_music>music\guitar_3</menu_music> --> </menu_sound>
======================================================
И проводим с ним некоторые манипуляции:
1. - В строчке
======================================================
<menu_sound random="0" >
======================================================
и цифру "0" меняем на число соответствующие количеству наших муз. композиций, правда на одну единицу больше.
2. - Далее после строчки
======================================================
<menu_music>music\wasteland2</menu_music>
======================================================
ниже, на ее примере прописываем новые композиции
======================================================
<menu_music>music\wasteland2_1</menu_music> <menu_music>music\wasteland2_2</menu_music>
======================================================
И в конечном итоге получится примерно так
======================================================
<menu_sound random="7" > <menu_music>music\wasteland2</menu_music> <menu_music>music\wasteland2_1</menu_music> <menu_music>music\wasteland2_2</menu_music> <menu_music>music\wasteland2_3</menu_music> <menu_music>music\wasteland2_4</menu_music> <menu_music>music\wasteland2_5</menu_music> <!-- <menu_music>music\guitar_1</menu_music> <menu_music>music\guitar_2</menu_music> <menu_music>music\guitar_3</menu_music> --> </menu_sound>
======================================================
Сохраняем. И теперь при каждом входе в главное меню у нас будут играть рандомно 6 музыкальных композиций!
#5
Posted 26 September 2014 - 07:12
Как правильно прописать путь для замены музыки на базе Свободы и Долга ?
Закинул в папку C:\Program Files (x86)\X-Ray SDK\level_editor\rawdata\souds файл WAV 44100Гц, Моно, 16 бит.
В СДК выставил параметры для громкоговорителя Свободы
0,09 7 55 0,1 1
Нажал ОК, снова на панели инструментов пункт меню Sounds на кнопку синхронизации с игрой. Получился какой-то странный файл с расширением ТНМ. Где-то накосячил, а где - не пойму...
#6
Posted 26 September 2014 - 14:35
Создал папку C:\Program Files (x86)\GSC World Publishing\S.T.A.L.K.E.R\gamedata\sounds\characters_voise\scenario\megafon_fri\ , туда закинул треки, которые конвертировал в формат WAV 44100Гц, Моно, 16 бит. и прогнал через СДК по настройкам для громкоговорителя Свободы.
Треки переименовал так megafon_music_1 и т.д. , но все равно играет старая музыка.
Что я не так делаю ?
#7
Posted 26 September 2014 - 16:46
У меня в Народной солянке играет именно твой файл.
Кидал по пути /gamedata/sounds/characters_voice/scenario/megafon_fri/
В чистом сталке этой папки нет, соответственно и скриптов нет (как в других модах надо смотреть)
Только папка megafon