diff --git a/svdemo.txt b/svdemo.txt index 24dc836..10e2480 100644 --- a/svdemo.txt +++ b/svdemo.txt @@ -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 (продолжить) + + ===========================================================================