Перейти к содержанию
Hardtmuth

Sound Environment в STALKER

Рекомендуемые сообщения

 

image.jpg

Автор: Macron

Что такое Sound Environment в STALKERе? Это принудительное изменение привычных звуков в определенных зонах. Например, логично, если зайдя в подвал/пещеру/под мост мы начнем слышать эхо от выстрелов/перезарядки/своих шагов и т.п.

Сами зоны ставятся вручную в SDK и в дальнейшем добавляются в папку уровня в виде файла level.snd_env (или как level.sound_environment для старых билдов).

Все билды от 18xx до Тень Чернобыля / Чистое Небо поддерживают Sound Environment. Из движка Тень Чернобыля его никто не вырезал.

Спойлер

Но есть проблемы с реализацией:

  1. Первая проблема в том, что Sound Environment работает только при включенном EAX.
  2. Вторая проблема в том, из OpenAL-библиотек (OpenAL32.dll+wrap_oal.dll) начиная где-то с 2006 года вдруг исчезла поддержка EAX для звуковых карт за предыдущие годы.
  3. Третья проблема в том, что EAX даже если поддерживается звуковухой, нормально работает/определяется не со всяким драйвером.
  4. Четвертая проблема в том, что в ТЧ в опциях звука разрешено ставить галку на EAX в любом случае, то есть игра не проверяет включен ли он на самом деле, что приводит к самообману, если не читать лог.
  5. Пятая проблема в том, что в финалке ТЧ этот самый Sound Environment зачем-то был вырезан на большинстве уровней. Остался только где-то на:
    • l07_military
    • l08_yantar
    • l12u_sarcofag
    • testers_mp_factory
    • testers_mp_pool
Спойлер

добавлен !!!_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 в игру в папку уровня.


Спойлер


Спойлер

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 - Под водой

 

  • Лайк 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

хорошая инфа. только вчера вот задавался вопросом почему еррор при попытке пересобрать кордон вылез. никто мне не ответил на этом сайте что это и в чем причина. уровень запустился, а вопрос остался. Теперь он раскрыт. Как раз копаюсь в 1.4 тч, надо как-нибудь попробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Pepel оно всё равно криво работает, нет смысла в этом копаться

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini ок. тогда не буду туда лезть и заморачивать. но хотя бы знаю теперь с чем связана ошибка и что она не критическая

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Pepel я тебе об этом говорил в другом раздел

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

imcrazyhoudini говорил, но не объяснял с чем это связано, а тут более глубоко раскрывается. теперь ясно не только лишь вчерашний день, но и сегодняшний XD

  • Смех 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

>Тут< есть метод проще. Чел говорил что в ТЧ возвращал звук EAX. Просто кинул специальную библиотеку в папку с exe. У меня работает, я пробовал в Гансе. Плохо реализовано. От стрельбы вообще никакой разницы, реверберации нет. Но теперь звук по другому слышно, например на вокзале люди не кричат на все помещения, когда от них отходишь, звук плавно уменьшается. ГГ почти не слышно, шаги, вздохи, боль и т.д. Надо больше тестить в разных местах

Изменено пользователем Garage Head
  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Garage Head  Много тонкостей.  Возможно на крайняк с комбинацией с dsoal, добавлять в батник параметр   -dsound


Дополнено 1 минуту спустя
51 минуту назад, Garage Head сказал:

От стрельбы вообще никакой разницы, реверберации нет.

А там сами звуковые зоны на локации расставлены?

Изменено пользователем macron
  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
13 минут назад, macron сказал:

А там сами звуковые зоны на локации расставлены?

А разве в оригинале ЗП они не расставлены? В Гансе же оригинальные локации. Раз в игре есть галочка EAX, подумал что зоны должны быть. Может не везде они есть, я устал уже тестить, завтра ещё побегаю. Поэтому в начале думал что не работает. Кстати в опциях появился вариант с Generic hardware.

Изменено пользователем Garage Head

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
16 минут назад, Garage Head сказал:

Раз в игре есть галочка EAX, подумал что зоны должны быть.

Вообще нет связи. За зоны и их расположение на локациях отвечает только левел-дизайнер. Даже если EAX включен и правильно определился движком, эха в нужном месте может не быть тупо из-за отсутствия там зон или вообще отсутствия в уровне файла level.snd_env

Даже с включенными галочками EAX может по факту не работать - надо читать, что в логе пишет движок при инициализации. Поэтому тема с EAX скользкая и не все любят с ним ковыряться. 


Дополнено 18 минуты спустя

Вот зоны для некоторых уровней ТЧ и ЗП
https://disk.yandex.ru/d/64hRfDchDkAGRg

Изменено пользователем macron
  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
24 минуты назад, macron сказал:

За зоны и их расположение на локациях отвечает только левел-дизайнер

Ну, догадывался конечно, что они раздолбаи, судя по тому какую сыромятину выпускали(( Жаль конечно что всё это в таком плачевном виде

  • Мастер! 1
  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Garage Head на кастомном ТЧ-движке заработало. Вообще, xray движки рассчитаны жрать всё, где есть _oal на конце. Так как в ТЧ вручную указать нужный драйвер нельзя, там рекомендую dsoal-aldrv.dll заранее переименовать во wrap_oal.dll и подставить (вместе с dsound.dll и alsoft.ini ) в bin.
https://community.pcgamingwiki.com/files/file/1363-dsoal/

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Помню на форуме Gameru, пользователь с ником "vlad_54rus" расставлял зоны для ЗП, никто о нём не слышал больше что-нибудь на просторах сталкера ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ruslan_Gallyamov если в гугле не забанили, можешь заняться поиском и аналитикой. Иногда так можно находить людей.

  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу