[enhancement] Постоянные звуковые источники мода: движение, loops, остановка и lifecycle для live/replay #95

Closed
opened 2026-10-30 10:30:37 +00:00 by chexit · 1 comment
Owner

🤖 Filed by Codex, AI-агент Владимира (chexit).

Архитектурный проход по 76f680eba64b64eb28435e71ce9f22a84b0e5da1.

Основание

Текущий мод отдаёт Out.sounds = (event, position, volume, pitch) и render::play_sound. Гул двигателя/движения переозвучивается отдельными one-shot событиями. Нет доступного модовой сцене устойчивого sound-source handle для update/stop/перемещения. Внутренний mixer Horizon уже имеет Channel, looping, position и pitch — речь о безопасном API/adaptor для существующих возможностей, не о втором аудиодвижке.

Это отдельная основа для ощущения пролёта и будущей акустики: отражения не решат скачки неподвижных one-shot источников.

Предложение

  • SourceId с поколением сессии: start/stop/update pose+velocity/gain/pitch/loop, привязка к entity; звук двигателя следует реальному дрону/ракете.
  • Click-free attack/release и переходы engine ignition/burnout/damage. Doppler — опциональная ограниченная настройка; не менять скорость самого боя и не удваивать эффект со встроенным pitch.
  • One-shot взрыв и непрерывный двигатель имеют разные правила задержки/истории emission; источник в реплее берёт recorded time, а не текущий entity.
  • Voice budget, приоритет слышимых близких источников и virtualized distant loops; лимит не должен навсегда терять событие stop. Удаление цели, seek/cut, stop export и world unload освобождают источники.

Приёмка

Дрон пролетает над игроком без скачков позиции/щелчков; после уничтожения двигатель прекращается, остаётся нужный огонь/обломки. 100 start/seek/stop циклов не накапливают voices. Preview и offline export проигрывают одинаковый набор источников по времени сцены. UI/music остаются отдельными relative/category звуками.

Общий порядок и зависимости: архитектурная дорожная карта.

🤖 Filed by Codex, AI-агент Владимира (chexit). Архитектурный проход по `76f680eba64b64eb28435e71ce9f22a84b0e5da1`. ### Основание Текущий мод отдаёт `Out.sounds = (event, position, volume, pitch)` и `render::play_sound`. Гул двигателя/движения переозвучивается отдельными one-shot событиями. Нет доступного модовой сцене устойчивого sound-source handle для update/stop/перемещения. Внутренний mixer Horizon уже имеет Channel, looping, position и pitch — речь о безопасном API/adaptor для существующих возможностей, не о втором аудиодвижке. Это отдельная основа для ощущения пролёта и будущей акустики: отражения не решат скачки неподвижных one-shot источников. ### Предложение - `SourceId` с поколением сессии: start/stop/update pose+velocity/gain/pitch/loop, привязка к entity; звук двигателя следует реальному дрону/ракете. - Click-free attack/release и переходы engine ignition/burnout/damage. Doppler — опциональная ограниченная настройка; не менять скорость самого боя и не удваивать эффект со встроенным pitch. - One-shot взрыв и непрерывный двигатель имеют разные правила задержки/истории emission; источник в реплее берёт recorded time, а не текущий entity. - Voice budget, приоритет слышимых близких источников и virtualized distant loops; лимит не должен навсегда терять событие stop. Удаление цели, seek/cut, stop export и world unload освобождают источники. ### Приёмка Дрон пролетает над игроком без скачков позиции/щелчков; после уничтожения двигатель прекращается, остаётся нужный огонь/обломки. 100 start/seek/stop циклов не накапливают voices. Preview и offline export проигрывают одинаковый набор источников по времени сцены. UI/music остаются отдельными relative/category звуками. Общий порядок и зависимости: [архитектурная дорожная карта](https://gitea.maoniao.team/chexit/airdef/issues/103).
chexit added the area:architecturearea:audiopriority:P2type:enhancement labels 2026-10-30 10:30:37 +00:00
Author
Owner

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/766b292 (запушено в main). Владимир послушал в игре: «95 ок вроде».

🤖 Agent: сделано в https://gitea.maoniao.team/chexit/airdef/commit/766b292 (запушено в main). Владимир послушал в игре: «95 ок вроде».
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#95