Теперь проект работает в двух режимах:
control.html- страница управления турниром, командами, стадиями и layer-ссылками.index.html?scene=...- готовый overlay для конкретного Browser input вvMix.
- отдельные scene-пресеты с разными ссылками;
- режимы
full,focus,list; - размещение сцены
left,center,right; - ширина
narrow,medium,wide,full; - включение или отключение верхнего HUD;
- быстрый глобальный rename команд;
- редактирование секций, раундов и матчей через UI;
- сохранение проекта в
storage/project.json.
node server.mjsПосле запуска:
- панель управления:
http://127.0.0.1:8181/control.html - overlay по сцене:
http://127.0.0.1:8181/index.html?scene=main-full
Если порт 8181 уже занят, можно запустить так:
$env:PORT='8182'
node server.mjsТогда и ссылки будут на 8182.
- Открываешь
control.html. - Меняешь название турнира, subtitle, event, время обновления, цвета.
- Создаёшь scene-пресеты:
- например
main-full left-focusright-listgrand-final
- например
- Для каждого scene выбираешь:
viewpositionwidth- показывать ли
HUD - нужную секцию и нужный раунд
- В редакторе ниже меняешь команды, seed, score, status, note и winner.
- Нажимаешь
Save Project. - Копируешь нужную ссылку сцены в отдельный Browser input в
vMix.
Полная сетка:
http://127.0.0.1:8181/index.html?scene=main-full
Левый фокус-блок:
http://127.0.0.1:8181/index.html?scene=left-focus
Правый компактный список матчей:
http://127.0.0.1:8181/index.html?scene=right-list
Финал:
http://127.0.0.1:8181/index.html?scene=grand-final
control.html,control.js,control.css- UI для настройки;index.html,app.js,styles.css- сам overlay;server.mjs- локальный сервер и API;storage/project.json- сохранённый проект;data/*.json,data/*.tsv- старые примеры данных, если захочешь использовать их отдельно.
Сервер отдаёт:
GET /api/project- весь проект;PUT /api/project- сохранить проект;GET /api/state?scene=scene-id- готовое состояние overlay для конкретной сцены.
Самый удобный сценарий:
- Сделать несколько Browser inputs.
- В каждый вставить свою
sceneссылку. - Переключать их как отдельные графические элементы в зависимости от матча и стадии турнира.
Так ты один раз собираешь структуру турнира, а потом просто используешь разные ссылки под разные layer-задачи.