SNMetamorph / PrimeXT

Modern Half-Life 1 SDK for Xash3D FWGS engine, has enhanced graphics and physics and a lot of new features for mod-makers. Crossplatform, supports Windows/Linux. Based on XashXT and Spirit Of Half-Life.
https://snmetamorph.github.io/PrimeXT/
109 stars 29 forks source link

Двери производят мерзкий тихий звук если в маппере не выставить никаких звуков. #218

Closed APAmk2 closed 1 month ago

APAmk2 commented 1 month ago

Если поставить на карте дверь и не задать ей никаких звуков, а после зайти на карту и открыть её - она проигрывает какой-то тихий мерзкий звук.

https://github.com/user-attachments/assets/b00cf7ac-15e4-4dbb-9e7b-1e3058773e4c

Vladislav4KZ commented 1 month ago

Я так понял, во время открытия/закрытия двери воспроизводится common/null.wav. Такое не только в PrimeXT, в оригинальном HLSDK видимо то же самое, т.к. в оригинальной Half-Life я тоже встречал подобный звук.

a1batross commented 1 month ago

null.wav в халфе на самом деле не пустой. Хотя казалось бы что сложного сделать wav файл забитый нулями.

SNMetamorph commented 1 month ago

Не очень понимаю смысла этой issue, если честно. Зачем с этим что-то делать?

APAmk2 commented 1 month ago

Зачем с этим что-то делать?

Когда писал - думал что не столь известная проблема, если уже известно - я лишь могу предложить поставлять с контентом фикшенный null.wav, закрою тогда issue?

Vladislav4KZ commented 1 month ago

common/null.wav содержит 100 миллисекунд тишины, а шумит он из-за низкой разрядности и частоты дискретизации.

Если в любом аудиоредакторе сгенерировать тишину, и сохранить 8-битный WAV с частотой 11025 Гц, то он тоже будет шуметь. Если повысить частоту или разрядность аудиофайла, то шум может пропасть.

Шумят также и аудиофайлы _comma.wav и _period.wav (которые находятся в папках sound/vox, sound/fvox, sound/hgrunt, sound/scientist, sound/barney и sound/ambience).

Но у них разная длина тишины, т.к. файл _comma.wav отвечает за промежуток времени запятой, а _period.wav отвечает за промежуток времени точки, которые ставятся между словами/предложениями (они же отдельные аудиофайлы) в sentences.txt.

Vladislav4KZ commented 1 month ago

Можно просто создать null.wav с одним сэмплом, чтобы не было ошибок в консоли при воспроизведении файла, и чтобы не было шума.

Если делать пустой WAV, то в GoldSource будет появляться такая ошибка

папка/имяфайла.wav has invalid data offset

А в Xash3D FWGS будет такая ошибка и предупреждение:

Error: Sound_LoadWAV: file with 0 samples (папка/имяфайла.wav)
Warning: FS_LoadSound: couldn't load "папка/имяфайла"

Что в GoldSource, что в Xash3D FWGS эти ошибки видны только с включённым режимом разработчика.

a1batross commented 1 month ago

У меня была мысль игнорировать со стороны движка null, _comma и _period по имени файла. Но не уверен что это хорошая идея.

0x4E69676874466F78 commented 1 month ago

common/null.wav содержит 100 миллисекунд тишины, а шумит он из-за низкой разрядности и частоты дискретизации.

Если в любом аудиоредакторе сгенерировать тишину, и сохранить 8-битный WAV с частотой 11025 Гц, то он тоже будет шуметь. Если повысить частоту или разрядность аудиофайла, то шум может пропасть.

Это что-то не то в аудиоподсистеме движках игры, не должно оно так шуметь.

APAmk2 commented 1 month ago

Это что-то не то в аудиоподсистеме движках игры

Нет, открой в том-же WMP null.wav и также будет щёлкать.

Vladislav4KZ commented 1 month ago

Это что-то не то в аудиоподсистеме движках игры, не должно оно так шуметь.

Оно шумит везде, на разных плеерах на разных платформах.

ncuxonaT commented 1 month ago

Не очень это похоже на тишину nullwav

0x4E69676874466F78 commented 1 month ago

Это что-то не то в аудиоподсистеме движках игры

Нет, открой в том-же WMP null.wav и также будет щёлкать.

Я бегло потестил в potplayer и там не услышал, открыл в других, да слышен щелчок, если зациклить треск отчётливо слышно.

Vladislav4KZ commented 1 month ago

Я бегло потестил в potplayer и там не услышал, открыл в других, да слышен щелчок, если зациклить треск отчётливо слышно.

В некоторых плеерах, например Groove Music, ныне именуемый Медиаплеер Windows (UWP приложение – не путать с Windows Media Player, который является классическим Win32 приложением) может обрезаться начало и конец файла при воспроизведении.

Из-за этого может быть треск не слышен.

Vladislav4KZ commented 1 month ago

Не очень это похоже на тишину

В Audacity при сохранении сгенерированой тишины в 8-битный unsigned WAV с низкой частотой дискретизации, например 11025 Гц или 22050 Гц и последующим открытии этогого файла, отображается уже не идеально ровная линия, а уже с некоторыми искажениями.

ncuxonaT commented 1 month ago

Это какие-то приколы с округлением. В оригинальном файле почти все байты 80(128), но местами мелькают 7F(127). Вот файл, в котором только 80, вроде нет шума, и спектрограмма чистая. null_80.zip

APAmk2 commented 1 month ago

Бтв, сейчас полез в архивы первого квейка и обнаружил тот-же самый файл, тоесть проблема ещё древнее чем первый HL.