Звуки и звуковое окружение |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Звуки и звуковое окружение |
19.08.2012, 13:38
Сообщение
#241
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Регистрация: 22.02.2006 |
Введение Что такое Sound Environment в STALKERе? Это принудительное изменение привычных звуков в определенных зонах. Например, логично, если зайдя в подвал/пещеру/под мост мы начнем слышать эхо от выстрелов/перезарядки/своих шагов и т.п. Сами зоны ставятся вручную в SDK и в дальнейшем добавляются в папку уровня в виде файла level.snd_env (или как level.sound_environment для старых билдов). Все билды от 18xx до ТЧ/ЧН поддерживают Sound Environment. Из движка ТЧ его никто не вырезал. Но есть проблемы с реализацией: Первая проблема в том, что Sound Environment работает только при включенном EAX. Вторая проблема в том, из OpenAL-библиотек (OpenAL32.dll+wrap_oal.dll) начиная где-то с 2006 года вдруг исчезла поддержка EAX для звуковых карт за предыдущие годы. Третья проблема в том, что EAX даже если поддерживается звуковухой, нормально работает/определяется не со всяким драйвером. Четвертая проблема в том, что в ТЧ в опциях звука разрешено ставить галку на EAX в любом случае, то есть игра не проверяет включен ли он на самом деле, что приводит к самообману, если не читать лог. Пятая проблема в том, что в финалке ТЧ этот самый Sound Environment зачем-то был вырезан на большинстве уровней. Остался только где-то на:
EAX FIXX ver 3 Что нового добавлен !!!_dsound_software для принудительного включения Generic Software добавлен !!!_backup для восстановления на случай серьезных проблем добавлены варианты 15-19 добавлен !!!_sound_fixx_for_cs_cop добавлен !!!_sound_fixx_for_shoc_10004 добавлен !!!_sound_fixx_for_shoc_10006 обновлен eax.dll до v4.0.1.0 добавлена поддержка ЗП (при использовании !!!_sound_fixx_for_cs_cop) Ссылка: Данная сборка (EAX FIXX) предназначена для включения поддержки EAX игрой, а следовательно и Sound Environment как для существующих уровней, так и для перспективных модов, в первую очередь для ТЧ. Текущая сборка предназначена для билдов от 18xx до ТЧ/ЧН. Сборка состоит из пронумерованных папок с dllками, где в разных комбинациях встречаются портированные из билдов/ТЧ/ЧН OpenAL-библиотеки всевозможных версий. Каждая папка включает:
Установка 1. В user.ltx один раз правим (или через консоль вводим) команды: snd_efx on (разрешаем игре использовать эффекты) snd_targets 24 (старые варианты dllок могут ругаться, если число больше. Можно после тестов выставить 32.) snd_volume_eff 1 (максимальная громкость эффектов) snd_volume_music 0 (музыку отключаем, чтобы не мешала) snd_volume_master 1 (общая максимальная громкость, команда для билдов 18xx) 2. Запускаем игру (билд от 18xx до ТЧ/ЧН/ЗП) и смотрим, что написано в консоли или логе в двух строчках, определяющих EAX. Если написано: * sound: EAX 2.0 extension: present * sound: EAX 2.0 deferred: present значит, скорее всего, и так все в порядке, EAX работает. Дальнейшие эксперименты можно не проводить. Если написано: * sound: EAX 2.0 extension: absent * sound: EAX 2.0 deferred: absent Или только в одной строчке absent, значит, EAX не работает или может глючить, и можно поэкспериментировать. 3. Куда-нибудь бекапим папку bin. Если используем билды, пункт 4 пропускаем. 4. Если используем ЧН/ЗП, то в папку bin суем все из !!!_sound_fixx_for_cs_cop. Если используем ТЧ 1.0004, то в папку bin суем все из !!!_sound_fixx_for_shoc_10004. Если используем ТЧ 1.0006, то в папку bin суем все из !!!_sound_fixx_for_shoc_10006. 5. Проверяем. Для ЧН/ЗП в случае отсутствия EAX или проблем со звуком, в игре меню звуковых опций меняем Generic Hardware на Generic Software или наоборот, перезапускаем игру, проверяем снова. Для билдов/ТЧ в случае отсутствия EAX или проблем со звуком, копируем dsound.dll из !!!_dsound_software в папку bin. Звук должен принудительно перейти в режим Generic Software. Для ЧН/ЗП, если в опциях не переключается (Generic Hardware/Generic Software), можно тоже попробовать с dsound.dll. 6. Если не заработало, начинаем полномасштабное тестирование: (Для ЧН/ЗП полное тестирование можно проводить дважды - сначала с выбранным в опциях вариантом Generic Hardware, потом с Generic Software). (Для билдов/ТЧ полное тестирование можно проводить дважды - сначала обычно, потом через !!!_dsound_software). Берем все dllки из папки 01_18xx-22xx_default и кладем в папку bin. Запускаем игру и читаем в логе/консоли строчки о EAX. Далее берем dllки из папки 02_18xx-22xx_tweaked1, проделываем то же самое, и так далее, проверяем все варианты. Запоминаем, где включился EAX (пишет present в обеих строчках). Если EAX включился в нескольких вариантах, оставляем тот, где даты файлов новее, или звук кажется лучше. Возможны случаи, когда в логе в одной строчке написано present, в другой absent. Скорее всего Sound Environment не попрет. Некоторые варианты могут оказаться несовместимы с конкретным билдом/игрой/системой и во время тестов привести к вылету/зависанию игры при запуске. При включенном EAX с разными версиями возможно появление новых мелких глюков, например щелчков. Нет гарантии, что на разных билдах/играх будет корректно работать один и тот же вариант. Если в результате тестов в ТЧ/ЧН/ЗП звук ухудшился, или игра не запускается - удалите dsound.dll (если устанавливали) и восстановитесь из !!!_backup. Что делать, если не помогло 1. Если звуковуха отдельная, попробовать обновить ее драйвера, обращать внимание на поддержку EAX. Драйверов может быть несколько вариантов, в том числе неофициальные. 2. Если звуковуха встроенная, например Realtek, попробовать обновить ее драйвера. Часто на сайтах поддержки материнских плат лежат устаревшие варианты. То есть лучше искать драйвера непосредственно от производителя чипа звуковухи. Также можно погуглить на тему проги "Realtek 3D SoundBack", может пригодится. 3. За 20 баксов приобрести простенький Sound Blaster Live/5.1. В зависимости от модели/операционной системы не исключены проблемы с поиском драйверов, но по крайней мере эти звуковухи должны поддерживать EAX с одним из вариантов фикса. 4. Скачать Как самостоятельно в SDK создать Sound Environment? Допустим, у нас уже открыт какой-то уровень. Edit Mode -> Sound Env -> Ставим точку на карте. Появится кубик. Правой кнопкой заходим в его свойства. Environment Inner ставим long_corridor (например). Environment Outer ставим open_space. Далее зумим/вращаем наш кубик, чтобы заполнить нужное помещение. Когда наставили достаточно кубиков, говорим Compile -> Make Game. И суем готовый level.snd_env в игру в папку уровня. EAX params help (eng) Код Environment // sets all listener properties Size // environment size in meters Diffusion // environment diffusion Room Room // room effect level at low frequencies RoomHF // room effect high-frequency level re. low frequency level Distance Effects RoomRolloffFactor // like DS3D flRolloffFactor but for room effect AirAbsorptionHF // change in level per meter at 5 kHz Reflections Reflections // early reflections level relative to room effect ReflectionsDelay // initial reflection delay time Reverb Reverb // late reverberation level relative to room effect ReverbDelay // late reverberation delay time relative to initial reflection Decay DecayTime // reverberation decay time at low frequencies DecayHFRatio // high-frequency to low-frequency decay time ratio В обсуждении вопроса принимали участие: Lyoko774, РСФСР, MacroN, Veresk Сообщение отредактировал RayTwitty - 09.12.2017, 21:15 |
 
|
|
|
|
15.03.2019, 21:25
Сообщение
#242
|
|
Почти Мастер Репутация: 75 Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 |
Marafonec, вот.
код Код global_ns_fix2.asm ;Фикс пропадания звука дождя при загрузке уровня. ;if (g_pGamePersistent->pEnvironment){ ; CEffect_Rain* rain = g_pGamePersistent->pEnvironment->eff_Rain; ; if (rain) ; rain->state = CEffect_Rain::stIdle; ;} align_proc SoundRain_fix proc mov edx, ds:g_pGamePersistent mov eax, [edx] ASSUME eax:ptr IGame_Persistent, ecx:ptr CEnvironment, edx:ptr CEffect_Rain mov ecx, [eax].pEnvironment .if (ecx) mov edx, [ecx].eff_Rain .if (edx) and [edx].state, CEffect_Rain@stIdle .endif .endif ASSUME eax:nothing, ecx:nothing, edx:nothing jmp return_SoundRain_fix SoundRain_fix endp xrgame_stubs.asm ;---------------------------------------------------------------- ;Фикс пропадания звука дождя при загрузке уровня. org 101A793Ch - shift; 15 bytes jmp SoundRain_fix db 10 dup (90h) return_SoundRain_fix: ;---------------------------------------------------------------- Естественно высокоуровневый асм. Сообщение отредактировал NanoBot-AMK - 15.03.2019, 21:26 -------------------- СТАЛКЕР только для ПК!
|
 
|
|
15.03.2019, 23:17
Сообщение
#243
|
|
Ветеран Репутация: 11 Группа: Участник Сообщений: 84 Награды: 3 Регистрация: 13.09.2011 |
NanoBot-AMK, спасибо большое!
Но... не получается скомпилить. в логе выводит ошибки: Лог Assembling: mydll.asm global_ns_fix2.asm(153) : error A2006:undefined symbol : pEnvironment global_ns_fix2.asm(156) : error A2006:undefined symbol : eff_Rain global_ns_fix2.asm(158) : error A2006:undefined symbol : state Может быть сам тег "код" форума что-нибудь корежит в приведенном тобой коде? На АМК неоднократно сталкивался с таким. Сообщение отредактировал Marafonec - 15.03.2019, 23:33 |
 
|
|
10.04.2019, 19:35
Сообщение
#244
|
|
Почти Мастер Репутация: 75 Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 |
Код высокоуровневый, почти Си.
Для компиляции, должны определены соответствующие структуры. Вот низкий уровень. Код align_proc SoundRain_fix proc mov edx, ds:g_pGamePersistent mov eax, [edx] ;;;ASSUME eax:ptr IGame_Persistent, ecx:ptr CEnvironment, edx:ptr CEffect_Rain mov ecx, [eax+1132];.pEnvironment .if (ecx) mov edx, [ecx+760];.eff_Rain .if (edx) mov dword ptr [edx+32], 0;.state .endif .endif ;;;ASSUME eax:nothing, ecx:nothing, edx:nothing jmp return_SoundRain_fix SoundRain_fix endp Но я давно от такого стиля отказался, не смотря на то, что требуется некоторое время на определения и проверку структур. ЗЫ Код не проверен полностью, вылетать не должен, но я не проверил фикса этого бага. Погода была не та. Сообщение отредактировал NanoBot-AMK - 10.04.2019, 19:40 -------------------- СТАЛКЕР только для ПК!
|
 
|
|
11.04.2019, 00:24
Сообщение
#245
|
|
Почти Мастер Репутация: 75 Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 |
Дополнение для ревизий на основе маландинуса. Проблемы с релокациями!
Файл xrgame_stubs.asm Код ;---------------------------------------------------------------- ;Фикс пропадания звука дождя при загрузке уровня. org 101A7942h - shift; 9 bytes jmp SoundRain_fix db 4 dup (90h) return_SoundRain_fix: ;---------------------------------------------------------------- Файл corrections_list.txt Код 0x101A7942 9; Фикс пропадания звука дождя при загрузке уровня. Так же можно в функции SoundRain_fix закомментировать строку: Код ;mov edx, ds:g_pGamePersistent Так как в edx есть нужное. Сообщение отредактировал NanoBot-AMK - 11.04.2019, 00:27 -------------------- СТАЛКЕР только для ПК!
|
 
|
|
13.04.2019, 18:25
Сообщение
#246
|
|
Ветеран Репутация: 11 Группа: Участник Сообщений: 84 Награды: 3 Регистрация: 13.09.2011 |
NanoBot-AMK, в общем по правке звука дождя - никакие танцы и бубны мне не помогли.
DLL патчится, но игра все равно вылетает при запуске. |
 
|
|
25.04.2019, 15:03
Сообщение
#247
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
понаставил много звуковых зон. некоторые краями пересекаются(на полметра максимум) и весь уровень накрыл одной большой коробкой с open_space.
большинство зон работает нормально, но некоторые смещаются. сталкивался кто-нибудь с таким? |
 
|
|
25.04.2019, 18:16
Сообщение
#248
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Регистрация: 22.02.2006 |
RSFSR, если не ошибаюсь, все out внутренних зон должны быль равны in общей зоны.
Сообщение отредактировал macron - 25.04.2019, 18:16 |
 
|
|
25.04.2019, 19:30
Сообщение
#249
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
macron, да? а я думал это зона, с которой идет пересечение у данной
ок, попробую |
 
|
|
25.04.2019, 23:28
Сообщение
#250
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
macron, а у общей зоны какой out?
|
 
|
|
26.04.2019, 01:14
Сообщение
#251
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Регистрация: 22.02.2006 |
|
 
|
|
27.04.2019, 18:25
Сообщение
#252
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
в общем поставил - часть зон поправилось. но некоторые нет.
еще вопрос - как поправить щелканье некоторых звуков после сдк? желательно без залезания в звуковые редакторы |
 
|
|
27.04.2019, 19:10
Сообщение
#253
|
|
Опытный Геймер Репутация: 50 Группа: Участник Сообщений: 157 Награды: 2 Регистрация: 20.03.2014 |
в общем поставил - часть зон поправилось. но некоторые нет. еще вопрос - как поправить щелканье некоторых звуков после сдк? желательно без залезания в звуковые редакторы Помогало в sound editor sdk, выставить в поле quality: 1. В редких случаях даже это не поможет и придётся использовать зв.редакторы, а комменты для аи можно сделать с помощью |
 
|
|
27.04.2019, 20:24
Сообщение
#254
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Регистрация: 22.02.2006 |
как поправить щелканье некоторых звуков после сдк? 1. Никогда не пользоваться сраным SDKшным энкодером. 2. Заиметь файл в формате WAV 44100 16 mono. (Хотя у моего энкодера есть параметр --downmix для превращения стерео в моно, не проверял). 3. По очереди использовать энкодер и savandt по сылке. в общем поставил - часть зон поправилось. но некоторые нет. А вообще, Сообщение отредактировал macron - 27.04.2019, 20:16 |
 
|
|
27.04.2019, 20:37
Сообщение
#255
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
а как быть со звуками, которые уже щелкают?
например с финалки: contact_7.ogg dropinpool2.ogg - в 1472 есть нормальный нещелкающий в формате .wav, но обычным конвертером не берется -А вообще, EnvFX установлен ?- да Сообщение отредактировал RSFSR - 27.04.2019, 20:38 |
 
|
|
27.04.2019, 22:00
Сообщение
#256
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Регистрация: 22.02.2006 |
dropinpool2.ogg - в 1472 есть нормальный нещелкающий в формате .wav, но обычным конвертером не берется Только что выложил энкодер wav в ogg. Какие трудности? а как быть со звуками, которые уже щелкают? например с финалки:contact_7.ogg Как, как - звуковой редактор в зубы, и вперед. Вырезать вручную или фильтрами против щелчков. Я через примитивный Nero wave Editor еще под XP исправил почти все звуки для OLR. На win7 он не заработал, пришлось качать корявый семерошный. Посмотри в ресурсах OLR, может некоторые оттуда подойдут. Или учись сам редактировать, раз в теме. Сообщение отредактировал macron - 27.04.2019, 22:02 |
 
|
|
27.04.2019, 22:25
Сообщение
#257
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
Цитата Только что выложил энкодер wav в ogg. Какие трудности? wink_old.gif inavalid parametr for bitrate многие звуки из 1465 билда осилить не может |
 
|
|
27.04.2019, 22:33
Сообщение
#258
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Регистрация: 22.02.2006 |
inavalid parametr for bitrate Вопрос был по dropinpool2.wav из 1472, всё нормально кодируется. |
 
|
|
27.04.2019, 22:49
Сообщение
#259
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
он да, а другие нет
|
 
|
|
27.04.2019, 23:50
Сообщение
#260
|
|
Продвинутый геймер Репутация: 24 Группа: Участник Сообщений: 398 Награды: 4 Регистрация: 30.09.2015 |
уже помогли со звуками), не актуально
|
 
|
|
03.07.2019, 00:29
Сообщение
#261
|
|
Репутация: 0 Группа: Участник Сообщений: 2 Регистрация: 03.07.2019 |
Всем привет. Прошел ТЧ с использованием указанных в теме фиксов и отдельно скачанных snd_env для всех локаций. Получил огромное удовольствие,с EAX атмосфера просто охренительная. Соответственно, решил пройти ЗП так же с активированным EAX, но вскоре обнаружил,что для этой игры вообще нет отдельных snd_env. Т.к. кастомные найти нереально, решился скачать SDK под ЗП (до этого вообще не притрагивался к средствам разработки для сталкача),ну и начал самостоятельно ковырять snd_env. Результат ковыряний можно посмотреть здесь:
Заголовок блока Alley - Аллея Arena - Арена Auditorium - Аудитория (типа того как в институтах, или как за в кинотеатрах, где сидения типа лесенки) Bathroom - Ванная комната (скорей всего помещение покрытое кафельной плиткой) Carpeted Hallway - Коридор (прихожая) с ковровой дорожкой (скорей всего влиять будет на звук шагов ?) Cave - Пещера City - Город Concert Hall - Концертный зал Dizzy - Головокружительный Drugged - Под воздействием наркотиков Forest - Лес Generic - Общий Hallway - Коридор Hangar - Ангар Livingroom - Гостиная Mountains - Горы Padded Cell - Палата, обитая войлоком Parkinglot - Стоянка для машин Plain - Равнина Quarry - Карьер Room - Комната Sewer Pipe - Канализационные трубы (типа того, что на Янтаре) Stone Corridor - Каменный коридор Stone Room - Комната из камня Under Water - Под водой Из списка пресетов,перечисленных в спойлере, в SDK присутствуют лишь несколько. Суммарно их вообще около 10,что крайне мало. Соответственно вопрос – где взять отсуствующие пресеты?Буду очень благодарен,если кто-нибудь кинет файл с пресетами или что-то вроде того,я с нуля занялся этим,соответственно не шарю совсем) |
 
|
|
Текстовая версия | Сейчас: 19.04.2024, 22:52 |