Q2PRO-X

Q2PRO-X 1.5 — Звук Q2PRO-X 1.5

Полная локальная HTML-версия принятого документа. Оригинал DOCX доступен в карточке документации.

Q2PRO-X document image

Q2PRO-X 1.5

Звук Q2PRO-X 1.5

DMA, OpenAL, HRTF, реверберация, громкости и онлайн-музыка

Русская редакция • Q2PRO-X 1.5 • 25 августа 2026 года


Содержание

Пункты кликабельны: щелчок переходит к разделу.

Q2PRO-X: подробное руководство по звуку

1. Короткая карта: что есть в Q2PRO-X по звуку

2. Где всё это находится в меню

3. Базовая модель: как вообще устроен звук в Q2PRO-X

4. Самая важная развилка: DMA или OpenAL

5. s_enable: главный переключатель режима

6. Общая теория: частота, формат, точность, ресемплинг

7. Настройки, которые касаются и DMA, и OpenAL

8. Что доступно только или в первую очередь в DMA

9. Что доступно только в OpenAL

10. al_profile: разница между OpenAL Q2PRO-X и R1Q2-like

11. al_sound_profile: готовые акустические профили

12. HRTF: что это такое и как это работает

13. Бинауральный звук: что это такое и чем он отличается от просто HRTF

14. Реверберация / room acoustics: что это такое

15. Параметры реверберации: подробно по каждому

16. Команды для OpenAL / reverb / binaural

17. al_resampler: OpenAL-resampler

18. Персональные громкости оружия и категорий

19. Что требует snd_restart, а что меняется сразу

20. Текущие важные дефолты

21. Рекомендуемые стартовые конфигурации

22. Когда крутить что именно

23. Матрица доступности: что работает где

24. Связь со встроенным голосовым чатом

25. Самая короткая практическая памятка

26. Заключение

27. Звуки AVFX

28. Музыка

29. Звук таймеров предметов

30. Заключение по звуку выпуска


Q2PRO-X: подробное руководство по звуку

Зачем нужен этот документ

У Q2PRO-X звуковая подсистема заметно богаче, чем у "обычного Quake 2 клиента", но из-за этого она и сложнее для понимания. Здесь собрана практическая и теоретическая документация по текущему состоянию звука в Q2PRO-X:

какие вообще есть звуковые режимы;
чем отличаются DMA и OpenAL;
какие параметры доступны в каждом режиме;
какие из них применяются сразу, а какие требуют snd_restart;
что такое HRTF, бинауральный звук, реверберация, decay, diffusion, crossfeed и остальные параметры;
чем отличается OpenAL Q2PRO-X от режима R1Q2-like;
как настроить звук под разные сценарии: колонки, наушники, соревновательная игра, "иммерсивный" режим.

Документ написан как пользовательский справочник, а не как внутренняя developer-note.


1. Короткая карта: что есть в Q2PRO-X по звуку

В Q2PRO-X сейчас есть три уровня работы со звуком:

1. s_enable 0

Звук полностью выключен.

1. s_enable 1 = software (DMA)

Классический программный микшер клиента.

Это "традиционный" режим Quake 2: клиент сам микширует PCM-аудио и отдаёт его в системный звуковой драйвер.

1. s_enable 2 = OpenAL

Современный 3D backend с пространственным позиционированием, HRTF, бинауральным слоем, акустикой помещений, дополнительными профилями, OpenAL-resampler'ом и расширенным набором runtime-настроек.

По умолчанию в текущем Q2PRO-X звуковой backend — `OpenAL`.


2. Где всё это находится в меню

Что настраиваетсяПуть по меню
Звуковой движок, акустика, подменю[[GEN:menu_path:g_sound]]
Расширенные звуковые настройки[[GEN:menu_path:q2prox_advanced_audio]]
Бинауральный и трёхмерный звук[[GEN:menu_path:q2prox_binaural]]
Громкости звуков[[GEN:menu_path:q2prox_sound_vol]]
Громкость оружия[[GEN:menu_path:q2prox_weaponvol]]
Громкость прочих звуков[[GEN:menu_path:q2prox_othervol]]
Громкости звуков AVFX[[GEN:menu_path:q2prox_avfxvol]]
Онлайн-музыка[[GEN:menu_path:q2prox_online_music]]
Голосовой чат[[GEN:menu_path:q2prox_voice]]

Главная страница звука

Звук и акустика

ТипРазделПунктПеременная или переходЧто делает
РазделОсновноеОсновное
СписокОсновноеЗвуковой движокs_enables_enable: OpenAL нужен для al_profile, HRTF и акустики помещений. Применяется сразу. [Без звука / Программный / OpenAL]
ПереключательОсновноеСледить за устройством выводаs_auto_deviceСледовать за системным устройством вывода вживую. При смене вывода Windows (наушники <-> колонки) игра сама переходит на него, без snd_restart. Только OpenAL и устройство по умолчанию (заданное al_device не трогается). По умолчанию ВКЛ. Применяется сразу. [Нет / Да]
ПолзунокОсновноеОбщая громкостьs_volumes_volume: общая громкость звука (0..1). Применяется сразу.
ПолзунокОсновноеГромкость музыкиogg_volumeogg_volume: громкость OGG-музыки (саундтрека), 0..1. Применяется сразу.
СписокОсновноеФоновые звукиs_ambients_ambient: фоновые зацикленные звуки мира. 0 = нет, 1 = да, 2 = только от видимых сущностей (с моделью), например пролёты ракет. Применяется сразу. [Нет / Да / Только свои]
ПолзунокОсновноеМакс. голосовs_maxchannelss_maxchannels: макс. одновременных голосов (по умолчанию 64). Поднимите, если звуки пропадают в грозу/AVFX; драйвер может ограничить OpenAL ниже (см. soundinfo). Применяется через snd_restart.
РазделПодменюПодменю
ПереходПодменюOpenAL и акустика...q2prox_soundПрофиль OpenAL, реверберация, HRTF и акустика помещений.
ПереходПодменю3D-звук в наушниках...q2prox_binaural3D-звук в наушниках: HRTF, crossfeed и кодирование.
ПереходПодменюГромкость звуков...q2prox_sound_volХаб громкости звуков: оружие, прочие категории, AVFX-звуки.
ПереходПодменюРасширенные звуковые...q2prox_advanced_audioПодводный фильтр, фокус окна, упреждение микса, swap stereo, музыка (ogg).
ПереходПодменюГолосовой чат...q2prox_voiceГолосовой чат в игре (PTT/VAD, LiveKit; для приёма и передачи нужен OpenAL).
РазделПоведениеПоведение
ПереключательПоведениеГлушить вне фокусаs_mute_when_inactiveГлушить звук, когда окно не в фокусе (Alt+Tab). Применяется сразу. [Нет / Да]
ПереходПоведениеПерезапустить звук...snd_restartПерезапускает звуковой движок, чтобы применить изменения s_enable / s_maxchannels.

Часть старых базовых переменных и настроек музыки по-прежнему доступна только через консоль или справочник переменных, даже если основные современные настройки уже вынесены на страницы Q2PRO-X.


3. Базовая модель: как вообще устроен звук в Q2PRO-X

3.1 Что такое DMA в контексте Q2PRO-X

В контексте Q2PRO-X слово DMA не означает "магически лучший старый звук" и не означает "железный 3D".

Здесь это классический путь:

клиент сам микширует все звуки;
выбирает формат, частоту, resampler;
пишет готовый PCM-поток в системный звуковой драйвер.

Плюсы:

простой и предсказуемый;
ближе к "классическому" ощущению клиента;
меньше сложных пространственных и акустических слоёв;
удобен, если нужен максимально консервативный звук без HRTF и room acoustics.

Минусы:

нет OpenAL-слоя;
нет современной акустики помещений;
нет OpenAL HRTF / binaural режима;
нет OpenAL-resampler'ов;
меньше гибкости в пространственной обработке.

3.2 Что такое OpenAL в контексте Q2PRO-X

OpenAL — это отдельный аудио backend/API для пространственного звука.

В Q2PRO-X он используется не только как "другой драйвер", а как полноценный фундамент для:

пространственного позиционирования источников;
разных моделей затухания по расстоянию;
HRTF;
бинаурального режима для наушников;
EFX/room acoustics;
разделения routing'а по типам источников;
OpenAL-specific resampler'ов.

Плюсы:

современный пространственный звук;
полезен для наушников;
даёт тонкую настройку акустики;
позволяет сильнее адаптировать звук под соревновательный и immersive-сценарии.

Минусы:

сложнее;
при плохой настройке можно сделать звук "слишком обработанным";
часть параметров требуют snd_restart;
некоторые вещи зависят от возможностей runtime'а OpenAL Soft.


4. Самая важная развилка: DMA или OpenAL

Когда обычно стоит выбрать DMA

Выбирай DMA, если ты хочешь:

максимально простой и классический путь;
минимум дополнительных слоёв обработки;
звук "как можно ближе к старому клиентскому ощущению";
не использовать HRTF, бинауральный режим и room acoustics.

Типичный сценарий:

игра через колонки;
хочется консервативный звук;
не нужен современный 3D headphone-слой.

Когда обычно стоит выбрать OpenAL

Выбирай OpenAL, если ты хочешь:

пространственный звук сильнее контролировать;
использовать наушники и HRTF;
включать room acoustics / reverb;
пользоваться sound profiles;
использовать бинауральный слой;
иметь доступ ко всем современным Q2PRO-X sound-функциям.

Типичный сценарий:

игра в наушниках;
нужен максимум spatial-информации;
хочется тонко настраивать acoustic feeling;
нужен встроенный voice chat Phase 1 — он тоже требует OpenAL для передачи и приёма.


5. s_enable: главный переключатель режима

Что делает

s_enable выбирает backend:

0 = no sound
1 = software (DMA)
2 = OpenAL

Когда применять

Если меняешь s_enable, практически всегда нужно:

либо нажать restart sound... в меню;
либо выполнить в консоли:

snd_restart

Практический совет

Если ты не уверен, с чего начать:

начни с OpenAL, если играешь в наушниках;
начни с DMA, если хочешь максимально простой и классический звук.


6. Общая теория: частота, формат, точность, ресемплинг

Перед конкретными cvar полезно понимать базовые аудиотермины.

6.1 Что такое sample rate / output rate

Это частота дискретизации аудиопотока — сколько "снимков" аудиосигнала в секунду выводится на устройство.

Примеры:

11 kHz
22 kHz
44 kHz
48 kHz
96 kHz

Чем выше частота:

тем выше потенциальная точность передачи высоких частот;
тем больше объём вычислений и трафика внутри backend'а;
тем выше требования к железу и runtime-пути.

В Q2PRO-X это cvar:

s_khz

Важно:

s_khz — это запрашиваемая частота;
фактическая частота может отличаться;
проверять реальный результат нужно через:

soundinfo

6.2 Что такое sample format

Это формат представления одного аудиосэмпла.

В текущем Q2PRO-X важны:

auto
s16
float32

s16

Классический 16-битный PCM.

Плюсы:

максимально совместим;
привычный и лёгкий;
обычно достаточно для Quake 2.

Минусы:

меньше headroom;
ниже внутренняя точность при сложной обработке.

float32

32-битный floating-point формат.

Плюсы:

больше внутренний запас по уровню (headroom);
меньше риск грубого накопления ошибок при сложной обработке;
полезен, если есть несколько слоёв обработки и хочется более аккуратный runtime-путь.

Минусы:

зависит от поддержки backend'а/runtime'а;
если runtime не умеет float32, будет fallback.

Это cvar:

s_sampleformat

После изменения нужен:

snd_restart

6.3 Что такое resampler

Ресемплер — это алгоритм, который пересчитывает звук из одной частоты/формы представления в другую.

Это нужно, когда:

исходный WAV/звук хранится в одной частоте;
backend/устройство работает в другой;
клиент должен конвертировать звук без грубых артефактов.

Плохой resampler может дать:

зернистость;
"ступеньки";
грязноватый верх;
менее приятный transient response.

Более качественный resampler может дать:

более гладкий результат;
менее грубые артефакты;
более "чистый" звук.

Но:

он может стоить больше CPU;
на практике разница сильнее заметна на некоторых типах звуков, а не на всех.


7. Настройки, которые касаются и DMA, и OpenAL

Ниже — общие параметры, которые полезно знать независимо от backend'а.

s_volume

Главная master-громкость игры.

Текущее базовое значение в коде:

0.7

Это общий уровень звука, поверх которого уже работают более узкие громкости категорий.

s_khz

Запрашиваемая частота вывода.

Обычно доступны:

11
22
44
48
96

Практически:

44 или 48 — базовый разумный выбор;
96 — уже скорее опция "хочу максимально высокую частоту и понимаю, что делаю".

s_sampleformat

Предпочтительный формат:

auto
s16
float32

Хороший практический выбор:

auto, если не хочется думать;
float32, если используешь OpenAL и хочешь современный высокоточный вывод.

s_ambient

Управляет ambient-звуками.

Значения:

0 = нет
1 = да
2 = только звуки самого игрока

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

s_mute_when_inactive

Если окно игры не в фокусе (Alt+Tab, клик в другое окно), движок заглушается.

Значения:

0 = не глушить
1 = глушить

Практически это очень полезная QoL-настройка.

ogg_enable

Включает фоновую музыку OGG.

ogg_volume

Громкость музыки относительно общей громкости.

ogg_shuffle

Случайный порядок музыки.

Эти cvar не меняют боевой positional audio, но влияют на общую звуковую среду.

soundinfo

Очень полезная диагностическая команда.

Используй её, чтобы увидеть:

какой backend реально активен;
какую частоту и формат реально открыло устройство;
что в итоге получилось после auto/fallback.

snd_restart

Главная команда "перезапустить sound backend".

Она нужна после большинства крупных sound-переключений:

engine backend;
output format;
HRTF-режимов;
OpenAL profile;
части binaural-настроек.


8. Что доступно только или в первую очередь в DMA

s_driver

Это выбор DMA-драйвера.

На Windows обычно встречаются:

dsound = DirectSound
wave = Windows waveform audio
sdl = SDL2 audio

Если cvar пустой, идёт автоопределение.

Практический смысл:

чаще всего это трогают только если есть проблемы с совместимостью;
обычному игроку обычно достаточно auto.

s_mixahead

Это размер упреждения микширования.

По-человечески:

насколько заранее движок готовит кусок звука вперёд.

Если значение меньше:

потенциально ниже задержка;
но выше риск дёрганий, пропусков, crackle на слабой системе.

Если значение больше:

стабильнее;
но выше ощущаемая задержка.

Практический диапазон:

примерно 0.05 .. 0.3

Это особенно характерный DMA-параметр.

s_swapstereo

Меняет местами левый и правый каналы.

Работает только в DMA.

Нужен крайне редко:

если у пользователя реально перепутаны каналы на уровне схемы/железа/виртуального устройства.

s_resampler

Это DMA-resampler.

Значения:

legacy
linear
cubic

Что они означают

legacy

Старый, самый простой путь.

Плюсы:

максимально "как раньше";
минимальный риск неожиданного изменения характера звука.

Минусы:

обычно худшее качество пересчёта.

linear

Линейная интерполяция.

Компромисс:

лучше, чем legacy;
не слишком дорогая;
часто разумный середняк.

cubic

Кубическая интерполяция.

Обычно:

самый "гладкий" из DMA-вариантов;
лучше на более высоких частотах и при чувствительности к артефактам;
может стоить чуть больше вычислений.

Когда DMA имеет смысл сейчас

DMA логичен, если ты хочешь:

максимально классический режим;
без HRTF;
без room acoustics;
без OpenAL-specific voicing;
с ручным контролем через s_mixahead, s_driver, s_resampler.


9. Что доступно только в OpenAL

Всё ниже — это уже главный reason выбрать OpenAL.

Список ключевых OpenAL-only возможностей

al_profile
al_sound_profile
al_hrtf
al_resampler
al_reverb / al_eax
вся семья al_reverb_*
вся семья al_eax_*
вся семья al_binaural_*
al_resampler_list
al_reverb_info
al_reverb_reload
al_binaural_info


10. al_profile: разница между OpenAL Q2PRO-X и R1Q2-like

Это одна из важнейших настроек всего sound-стека.

Что это вообще такое

al_profile — это не "громкость" и не "качество", а поведенческий профиль OpenAL-звука.

Сейчас он имеет два основных режима:

0 = Q2PRO-X
1 = R1Q2-like

Теория: почему профили вообще отличаются

Даже если оба режима используют OpenAL, они могут отличаться по:

модели затухания по расстоянию;
работе world loops;
ощущению "пространственной уверенности" источников;
общей подаче звука.

То есть это не "один и тот же OpenAL, только другой флажок".

Это два разных voicing-подхода поверх OpenAL backend'а.

Q2PRO-X profile

Основная идея:

современный Q2PRO-X-путь;
linear-distance voicing;
richer room-acoustics stack;
лучше стыкуется с современной Q2PRO-X акустикой, routing'ом и профилями.

Под капотом это ближе к:

AL_LINEAR_DISTANCE_CLAMPED

Практически:

удобен, если хочешь пользоваться room acoustics;
хорошо сочетается с al_sound_profile;
ощущается как "текущая современная подача Q2PRO-X".

R1Q2-like profile

Основная идея:

приблизить OpenAL-звучание к классической школе R1Q2.

Под капотом это ближе к:

AL_INVERSE_DISTANCE_CLAMPED

Практически это даёт более "классическое" ощущение затухания:

звук по расстоянию ведёт себя иначе;
world loops и spatial presentation ближе к старому стилю;
многим игрокам именно такой вариант кажется более "читабельным" или "привычным".

Что выбрать

Выбирай Q2PRO-X, если:

хочешь современный базовый профиль;
собираешься включать room acoustics;
хочешь пользоваться curated sound profiles;
не стремишься именно к "как в R1Q2".

Выбирай R1Q2-like, если:

тебе важен классический характер OpenAL-подачи;
ты исторически привык к R1Q2;
тебе именно этот voicing легче читать.

Практический совет

Если не знаешь, с чего начать:

1. попробуй al_profile "Q2PRO-X" на колонках или универсальной настройке;

1. попробуй al_profile "R1Q2-like" для соревновательного чтения звука;

1. сравни на одной и той же карте и в одном и том же сценарии, а не "по памяти".

После смены профиля нужен:

snd_restart


11. al_sound_profile: готовые акустические профили

Что это такое

al_sound_profile — это high-level пресет.

Он нужен, чтобы не крутить вручную весь лес параметров реверберации и routing'а.

Вместо десятка ручек ты выбираешь общую "характерную подачу".

Текущие значения:

custom
competitive
balanced
immersive
cinematic
cathedral

Важная логика

Эти профили не управляют всем подряд.

Они в основном управляют акустическим слоем:

al_reverb
al_eax_preset
al_reverb_lerp_time
al_eax_wet
al_eax_local_wet
al_eax_occlusion
explosion/transport wetness
tuning-параметрами reverb

И при этом не должны переопределять:

al_hrtf
al_profile
al_resampler
s_resampler
s_enable
s_khz
s_sampleformat

То есть sound profile — это акустический пресет, а не "смена всего звукового мира".

Как выбирать по смыслу

competitive

Минимум лишнего ambience-feeling, максимум сухой читаемости.

Подходит для:

PvP;
когда важна полезная информация, а не "красота пространства".

balanced

Компромиссный режим.

Подходит для:

большинства игроков;
если не хочешь ни слишком сухо, ни слишком "кинематографично".

immersive

Сильнее подчёркивает ощущение пространства.

Подходит для:

спокойной игры;
карт, где хочется почувствовать среду.

cinematic

Ещё больше акцента на эффектность.

cathedral

Специально сильно выраженный, почти демонстрационный режим.

Подходит не для "честной соревновательной читаемости", а для ощущения масштабности.

custom

Режим, в который система возвращается, если ты начинаешь крутить параметры вручную.


12. HRTF: что это такое и как это работает

Теория: что такое HRTF

HRTF = Head-Related Transfer Function.

По-простому:

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

В реальной жизни звук спереди, сзади, сверху, снизу и сбоку попадает в уши не одинаково:

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

Именно из-за этого мозг умеет понимать направление.

Что даёт HRTF в игре

Если ты играешь в наушниках:

HRTF может сильнее отделить левое/правое;
улучшить ощущение фронт/тыл;
сделать сцену менее "плоской";
повысить пространственную разборчивость.

Когда HRTF особенно полезен

в наушниках;
при хорошем positioning;
если играешь на соревновательный слух.

Когда HRTF может не понравиться

на колонках;
если конкретная HRTF-модель звучит для твоих ушей "неестественно";
если тебе нравится максимально сухой и привычный стереообраз.

Cvar

al_hrtf

Значения:

off
auto
on

Практически:

off — принудительно выключить;
auto — пусть runtime сам решает;
on — принудительно включить.

Обычно после изменения:

snd_restart

Базовый совет

колонки: чаще всего al_hrtf off
наушники: чаще всего al_hrtf on или auto


13. Бинауральный звук: что это такое и чем он отличается от просто HRTF

Теория: что такое бинауральный звук

Бинауральный звук — это способ подготовить аудио так, чтобы в двух каналах (левый и правый наушник) возникало убедительное ощущение 3D-пространства.

Главная идея:

у тебя физически только два канала;
но за счёт правильной обработки мозг получает подсказки о направлении, глубине и иногда даже о высоте источника.

Важное различие

HRTF — это один из механизмов, из которых строится бинауральный результат.

То есть:

не всякий "3D headphone mode" = просто один флажок HRTF;
бинауральный слой может включать ещё и:
режим stereo-encoding;
crossfeed;
качество HRTF-процессинга;
filter size;
app-local OpenAL Soft tuning.

Как это реализовано в Q2PRO-X

В Q2PRO-X бинауральный режим — это не отдельный самописный DSP-движок, а тонкий control-layer поверх OpenAL Soft.

То есть:

OpenAL остаётся фундаментом;
бинауральный слой — это продвинутая настройка headphone-oriented rendering.

Основные cvar

al_binaural
al_binaural_profile
al_binaural_encoding
al_binaural_hrtf_mode
al_binaural_hrtf_size
al_binaural_crossfeed

al_binaural

Главный переключатель.

Значения:

0 = off
1 = auto
2 = on

al_binaural_profile

Готовые пресеты:

custom
default
auto
deep
cinematic

Эти пресеты управляют именно binaural-слоем, а не room acoustics.

al_binaural_encoding

Режим stereo-encoding.

Варианты:

auto
basic
hrtf
uhj

Что это значит по смыслу

basic

Самый базовый стереорежим.

hrtf

Явно ориентированный на HRTF-базированный headphone rendering режим.

uhj

Специфический способ двухканальной передачи пространственной информации, исторически связанный с Ambisonics/B-format-подходами.

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

После смены encoding нужен:

snd_restart

al_binaural_hrtf_mode

Качество/режим обработки HRTF.

Варианты:

default
full
ambi1
ambi2
ambi3

Это уже advanced-тюнинг.

al_binaural_hrtf_size

Размер HRTF-фильтра.

Варианты:

0 = runtime default
32
64

Теория:

больший фильтр может дать более сложную и "богатую" обработку;
но это не всегда автоматически "лучше";
иногда важнее естественность, а не максимальная сложность.

al_binaural_crossfeed

Теория: что такое crossfeed

При прослушивании через колонки левое ухо частично слышит и правую колонку, а правое — левую.

В наушниках этого естественного "перекрёстного подмешивания" нет: каналы слишком жёстко разделены.

Crossfeed — это управляемое частичное подмешивание каналов, чтобы:

уменьшить неестественную "разорванность" по краям;
сделать сцену более естественной;
уменьшить утомляемость на некоторых наушниках.

Возможные значения:

0 .. 6

Где:

0 = выкл
выше = больше crossfeed

Практически:

если сцена кажется слишком "распиленной" на L/R — можно добавить немного crossfeed;
если нужна максимальная жёсткая directional separation — держать низко или выключить.


14. Реверберация / room acoustics: что это такое

Теория: что такое реверберация

Реверберация — это не "эхо" в грубом бытовом смысле.

Это совокупность множества отражений звука от поверхностей:

стен;
пола;
потолка;
предметов;
узких проходов;
открытых пространств.

Когда звук издаётся в помещении, мы слышим:

1. прямой звук;

1. ранние отражения (early reflections);

1. более длинный "хвост" (late reverb tail).

Именно это вместе и создаёт ощущение:

маленькой комнаты;
коридора;
зала;
улицы;
пещеры;
воды;
глухой мягкой среды.

Что делает room acoustics в Q2PRO-X

Q2PRO-X не просто включает "какой-то reverb", а строит отдельный слой акустики на базе OpenAL EFX:

выбирает room class;
умеет интерполировать между пресетами;
различает world/local/explosion/transport routing;
может применять underwater logic;
умеет diagnostic info через команды.

Главный cvar:

al_reverb

Исторический alias:

al_eax

Сейчас canonical-путь — именно al_reverb, а al_eax сохраняется как совместимость со старыми конфигами.


15. Параметры реверберации: подробно по каждому

Ниже — самая важная часть для ручной настройки.

al_reverb

Включает room acoustics / EFX reverb.

Если 0:

room acoustics нет.

Если 1:

room acoustics активна;
дальше начинают работать пресеты и tuning-параметры.

al_eax_preset

Выбор room class.

Значения:

-1 = auto
0 = generic
1 = small
2 = medium
3 = hall
4 = corridor
5 = outdoor
6 = underwater

Что значит auto

Клиент сам классифицирует среду и подбирает пресет.

Что значит manual

Ты принудительно говоришь системе:

"веди себя как small room"
или "как hall"
и т.д.

Это полезно:

для тестов;
для сравнения;
если хочется заведомо фиксированную подачу.

al_reverb_lerp_time

Теория: что такое lerp между пресетами

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

Поэтому вместо мгновенного переключения параметры можно плавно смешивать.

al_reverb_lerp_time — это время такого плавного перехода.

Меньше:

быстрее реакция;
но больше шанс услышать "прыжок".

Больше:

мягче переход;
но акустика медленнее догоняет ситуацию.

al_eax_wet

Теория: что такое wet

Wet = уровень обработанного сигнала.

Противоположность — dry, то есть прямой, необработанный звук.

Если wet больше:

реверберация слышнее;
среда сильнее влияет на звук.

Если wet меньше:

звук суше;
пространство менее выражено.

al_eax_wet — общий reverb send для мировых источников.

al_eax_local_wet

Это wet для локальных first-person звуков.

Почему это вынесено отдельно:

собственные звуки игрока не всегда стоит так же сильно "окунать" в реверберацию, как мир;
иначе первый план может стать мыльным и менее читаемым.

Обычно local wet держат ниже, чем world wet.

al_eax_transport_wet

Это wet для:

movers;
hums;
looping world sounds;
транспортных/зацикленных emitters.

Идея:

некоторые длительные looping-звуки хочется чуть иначе вписать в пространство, чем короткие одномоментные эффекты.

al_eax_explosion_wet

Wet для взрывов.

Смысл:

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

al_eax_explosion_decay

Теория: что такое decay

Decay — это длительность затухания хвоста реверберации.

То есть сколько времени после исходного звука продолжается умирающий reverb-tail.

Если decay больше:

хвост длиннее;
звук кажется крупнее, просторнее, эпичнее.

Если decay меньше:

помещение кажется суше;
звук "быстрее заканчивается".

al_eax_explosion_decay — отдельный множитель длины хвоста именно для взрывов.

al_eax_explosion_late

Отдельный множитель силы late-tail у взрывов.

То есть:

не просто длина;
а именно "вес" позднего хвоста.

al_eax_occlusion

Теория: что такое occlusion

Если источник физически загорожен стеной, дверью или объектом, прямой звук до слушателя доходит хуже.

В реальности это означает:

меньше высоких частот;
более глухой direct path;
но отражения и room tail могут всё ещё быть слышны.

al_eax_occlusion именно это и моделирует:

direct path приглушается;
хвост помещения может сохраняться.

al_reverb_reflections

Теория: что такое early reflections

Early reflections — первые отражения после прямого сигнала.

Они дают мозгу сильную подсказку о размере и близости поверхности.

Если reflections выше:

пространство кажется более очерченным;
сильнее слышится "первый отскок".

al_reverb_late

Теория: что такое late reverb

Это поздний, более диффузный хвост реверберации, когда отдельные отражения уже не различаются, а складываются в общий "облакообразный" tail.

Если late выше:

хвост звучит массивнее;
пространство кажется более крупным.

al_reverb_decay

Общий множитель decay time.

Если поднять:

room tail станет длиннее.

Если опустить:

room tail станет короче.

al_reverb_delay

Теория: что такое delay в контексте реверберации

Это не "delay pedal" в музыкальном смысле, а масштаб задержки отражений и позднего хвоста относительно прямого сигнала.

Если delay больше:

отражения позже "отлипают" от прямого звука;
пространство может казаться крупнее.

Если delay меньше:

отражения подлетают быстрее;
среда кажется теснее и компактнее.

al_reverb_hf

Теория: что такое HF brightness

HF = high frequency.

Этот параметр регулирует, насколько высокочастотная часть реверберации сохраняется или гасится.

Если значение выше:

reverb brighter;
хвост кажется более "стеклянным", "звонким", ярким.

Если ниже:

хвост темнее и мягче;
ощущение более глухих поверхностей.

al_reverb_diffusion

Теория: что такое diffusion

Diffusion — это "плотность" и "гладкость" реверберационного поля.

Если diffusion выше:

хвост более гладкий;
меньше ощущение отдельных повторов;
пространство кажется более "заполненным".

Если diffusion ниже:

хвост более зернистый, разреженный;
сильнее слышатся отдельные компоненты отражений.

al_eax_debug

Диагностический режим.

Полезен для тонкой отладки:

какой room preset выбран;
как классифицировалась среда;
как routing сейчас собран.


16. Команды для OpenAL / reverb / binaural

al_reverb_info

Печатает:

текущий room class;
classifier data;
routing mode;
wet-state;
часть диагностических параметров среды.

Очень полезно, когда ты реально настраиваешь room acoustics, а не "крутишь ручки вслепую".

al_reverb_reload

Принудительно пересобирает и snap'ает текущий reverb preset.

Полезно:

после ряда ручных изменений;
для проверки нового состояния немедленно.

al_binaural_info

Печатает:

requested vs actual binaural runtime state;
что реально включилось;
какие значения runtime принял.

al_resampler_list

Печатает список доступных OpenAL-resampler'ов, которые реально предоставляет runtime.

Это важно, потому что OpenAL путь может поддерживать разные варианты:

default
point
linear
cubic
bsinc12
bsinc24

Но конкретный runtime надо проверять фактически.


17. al_resampler: OpenAL-resampler

Это OpenAL-specific выбор resampler'а.

Типичные значения:

default
point
linear
cubic
bsinc12
bsinc24

Что значат эти режимы по смыслу

point

Самый грубый, самый простой.

Можно представить как:

"почти без настоящей гладкой интерполяции".

Практически — скорее режим для эксперимента, чем лучший everyday choice.

linear

Простой компромисс.

cubic

Более качественный и гладкий вариант.

bsinc12 / bsinc24

Более сложные sinc-подобные варианты.

Обычно:

чище;
аккуратнее;
потенциально тяжелее;
интересны, если ты реально вслушиваешься и хочешь максимум качества из runtime.

Практический выбор

Если не хочется заморачиваться:

default

Если хочется качественный, но не экзотический вариант:

cubic

Если хочется пробовать лучший quality path OpenAL Soft:

bsinc12 или bsinc24

После изменения:

snd_restart


18. Персональные громкости оружия и категорий

Это одна из самых полезных реальных QoL-функций Q2PRO-X.

Как устроена шкала

В меню используется шкала:

50 = значение по умолчанию
0 = полностью выключить
100 = примерно 2x относительно дефолта

То есть это не "проценты от нуля до ста" в бытовом смысле, а пользовательская шкала громкости относительно базового уровня.

Громкости оружия

Есть отдельные cvar для:

s_weapon_blaster_volume
s_weapon_shotgun_volume
s_weapon_supershotgun_volume
s_weapon_machinegun_volume
s_weapon_chaingun_volume
s_weapon_handgrenade_volume
s_weapon_grenadelauncher_volume
s_weapon_rocketlauncher_volume
s_weapon_hyperblaster_volume
s_weapon_railgun_volume
s_weapon_bfg_volume

Это позволяет:

приглушить оружие, которое лично тебе кажется слишком навязчивым;
поднять weapon class, который хочется лучше читать;
настроить собственный sound mix без общего сноса всего звука.

Громкости категорий

Есть отдельные cvar:

s_player_volume — движение игрока: прыжки, падения, landing, steps
s_voice_volume — боль, смерть, taunts, drown и прочие голосовые/болезненные player-sounds
s_pickup_volume — pickups
s_environment_volume — doors, glass, platforms, debris и прочие world-actions
s_monster_volume — enemy/monster sounds
s_announcer_volume — announcer / computer updated / secrets
s_interface_volume — menu / UI sounds
s_other_volume — всё остальное, что не попало в более узкие классы
s_ambient_volume — ambient/world loops: hums, movers, teleports

Практические примеры

Для соревновательной игры

Часто имеет смысл:

чуть приглушить свои самые громкие оружия;
оставить или поднять enemy/player-relevant классы;
не раздувать ambient loops.

Для "киношного" звука

Можно:

поднять environment/ambient;
оставить оружие побогаче;
включить reverb.


19. Что требует snd_restart, а что меняется сразу

Это очень важный practical section.

Обычно требуют snd_restart

s_enable
s_khz
s_sampleformat
al_profile
al_resampler
al_reverb
al_hrtf
al_binaural
al_binaural_encoding
al_binaural_hrtf_mode
al_binaural_hrtf_size
al_binaural_crossfeed

Обычно применяются live

al_eax_wet
al_eax_local_wet
al_eax_occlusion
al_eax_explosion_wet
al_eax_explosion_decay
al_eax_explosion_late
al_eax_transport_wet
al_reverb_reflections
al_reverb_late
al_reverb_decay
al_reverb_delay
al_reverb_hf
al_reverb_diffusion
per-weapon volume cvar
per-category volume cvar
s_mute_when_inactive

Практическое правило

Если ты меняешь:

backend,
формат,
HRTF/binaural engine settings,
OpenAL profile,

сразу думай:

snd_restart

Если крутишь:

wet,
decay,
reflections,
category volumes,

скорее всего изменение уже live.


20. Текущие важные дефолты

Ниже — не все звуковые cvar проекта, а именно те, которые чаще всего имеют значение при реальной настройке.

Базовые sound defaults

CvarТекущее значение по умолчаниюЧто это значит
s_enable2По умолчанию стартует OpenAL
s_khz44Базовый запрос на 44 kHz
s_sampleformatautoФормат выбирается автоматически
s_resamplerlegacyDMA-resampler по умолчанию классический
s_volume0.7Master volume по коду
s_ambient1Ambient-звуки включены
s_underwater1Underwater-обработка включена
s_underwater_gain_hf0.25Под водой верх сильно приглушён
s_mute_when_inactive0По умолчанию игра не глушится при потере фокуса
ogg_enable1OGG-музыка разрешена
ogg_volume1Музыка играет на полном относительном уровне
ogg_shuffle0Случайный порядок выключен

OpenAL defaults

CvarТекущее значение по умолчаниюЧто это значит
al_profile0Базовый OpenAL-профиль = Q2PRO-X
al_reverb0Room acoustics выключена по умолчанию
al_reverb_lerp_time2.0Переход между room presets сглаживается за 2 секунды
al_eax_preset-1Автоклассификация помещения
al_eax_wet0.80Довольно выраженный мировой reverb-send
al_eax_local_wet0.08Локальные звуки по умолчанию суше
al_eax_occlusion1Occlusion включён
al_reverb_reflections1.0Early reflections без дополнительного усиления
al_reverb_late1.0Late tail без дополнительного усиления
al_reverb_decay1.0Базовая длина decay
al_reverb_delay1.0Базовая задержка reverb-поля
al_reverb_hf1.0Базовая яркость HF
al_reverb_diffusion1.0Базовая diffusion/гладкость
al_resamplerdefaultOpenAL runtime сам выбирает ресемплер
al_sound_profile0 (custom)По умолчанию нет навязанного curated-профиля

Binaural defaults

CvarТекущее значение по умолчаниюЧто это значит
al_binaural0Бинауральный режим по умолчанию выключен
al_binaural_profile0 (custom)Нет заранее выбранного headphone-профиля
al_binaural_encoding0 (auto)Encoding выбирается автоматически
al_binaural_hrtf_mode0 (default)Режим HRTF по умолчанию доверен runtime'у
al_binaural_hrtf_size0Размер фильтра = runtime default
al_binaural_crossfeed0Crossfeed выключен

Per-weapon / per-category defaults

Все weapon/category volume cvar стартуют с:

50

Это означает:

базовый, нейтральный уровень;
не "50% тишины", а именно нормальное штатное значение для шкалы Q2PRO-X.


21. Рекомендуемые стартовые конфигурации

Вариант 1: колонки, простой и чистый звук

set s_enable 1

set s_khz 48

set s_sampleformat auto

set s_resampler linear

snd_restart

Смысл:

DMA;
без HRTF и room acoustics;
простой predictable path.

Вариант 2: универсальный OpenAL на колонках

set s_enable 2

set al_profile 0

set al_hrtf 0

set al_reverb 1

set al_sound_profile balanced

set al_resampler cubic

snd_restart

Смысл:

современный OpenAL;
без headphone-HRTF;
умеренная акустика.

Вариант 3: наушники, соревновательный OpenAL

set s_enable 2

set al_profile 1

set al_hrtf 2

set al_reverb 0

set al_binaural 2

set al_binaural_profile default

snd_restart

Смысл:

классический R1Q2-like spatial feel;
HRTF включён;
минимум лишней room-обработки.

Вариант 4: наушники, пространственный modern Q2PRO-X

set s_enable 2

set al_profile 0

set al_hrtf 2

set al_reverb 1

set al_sound_profile balanced

set al_binaural 2

set al_binaural_profile deep

snd_restart

Смысл:

более современный OpenAL-профиль;
room acoustics;
binaural layer;
хорошая база для наушников.


22. Когда крутить что именно

Проблема: "слишком сухо"

Попробуй:

al_reverb 1
al_sound_profile balanced или immersive
немного поднять al_eax_wet

Проблема: "слишком замылено / слишком много хвоста"

Попробуй:

уменьшить al_eax_wet
уменьшить al_reverb_late
уменьшить al_reverb_decay
перейти на competitive
либо вообще временно выключить al_reverb

Проблема: "в наушниках плохо понимаю, где источник"

Попробуй:

al_hrtf on
al_binaural on
al_binaural_profile default или auto
если сцена слишком резкая — чуть-чуть добавить al_binaural_crossfeed

Проблема: "мои собственные звуки слишком гремят в помещении"

Попробуй:

уменьшить al_eax_local_wet

Проблема: "взрывы недостаточно ощущаются"

Попробуй:

поднять al_eax_explosion_wet
немного поднять al_eax_explosion_decay
немного поднять al_eax_explosion_late

Проблема: "слишком громкие movers / loops / hum"

Попробуй:

уменьшить s_ambient_volume
уменьшить al_eax_transport_wet


23. Матрица доступности: что работает где

Функция / параметрDMAOpenAL
s_driverданет
s_mixaheadданет как основной DMA-параметр
s_swapstereoданет
s_resamplerданет
al_profileнетда
al_hrtfнетда
al_binaural*нетда
al_reverb* / al_eax*нетда
al_resamplerнетда
al_resampler_listнетда
al_reverb_infoнетда
al_binaural_infoнетда
per-weapon volumesдада
per-category volumesдада
ogg_* music controlsдада
s_mute_when_inactiveдада


24. Связь со встроенным голосовым чатом

Это не основной предмет документа, но важно помнить:

текущий встроенный voice chat Q2PRO-X в первой фазе требует OpenAL и для передачи, и для приёма;
если s_enable не в режиме OpenAL, голосовая часть Phase 1 не будет полноценной.

То есть если ты планируешь пользоваться и игровым звуком, и встроенным voice:

OpenAL — практически обязательная база.


25. Самая короткая практическая памятка

Если нужно совсем коротко:

хочешь просто и классически — пробуй DMA
хочешь современный spatial звук — используй OpenAL
играешь в наушниках — обязательно пробуй al_hrtf
хочешь красивую среду — включай al_reverb
хочешь быстро и без ручного тюнинга — используй al_sound_profile
хочешь тонко балансировать матч — используй weapon / player volumes
если меняешь engine/profile/HRTF/binaural/output format — делай snd_restart
если не понимаешь, что реально открылось — смотри soundinfo


26. Заключение

Главная мысль такая:

Q2PRO-X сейчас умеет два разных звуковых мира:

консервативный и более классический (DMA, либо OpenAL R1Q2-like);
современный, пространственный и акустически богатый (OpenAL Q2PRO-X с HRTF / binaural / reverb).

Правильная настройка зависит не от "какой режим объективно лучший", а от того:

колонки у тебя или наушники;
нужен ли тебе максимально сухой боевой звук;
или тебе важнее пространство, depth и современная подача.

Если начинать без лишнего стресса, лучший путь такой:

1. выбрать backend (DMA или OpenAL);

1. если OpenAL — решить, нужен ли тебе Q2PRO-X или R1Q2-like;

1. отдельно решить вопрос HRTF;

1. отдельно решить, нужна ли room acoustics;

1. после этого уже полировать громкости оружия и категорий.

Такой порядок даёт самый быстрый путь к осознанной настройке, а не к хаотичному перебору.



27. Звуки AVFX

Слой AVFX имеет собственный звук и собственные громкости, отделённые от общей громкости игры.

Добавлены звуки дождя, снега, лавового пара, поверхностного пара, шагов по лужам и снегу, а также всплесков при падении в лужу.
Падение в лужу использует дополнительный слой всплеска и шагов поверх стандартного звука падения.
Поставляемые пресеты AVFX оставляют звуки включёнными, чтобы качество профиля включалось целиком.
Звуковые файлы выпуска лежат в baseq2\sound\q2prox\avfx.

27.1. Громкости звуков AVFX

Путь по меню: [[GEN:menu_path:q2prox_avfxvol]]

Громкость AVFX-звуков

ТипРазделПунктПеременная или переходЧто делает
РазделОсновноеОсновное
ПереключательОсновноеЗвукcl_avfx_audioГлавный переключатель всех AVFX-звуков: гром, слои дождя/ветра/снега/воды, ticks капель, plip'ы колец, шаги. Без WAV слой молчит. Применяется сразу. [Нет / Да]
ПолзунокОсновноеГромкость звуковcl_avfx_audio_volumeОбщая громкость AVFX-звуков (умножается на s_volume и подслои). Применяется сразу.
РазделПогода и средаПогода и среда
ПереключательПогода и средаЗвук ветраcl_avfx_audio_windГейт слоя ветра: эмбиент ветра/пыли/пепла/тумана, штормовой вариант и порывы. Без WAV молчит. Применяется сразу. [Нет / Да]
ПереключательПогода и средаЗвук дождяcl_avfx_audio_rainГейт основного шума дождя: лёгкий/обычный/сильный и подводный луп. Ticks капель и plip'ы колец — свои гейты. Без WAV молчит. Применяется сразу. [Нет / Да]
ПереключательПогода и средаЗвук капельcl_avfx_audio_rain_dropsЗвуки близких капель (только при пресете дождя). Без WAV молчит. Применяется сразу. [Нет / Да]
ПереключательПогода и средаЗвук снегаcl_avfx_audio_snowГейт эмбиента при пресете снега: намеренно тихий зимний ветер (snow_wind_loop.wav), не громкий шум снега. Без WAV молчит. Применяется сразу. [Нет / Да]
ПереключательПогода и средаЗвук водыcl_avfx_audio_waterPlip-звуки колец и мягкие звуки водной поверхности для контактов AVFX (при наличии WAV). Применяется сразу. [Нет / Да]
ПереключательПогода и средаГромcl_avfx_audio_thunderЗвук грома, привязанный к событиям молнии. Применяется сразу. [Нет / Да]
ПереходПогода и средаСобытия и небо...q2prox_avfxvol_eventsОткрыть звуки пара, небесных событий, кораблей и чёрной дыры.
ПереходПогода и средаКонтакты и живность...q2prox_avfxvol_contactsОткрыть звуки контактов с поверхностями и пространственные звуки живности.
РазделСервисСервис
ПереходСервисЗвуки AVFX выкл.set cl_avfx_audio 0Заглушить AVFX только общим мастером. Настройки отдельных слоёв, визуал и обычные звуки не меняются.
ПереходСервисВосстановить звуки AVFXcl_avfx_defaults_audioВосстановить зарегистрированные дефолты всех AVFX-звуков. Дополнительный звук чёрной дыры останется выключен по умолчанию.

Отдельные подменю отвечают за события и за контакты:

AVFX-звуки / События и небо

ТипРазделПунктПеременная или переходЧто делает
РазделПарПар
ПереключательПарЗвук параcl_avfx_audio_lava_steamКороткое шипение испарения, когда дождь/снег попадает в лаву. Громкость зависит от размера частиц. Визуал пара — отдельно. Применяется сразу. [Нет / Да]
ПереключательПарЗвук пара на поверхностяхcl_avfx_audio_lava_surface_steamМягкое позиционное шипение от тающей массы/воды у кромок лавы (steam_surface_hiss1..3), в точке поверхностного пара. Применяется сразу. [Нет / Да]
ПереключательПарЗвук пара от попаданийcl_avfx_weapon_snow_steam_audioОтдельный звук пара от горячих попаданий оружия по снегу. Визуал пара — часть эффекта оружия. Применяется сразу. [Нет / Да]
РазделНебесные эффектыНебесные эффекты
ПереключательНебесные эффектыЗвук взрыва от молнииcl_avfx_audio_impactЗвук взрыва в точке удара молнии (ракетный звук, затухает с расстоянием). Применяется сразу. [Нет / Да]
ПереключательНебесные эффектыЗвук падающих метеоровcl_avfx_audio_meteor_impactЗвуки падающих метеоров (шипение полёта, свист пролёта, удар, обломки). Отсутствующие WAV молча пропускаются. Применяется сразу. [Нет / Да]
ПереключательНебесные эффектыЗвук метеоров небаcl_avfx_audio_meteorЗвуки метеоров неба (треск сгорания). Отсутствующий WAV молча пропускается. Применяется сразу. [Нет / Да]
ПереключательНебесные эффектыЗвук кораблей в небеcl_avfx_spaceships_soundЗвук пролёта кораблей в небе. По умолчанию ВКЛ. 0 — беззвучные корабли. Отсутствующие WAV молча пропускаются. Применяется сразу. [Нет / Да]
ПолзунокНебесные эффектыГромкость кораблей в небеcl_avfx_spaceships_sound_volumeГромкость пролёта кораблей в небе. 0.35 (по умолчанию). 0 — тихо. Применяется сразу.
ПереключательНебесные эффектыЗвук чёрной дырыcl_avfx_blackhole_consumption_audioЗвук присутствия чёрной дыры: глубокий гравитационный слой нарастает с ВИДИМЫМ размером дыры, а позиционный слой направлен к ней. Нужны звук AVFX и видимая чёрная дыра; опциональный мастер поглощения не требуется. По умолчанию ВЫКЛ. Отсутствующие WAV молча пропускаются. Применяется сразу. [Нет / Да]
ПолзунокНебесные эффектыГромкость чёрной дырыcl_avfx_blackhole_consumption_audio_volumeГромкость присутствия чёрной дыры до общего AVFX-усиления. 0.70 (по умолчанию). Применяется сразу.
ПолзунокНебесные эффектыВлияние взглядаcl_avfx_blackhole_consumption_audio_focusНасколько взгляд на дыру усиливает слой разрыва. За спиной дыра остаётся слышимой: это только окраска микса, а не отключение. 0.30 (по умолчанию). Применяется сразу.
ПереключательНебесные эффектыСобытия чёрной дырыcl_avfx_blackhole_consumption_audio_eventsОграниченные события чёрной дыры: затягивание объектов, разрыв вещества светил и пространственный треск породы при отрыве от уровня. Всплески ограничены пулом голосов и задержкой. По умолчанию ВЫКЛ. Применяется сразу. [Нет / Да]
ПолзунокНебесные эффектыГромкость событий дырыcl_avfx_blackhole_consumption_audio_events_volumeГромкость событий чёрной дыры (затягивание объекта, разрыв вещества) до общего AVFX-усиления. Не зависит от громкости фонового слоя. 0.80 (по умолчанию). Применяется сразу.
ПереходНебесные эффектыНазадq2prox_avfxvolНазад к общему звуку, погоде и звукам контактов AVFX.

AVFX-звуки / Контакты и живность

ТипРазделПунктПеременная или переходЧто делает
РазделШаги по поверхностямШаги по поверхностям
ПереключательШаги по поверхностямЗвуки шагов по поверхностямcl_avfx_audio_surface_stepsГлавный гейт звуков шагов по AVFX-поверхностям. Разрешает снежные, мокрые и лужевые шаги, если включены их подслои и есть WAV-ассеты. Применяется сразу. [Нет / Да]
ПереключательШаги по поверхностямЗвуки шагов по лужамcl_avfx_audio_puddle_stepsРазрешает звуки мокрых шагов, когда игрок идёт или бежит по видимым AVFX-лужам. Нужны звуки шагов по поверхностям и общий звук AVFX. Применяется сразу. [Нет / Да]
ПереключательШаги по поверхностямЗвуки шагов по снегуcl_avfx_audio_snow_stepsРазрешает звуки шагов по видимому снежному покрову. Громкость и глубина зависят от видимого снега и роста сугробов. Применяется сразу. [Нет / Да]
РазделЖивностьЖивность
ПереключательЖивностьШипение при выстреле языкаcl_avfx_surface_materials_crawlers_audio_hissПространственное шипение звучит, когда змея открывает пасть и выстреливает языком. Несколько змей могут шипеть независимо. Нужен общий мастер звуков AVFX. По умолчанию выкл. Применяется сразу. [Нет / Да]
ПолзунокЖивностьГромкость шипенияcl_avfx_surface_materials_crawlers_audio_hiss_volumeГромкость шипения змей до общего регулятора громкости AVFX. Применяется сразу.
ПереключательЖивностьЖужжание мухcl_avfx_surface_materials_crawlers_audio_fliesВключает разные пространственные звуки жужжания у останков змей после появления мух. Разные трупы звучат независимо. По умолчанию выкл. Применяется сразу. [Нет / Да]
ПолзунокЖивностьГромкость мухcl_avfx_surface_materials_crawlers_audio_flies_volumeГромкость жужжания мух до общего регулятора громкости AVFX. Применяется сразу.
ПереходЖивностьНазадq2prox_avfxvolНазад к общему звуку, погоде и звукам контактов AVFX.

Такое разделение позволяет оставить погоду видимой, но тихой — частый выбор для соревновательной игры.


28. Музыка

28.1. Три независимых источника

В Q2PRO-X три источника музыки, и они не мешают друг другу:

ИсточникЧто этоЧем управляется
Интро при запускеОтдельное вступление при холодном запуске в менюСобственный переключатель; настройки игровой музыки на него не влияют
Онлайн-музыкаПлеер PROMODJ с поиском, воспроизведением и оверлеемМеню онлайн-музыки
Игровая музыкаКлассическая музыка Quake IIСобственные переменные игровой музыки

Порядок при запуске такой: вступление всегда играет первым, а автоплей онлайн-музыки начинается, когда оно закончится.

Подробности о вступлении — в руководстве по интро при запуске.

28.2. Онлайн-музыка

Онлайн музыка (PROMODJ)

ТипРазделПунктПеременная или переходЧто делает
РазделВоспроизведениеВоспроизведение
ПереключательВоспроизведениеОнлайн музыкаcl_music_online_enableГлавный выключатель (выкл = нет сети). Применяется сразу. [Нет / Да]
ПолеВоспроизведениеПровайдерcl_music_online_providerПровайдер музыки (сейчас один: promodj).
ПолзунокВоспроизведениеГромкостьcl_music_online_volumeГромкость онлайн-музыки (s_volume — главный). Применяется сразу.
ПереключательВоспроизведениеСообщения в консольcl_music_online_console_statusПоказывать статусные/отладочные сообщения онлайн-плеера в консоли. Выкл = обычное воспроизведение молчит. Применяется сразу. [Нет / Да]
ПереключательВоспроизведениеАвтоплейcl_music_online_autoplayАвтовоспроизведение при старте. Применяется сразу. [Нет / Да]
ПереключательВоспроизведениеПауза в игреcl_music_online_autopause_gameПауза во время игры/карты. Применяется сразу. [Нет / Да]
ПереключательВоспроизведениеВозобновлять после игрыcl_music_online_resume_after_gameВозобновлять после выхода в меню. Применяется сразу. [Нет / Да]
РазделЖанры и очередьЖанры и очередь
СписокЖанры и очередьРежим жанровcl_music_online_genre_modeРежим жанров. Применяется сразу. [Все / Выбранные / Случайный]
ПереключательЖанры и очередьСлучайноcl_music_online_randomСлучайный порядок. Применяется сразу. [Нет / Да]
ПереключательЖанры и очередьАвтоплей результатовcl_music_online_autoplay_resultsАвтоплей найденных результатов. Применяется сразу. [Нет / Да]
СписокЖанры и очередьОчередьcl_music_online_queue_modeРежим очереди. Применяется сразу. [Последовательно / Рулетка]
СписокЖанры и очередьВ концеcl_music_online_end_modeПоведение в конце плейлиста. Применяется сразу. [Стоп / Повтор плейлиста / Повтор трека]
СписокЖанры и очередь«Повезёт»: областьcl_music_online_lucky_scopeОбласть «мне повезёт». Применяется сразу. [Выбранный жанр / Случайный жанр / Вся музыка]
ПереключательЖанры и очередь«Повезёт»: непрерывноcl_music_online_lucky_continuousНепрерывный режим «повезёт». Применяется сразу. [Нет / Да]
ПолеЖанры и очередьБазовый URLcl_music_online_base_urlБазовый URL (по умолчанию PROMODJ).
ПолеЖанры и очередьЛюбимые жанрыcl_music_online_preferred_genresЛюбимые жанры (slug через ;).
РазделПлеер и overlayПлеер и overlay
ПереходПлеер и overlayОткрыть плеер...music_online_openОткрыть overlay онлайн-музыки.
ПереходПлеер и overlayМне повезётmusic_online_luckyСлучайный трек («мне повезёт»).
ПереходПлеер и overlayПроверка...music_online_probeДиагностика провайдера (в консоль).
ПереходПлеер и overlayВнешний вид overlay...q2prox_online_music_overlayНастройки внешнего вида overlay.
ПереходПлеер и overlayПрофиль для демок...q2prox_online_music_demoПрофиль музыки для проигрывателя демок.
КлавишаПлеер и overlayОткрыть/закрыть плеерmusic_online_toggleНазначьте клавишу для открытия/закрытия overlay онлайн-музыки.
ПереходПлеер и overlayЗвуковые настройки...g_soundОткрыть основное меню «звук и акустика».
РазделСбросСброс
ПереходСбросСбросить...set cl_music_online_enable 0; set cl_music_online_provider promodj; set cl_music_online_base_url https://promodj.com/music; set cl_music_online_preferred_genres ""; set cl_music_online_volume 0.70; set cl_music_online_console_status 0; set cl_music_online_autoplay 0; set cl_music_online_autopause_game 1; set cl_music_online_resume_after_game 1; set cl_music_online_genre_mode 0; set cl_music_online_random 0; set cl_music_online_autoplay_results 0; set cl_music_online_queue_mode 0; set cl_music_online_end_mode 0; set cl_music_online_lucky_scope 0; set cl_music_online_lucky_continuous 1Сбросить настройки онлайн-музыки.

У плеера есть собственный оверлей и отдельный режим для просмотра записей:

Онлайн музыка / Overlay

ТипРазделПунктПеременная или переходЧто делает
ПолзунокПрозрачностьcl_music_online_overlay_alphaПрозрачность окна. Применяется сразу.
ПолзунокМасштабcl_music_online_overlay_scaleМасштаб окна/шрифта. Применяется сразу.
ПереключательКомпактныйcl_music_online_overlay_compactКомпактный режим. Применяется сразу. [Нет / Да]
ПереключательПоказывать стилиcl_music_online_overlay_show_stylesПоказывать стили трека. Применяется сразу. [Нет / Да]
ПолзунокАвтоскрытиеcl_music_online_overlay_autohide_secАвтоскрытие (сек, 0 = выкл). Применяется сразу.
ПереходСбросить позицию...set cl_music_online_overlay_x -2147483648; set cl_music_online_overlay_y -2147483648; set cl_music_online_overlay_w 0; set cl_music_online_overlay_h 0Сбросить позицию/размер окна.
ПереходСбросить вид...set cl_music_online_overlay_alpha 0.90; set cl_music_online_overlay_scale 1.20; set cl_music_online_overlay_compact 0; set cl_music_online_overlay_show_styles 1; set cl_music_online_overlay_autohide_sec 0Сбросить внешний вид overlay.

Онлайн музыка / Профиль демок

ТипРазделПунктПеременная или переходЧто делает
РазделВоспроизведениеВоспроизведение
ПереключательВоспроизведениеВкл. для демокcl_demoplayer_music_online_enableОнлайн-музыка в проигрывателе демок. Применяется сразу. [Нет / Да]
ПолеВоспроизведениеПровайдер (демо)cl_demoplayer_music_online_providerПровайдер (демо), сейчас один: promodj.
ПолеВоспроизведениеБазовый URL (демо)cl_demoplayer_music_online_base_urlБазовый URL (демо).
ПолзунокВоспроизведениеГромкость демоcl_demoplayer_music_online_volumeГромкость для демок. Применяется сразу.
ПереключательВоспроизведениеАвтоплей демоcl_demoplayer_music_online_autoplayАвтоплей в демках. Применяется сразу. [Нет / Да]
ПереключательВоспроизведениеПауза с демкойcl_demoplayer_music_online_pause_with_demoПауза вместе с демкой. Применяется сразу. [Нет / Да]
РазделЖанры и очередьЖанры и очередь
ПолеЖанры и очередьЛюбимые жанры (демо)cl_demoplayer_music_online_preferred_genresЛюбимые жанры (демо), slug через ;.
СписокЖанры и очередьРежим жанров демоcl_demoplayer_music_online_genre_modeРежим жанров (демо). Применяется сразу. [Все / Выбранные / Случайный]
ПереключательЖанры и очередьСлучайно демоcl_demoplayer_music_online_randomСлучайный порядок (демо). Применяется сразу. [Нет / Да]
ПереключательЖанры и очередьАвтоплей результатов демоcl_demoplayer_music_online_autoplay_resultsАвтоплей найденного (демо). Применяется сразу. [Нет / Да]
СписокЖанры и очередьОчередь демоcl_demoplayer_music_online_queue_modeОчередь (демо). Применяется сразу. [Последовательно / Рулетка]
СписокЖанры и очередьВ конце демоcl_demoplayer_music_online_end_modeВ конце (демо). Применяется сразу. [Стоп / Повтор плейлиста / Повтор трека]
СписокЖанры и очередь«Повезёт»: область демоcl_demoplayer_music_online_lucky_scopeОбласть «повезёт» (демо). Применяется сразу. [Выбранный жанр / Случайный жанр / Вся музыка]
ПереключательЖанры и очередь«Повезёт» непрерывно демоcl_demoplayer_music_online_lucky_continuous«Повезёт» непрерывно (демо). Применяется сразу. [Нет / Да]
ПереходЖанры и очередьСбросить...set cl_demoplayer_music_online_enable 0; set cl_demoplayer_music_online_provider promodj; set cl_demoplayer_music_online_base_url https://promodj.com/music; set cl_demoplayer_music_online_volume 0.70; set cl_demoplayer_music_online_autoplay 0; set cl_demoplayer_music_online_pause_with_demo 0; set cl_demoplayer_music_online_preferred_genres ""; set cl_demoplayer_music_online_genre_mode 0; set cl_demoplayer_music_online_random 0; set cl_demoplayer_music_online_autoplay_results 0; set cl_demoplayer_music_online_queue_mode 0; set cl_demoplayer_music_online_end_mode 0; set cl_demoplayer_music_online_lucky_scope 0; set cl_demoplayer_music_online_lucky_continuous 1Сбросить профиль музыки для демок.

28.3. Кнопки управления музыкой у логотипа

Пока играет вступление, рядом с логотипом главного меню видны небольшие круглые кнопки: заглушить звук вступления и плавно завершить его. Отдельная кнопка заглушает онлайн-музыку. Эти кнопки не меняют сохранённые громкости.

28.4. Музыка никогда не задерживает игру

Загрузка, воспроизведение и затухание музыки не имеют права задерживать загрузку карты, подключение к серверу или выход из игры. Начало загрузки карты плавно завершает вступление, и затухание идёт своим ходом, не удерживая ничего.

Недоступный онлайн-трек не оставляет плеер в тупике: показывается конкретный неоткрывшийся адрес и выполняется ограниченный переход к другому треку.


29. Звук таймеров предметов

Живые таймеры предметов имеют собственный звуковой слой: общий сигнал предупреждения, посекундный отсчёт и отдельный сигнал возрождения предмета. В богатом режиме используются фразы для конкретных предметов.

Все файлы этого слоя необязательны: отсутствующий файл молча пропускается и не ломает игру. Подробности — в руководстве по таймерам предметов.


30. Заключение по звуку выпуска

Звуковой слой Q2PRO-X делится на четыре независимых части, и путать их не стоит:

1. Игровой звук — движок, пространственность, акустика, громкости.

2. Звук AVFX — погода, события и контакты со своими громкостями.

3. Музыка — вступление, онлайн-плеер и классическая игровая музыка.

4. Голосовой чат — отдельная подсистема, описанная в собственном руководстве.

Каждая часть настраивается отдельно и не отменяет остальные.