IPB

Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

>

Звуки и звуковое окружение

 
 macron
сообщение 19.08.2012, 13:38
Сообщение #281


Игровой Бог
**********************

Группа: Участник
Сообщений: 7021
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089




Введение
Что такое 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 зачем-то был вырезан на большинстве уровней. Остался только где-то на:
  • l07_military
  • l08_yantar
  • l12u_sarcofag
  • testers_mp_factory
  • testers_mp_pool
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)

Ссылка: https://yadi.sk/d/lGuwBsvVQpnub

Данная сборка (EAX FIXX) предназначена для включения поддержки EAX игрой, а следовательно и Sound Environment как для существующих уровней, так и для перспективных модов, в первую очередь для ТЧ.
Текущая сборка предназначена для билдов от 18xx до ТЧ/ЧН.

Сборка состоит из пронумерованных папок с dllками, где в разных комбинациях встречаются портированные из билдов/ТЧ/ЧН OpenAL-библиотеки всевозможных версий.
Каждая папка включает:
  • eax.dll (стандартная версия)
  • OpenAL32.dll
  • wrap_oal.dll
Задача сборки: методом перебора всех комбинаций подобрать вариант, при котором на конкретном оборудовании в конкретном билде/игре заработает EAX, а следовательно, включится поддержка Sound Environment.
Установка
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. Скачать исходники OpenAL и будучи крутым программистом скомпилировать под свою звуковуху персональные OpenAL32.dll+wrap_oal.dll.
Как самостоятельно в SDK создать Sound Environment?
Допустим, у нас уже открыт какой-то уровень.
Edit Mode -> Sound Env -> Ставим точку на карте. Появится кубик. Правой кнопкой заходим в его свойства.
Environment Inner ставим long_corridor (например).
Environment Outer ставим open_space.
Далее зумим/вращаем наш кубик, чтобы заполнить нужное помещение.
Когда наставили достаточно кубиков, говорим Compile -> Make Game. И суем готовый level.snd_env в игру в папку уровня.

(IMG:https://images.gameru.net/thumb/7f56839d3b.jpg)
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

Пример использования Sound Environment на Кордоне

Сообщение отредактировал RayTwitty - 09.12.2017, 21:15
Перейти в начало страницы
 
 
 
Ответов
 vlad_54rus
сообщение 30.01.2021, 11:57
Сообщение #282


Новичок
*

Группа: Участник
Сообщений: 12
Регистрация: 05.10.2015
Пользователь №: 22538



Потихоньку расставляю зоны на Юпитере, пока готово лишь на половину.
sound_env_cop_test2
Перейти в начало страницы
 
 
 vlad_54rus
сообщение 23.06.2021, 16:11
Сообщение #283


Новичок
*

Группа: Участник
Сообщений: 12
Регистрация: 05.10.2015
Пользователь №: 22538



sound_env_cop_test3
Перейти в начало страницы
 
 
 macron
сообщение 15.07.2021, 17:56
Сообщение #284


Игровой Бог
**********************

Группа: Участник
Сообщений: 7021
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



Как включить детекцию EAX в бинарниках скомпилированных из исходников (проверено на ТЧ 1.0007).

https://disk.yandex.ru/d/FvCwKmKOb9wyxw
Перейти в начало страницы
 
 
 vlad_54rus
сообщение 15.07.2021, 18:43
Сообщение #285


Новичок
*

Группа: Участник
Сообщений: 12
Регистрация: 05.10.2015
Пользователь №: 22538



macron, Редактировать xrSound.dll впринципе необязательно - вместо этого можно изменить имя устройства во wrap_oal.dll и OpenAL32.dll. Так можно будет использовать EAX даже в мультиплеере.
Перейти в начало страницы
 
 
 macron
сообщение 15.07.2021, 19:58
Сообщение #286


Игровой Бог
**********************

Группа: Участник
Сообщений: 7021
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



Цитата(vlad_54rus @ 15.07.2021, 18:43) *
Редактировать xrSound.dll впринципе необязательно - вместо этого можно изменить имя устройства во wrap_oal.dll и OpenAL32.dll.
Гениально!

Фикс детекции EAX в бинарниках скомпилированных из исходников v2 (проверено на ТЧ 1.0007).
Оптимизировано by vlad_54rus.

https://disk.yandex.ru/d/TRArwmnEmTtCGg

Сообщение отредактировал macron - 15.07.2021, 19:59
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 24.05.2024, 15:32