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:
parent
0ebcc76135
commit
6e00a47416
1 changed files with 65 additions and 29 deletions
94
svdemo.txt
94
svdemo.txt
|
|
@ -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 (продолжить)
|
||||||
|
|
||||||
|
|
||||||
===========================================================================
|
===========================================================================
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue