Update svdemo manual: pause, seek, keyframes, playback controls

Complete rewrite covering all current features: pause/resume,
fast seek, precise seekexact, keyframe settings, pause-empty,
follow mode controls, chat recording, file size estimates.
Removed obsolete LZ4 compression docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
serge_shubin 2026-03-24 20:38:06 +08:00
parent 0ebcc76135
commit 6e00a47416

View file

@ -18,18 +18,42 @@
КОНСОЛЬНЫЕ КОМАНДЫ КОНСОЛЬНЫЕ КОМАНДЫ
------------------ ------------------
Запись:
svdemo_record <имя> svdemo_record <имя>
Начать запись серверного демо. Файл сохраняется в Начать запись серверного демо. Файл сохраняется в
svdemos/<имя>.svdm внутри игровой директории. svdemos/<имя>.svdm внутри игровой директории.
svdemo_play <имя>
Воспроизвести серверное демо. Загружает карту из записи,
подключает зрителя автоматически.
svdemo_stop svdemo_stop
Остановить текущую запись или воспроизведение. Остановить текущую запись или воспроизведение.
При остановке воспроизведения происходит отключение от сервера. При остановке воспроизведения происходит отключение от сервера.
Воспроизведение:
svdemo_play <имя>
Воспроизвести серверное демо. Загружает карту из записи,
подключает зрителя автоматически. Можно вызывать из меню,
из игры или во время просмотра другого демо.
svdemo_pause
Пауза / продолжение воспроизведения. Во время паузы камера
свободно перемещается, сущности заморожены.
На экране отображается "Playback Paused".
svdemo_seek <секунды>
Перемотка относительно текущей позиции. Положительное значение --
вперёд, отрицательное -- назад.
Перемещает к ближайшему ключевому кадру (точность ±5 сек).
Работает в паузе.
Пример: svdemo_seek -10 (назад на 10 секунд)
svdemo_seekexact <секунды>
Точная перемотка. Находит ближайший ключевой кадр, затем
прочитывает кадры до целевого времени. Точность до одного
серверного кадра (50 мс при sv_fps 20). Может занять долю
секунды на длинных перемотках. Работает в паузе.
Пример: svdemo_seekexact -10 (назад ровно на 10 секунд)
НАСТРОЙКИ (CVARS) НАСТРОЙКИ (CVARS)
----------------- -----------------
@ -39,16 +63,17 @@
Файлы именуются автоматически: <карта>_ГГГГММДД_ЧЧММСС.svdm Файлы именуются автоматически: <карта>_ГГГГММДД_ЧЧММСС.svdm
Пример: q3dm6_20260323_141530.svdm Пример: q3dm6_20260323_141530.svdm
Для включения: set svdemo_autorecord 1 svdemo_pauseEmpty <0|1> (по умолчанию: 1)
Значение сохраняется в конфигурации (CVAR_ARCHIVE). Пауза воспроизведения, когда нет подключённых зрителей.
Демо начинается с первого кадра при подключении зрителя.
svdemo_compress <0|1> (по умолчанию: 1) svdemo_keyframeInterval <секунды> (по умолчанию: 5, 0 = выкл.)
Сжатие данных демо алгоритмом LZ4. Уменьшает размер файла Интервал ключевых кадров. Ключевые кадры позволяют перематывать
при незначительных затратах на производительность. запись. Чем меньше интервал, тем точнее перемотка командой
Включено по умолчанию. Установите 0 для отключения. svdemo_seek, но немного больше размер файла. Первый кадр
Значение сохраняется в конфигурации (CVAR_ARCHIVE). записи всегда является ключевым.
Влияет только на запись — воспроизведение автоматически
определяет, сжат файл или нет. Все настройки сохраняются в конфигурации (CVAR_ARCHIVE).
ЗАПИСЬ ЗАПИСЬ
@ -82,19 +107,23 @@
3. Управление зрителем: 3. Управление зрителем:
- Свободная камера: перемещайтесь как обычный спектатор - Свободная камера: перемещайтесь как обычный спектатор
- Следование за игроком: нажмите MOUSE2 (USE) для входа - Следование за игроком: нажмите MOUSE1 (ATTACK) для входа
в режим следования в режим следования и переключения между игроками
- Переключение между игроками: MOUSE1 (ATTACK) - Выход из следования: team spectator (можно забиндить)
- Выход из следования: MOUSE2 снова
4. В режиме следования вы видите игру от первого лица выбранного 4. В режиме следования вы видите игру от первого лица выбранного
игрока с полным HUD: здоровье, броня, боеприпасы, оружие. игрока с полным HUD: здоровье, броня, боеприпасы, оружие.
5. Табло (TAB) показывает счёт записанных игроков. 5. Табло (TAB) показывает счёт записанных игроков.
6. Остановка: 6. Управление воспроизведением:
svdemo_stop - svdemo_pause -- пауза/продолжение
Также воспроизведение останавливается автоматически при - svdemo_seek -10 -- быстрая перемотка назад на 10 сек
- svdemo_seek 30 -- быстрая перемотка вперёд на 30 сек
- svdemo_seekexact -10 -- точная перемотка назад на 10 сек
- svdemo_stop -- остановка и выход
7. Воспроизведение останавливается автоматически при
достижении конца записи. достижении конца записи.
@ -108,15 +137,11 @@
- Заголовок: название карты, настройки сервера, конфигстроки - Заголовок: название карты, настройки сервера, конфигстроки
(имена игроков, модели, настройки игры) (имена игроков, модели, настройки игры)
- Покадровые данные: дельта-сжатые состояния сущностей и игроков, - Покадровые данные: дельта-сжатые состояния сущностей и игроков,
изменения конфигстрок серверные команды (чат, принты), изменения конфигстрок
- Ключевые кадры с индексом в конце файла
Используется двухуровневое сжатие: Дельта-кодирование обеспечивает компактный размер файла.
1. Дельта-кодирование: записываются только изменившиеся поля Типичный 10-минутный матч с 10 ботами занимает ~8 МБ.
сущностей и игроков между кадрами.
2. LZ4-сжатие (опционально): дополнительно сжимает блоки данных
каждого кадра. Включено по умолчанию (svdemo_compress 1).
Типичная 10-секундная запись занимает ~50 КБ.
Одна запись = одна карта. При смене карты запись останавливается. Одна запись = одна карта. При смене карты запись останавливается.
@ -124,13 +149,14 @@
ОГРАНИЧЕНИЯ ОГРАНИЧЕНИЯ
----------- -----------
- Нельзя перематывать запись вперёд или назад.
- Если в записанной игре было 64 игрока (MAX_CLIENTS), один - Если в записанной игре было 64 игрока (MAX_CLIENTS), один
из них не будет виден при воспроизведении (его слот занят зрителем). из них не будет виден при воспроизведении (его слот занят зрителем).
- Воспроизведение требует наличия тех же pk3-файлов (карты, модели), - Воспроизведение требует наличия тех же pk3-файлов (карты, модели),
что использовались при записи. что использовались при записи.
- Демо несовместимы между разными версиями движка, если изменился - Демо несовместимы между разными версиями движка, если изменился
формат сетевых структур. формат сетевых структур.
- При перемотке могут кратковременно отображаться визуальные артефакты
(частицы, вспышки) от локальных эффектов.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
@ -157,4 +183,14 @@
svdemo_play duel_finals svdemo_play duel_finals
Просмотр с перемоткой:
svdemo_play duel_finals
(подождать 30 секунд)
svdemo_seekexact -20 (вернуться на 20 секунд назад)
svdemo_pause (поставить на паузу)
svdemo_seek -5 (ещё назад на 5 секунд, в паузе)
svdemo_pause (продолжить)
=========================================================================== ===========================================================================