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