Граф связей
Визуальная карта всех сущностей и их связей в кампании.
Три режима
Сверху графа — пилюли-переключатели. Переключаться можно мышкой или клавиатурой.
| Режим | Клавиша | Что здесь делать |
|---|---|---|
| Browse (просмотр) | B | Ходить по графу, смотреть сущности, открывать редактор |
| Connect (связывать) | C | Создавать связи перетаскиванием между хендлами |
| Arrange (размещать) | A | Таскать узлы, закреплять позиции, сохранять раскладку |
Esc возвращает в Browse из любого режима.
Режим Browse (по умолчанию)
Навигация
- Одиночный клик по узлу — открывает лёгкую preview-карточку (имя, summary, тип, счётчик связей, кнопки действий)
- Двойной клик — открывает полный редактор сущности (drawer)
- Клик по пустому канвасу — закрывает preview, но не сбрасывает активный фокус
/— фокусирует поле поиска откуда угодно
Кнопки в preview-карточке
| Кнопка | Действие |
|---|---|
| Открыть | Открывает полный редактор |
| Фокус 1 шаг / Фокус 2 шага | Прячет несвязанные узлы, показывает только в радиусе 1 или 2 связей |
| Сбросить фокус | Убирает фильтр фокуса |
| Связать | Открывает модалку связи с этим узлом как источник |
| ⚔ (только NPC) | Добавляет NPC на Battle Map |
| ✕ | Закрывает preview |
Клавиатура
| Клавиша | Действие |
|---|---|
/ | Фокус в поиск |
F | Фокус 1 шаг на выбранном (или текущем фокусном) узле |
Shift+F | Фокус 2 шага |
B / C / A | Переключение режимов |
Esc | Каскад: закрыть модалку → закрыть редактор → снять edge → закрыть preview → снять фокус → выйти в Browse (один шаг за нажатие) |
Del / Backspace | Удалить выделенную связь |
Режим Connect
Вход по пилюле Connect или клавише C. Сверху графа появляется постоянный баннер-подсказка: «Перетащите от хендла одного узла к другому, чтобы создать связь».
- Хендлы узлов становятся заметнее (ярче точки слева/справа)
- Перетащите от хендла к другому узлу — откроется модалка связи:
- 6 готовых меток (находится в, враг, лидер, даёт квест, владеет, союзник)
- Поле для своей метки (до 80 символов)
- Кнопка «Без метки»
- Связь узла с самим собой блокируется автоматически
- Preview-карточка работает в Connect тоже — одиночный клик её открывает
Режим Arrange
Вход по пилюле Arrange или клавише A. Над графом появляется тулбар с кнопками «Авто-раскладка» / «Сбросить размещение» и инструкция.
- Перетащите любой узел — позиция сохранится автоматически в браузере (localStorage)
- Позиции хранятся per-campaign и переживают перезагрузку
- Закрепите узел через preview (кнопка Закрепить) — на узле появится 📌 иконка во всех режимах
- Авто-раскладка — пересчитает автоматическое размещение для незакреплённых узлов; закреплённые остаются на месте
- Сбросить размещение — стирает все сохранённые позиции, всё возвращается к автоматической раскладке
Закрепление полезно, когда хочется, чтобы определённые узлы (главный квестодатель, например) всегда были в конкретном месте, независимо от того, как развивается остальной граф.
Фильтры (popover)
Кнопка Фильтры справа в тулбаре открывает панель.
| Фильтр | Что делает |
|---|---|
| По типу | Чекбоксы: NPC, Локации, Квесты, Фракции, События, Заметки, Лор |
| По сессии (dropdown) | Показать только сущности из конкретной сессии |
| Только активные квесты | Квесты «активные» + соседи на 1 шаг |
| Показать скрытые | Видимость GM-only сущностей |
| Скрыть изолированные | Убрать узлы без связей (по умолчанию включено) |
| Поиск | Подсветка узлов по имени |
Все фильтры комбинируются. Бейдж рядом с кнопкой показывает, сколько нестандартных фильтров активно.
Виды (пресеты)
Рядом с переключателем режимов — три пилюли-пресета, которые одним кликом применяют детерминированный набор фильтров.
| Вид | Что показывает |
|---|---|
| Сюжет | Квесты, события, NPC, заметки |
| Мир | Локации, фракции, лор, NPC |
| Сессия | Сущности выбранной сессии + их соседи на 1 шаг |
Пресеты детерминированны — клик всегда приводит к одному и тому же состоянию фильтров (типы, поиск, переключатели квестов/видимости/изолированных сбрасываются в значения пресета) независимо от того, что было до этого. Сохраняется только выбранная сессия в дропдауне.
Пресет Сессия недоступен пока сессия не выбрана в дропдауне. Его расширение на 1 шаг уважает фильтр по типам: если выключить тип через popover, соседи этого типа не подтянутся.
Активный пресет подсвечен янтарным. Любое изменение фильтров снимает подсветку (но сохраняет значения).
Панель без связей (orphans)
В левом нижнем углу канваса появляется плавающий бейдж с количеством сущностей по всей кампании, у которых нет ни одной связи (например, «3 без связей»). Бейдж скрыт, когда все сущности связаны.
Клик по бейджу открывает drawer со списком этих сущностей. Для каждой строки:
| Действие | Эффект |
|---|---|
| Открыть | Открывает редактор этой сущности (drawer остаётся открытым) |
| Связать | Сбрасывает фильтры в «показать всё», переключает в режим Connect, центрирует камеру на этой ноде и закрывает drawer — можно тянуть связь к любой цели |
| Удалить | Подтверждение → удаление → обновление списка |
Удаления идут по одному — drawer остаётся открытым на ошибке (с toast-сообщением), и закрыть его нельзя пока идёт операция.
Счётчик и список — по всей кампании, не зависят от текущего вида. Можно находиться в виде «Сюжет» и всё равно увидеть orphan'ов любого типа в drawer — это намеренно: бейдж показывает здоровье кампании в целом, а не метрику текущего view.
Сохранённые виды
Рядом с пилюлями Сюжет / Мир / Сессия есть меню «⋯» для пользовательских именованных видов. Пункт «Сохранить текущий вид…» фиксирует любую комбинацию типов, фильтра сессии, переключателей квестов и видимости. Имя 1–40 символов.
- Применить — клик по названию; поля переключаются на сохранённый снимок. Активный в данный момент вид подсвечен янтарным.
- Переименовать / Удалить — при наведении иконки «карандаш» / «×».
- Сессия — сохранённый вид помнит
sessionIdна момент сохранения. Если сессия позже удалена, применение всё равно работает (просто без выбранной сессии).
Виды хранятся в localStorage браузера по кампании и между устройствами не синхронизируются в этой версии. До 20 видов на кампанию.
Сохранённые раскладки (Arrange)
Arrange теперь поддерживает несколько именованных раскладок на кампанию — «Политическая карта», «Маршрут путешествия», «Социальные связи». Существующие позиции (если были) при обновлении становятся раскладкой Default.
В Arrange-toolbar появился dropdown Раскладка ▾:
- Сохранить как… — создаёт новую раскладку с текущими позициями и пинами, делает её активной.
- Загрузить — переключение между раскладками.
- Переименовать / Удалить — по hover-иконкам. Нельзя удалить единственную раскладку.
Хранится в localStorage. До 10 раскладок на кампанию.
Подсказки (Smart hints)
Бейдж 💡 в левом верхнем углу графа показывает проактивные наблюдения. Клик — drawer со списком до пяти подсказок:
| Подсказка | Когда появляется |
|---|---|
| сущностей без связей | Есть orphan-ы и бейдж orphans скрыт (нет дубляжа сигнала). |
| Квест «X» активен, но не обновлялся N дней | Квест со статусом active не редактировался больше двух недель. |
| «Y» пока без связей | Сущность создана/обновлена в последние две недели и всё ещё без связей. |
«Скрыть» убирает подсказку навсегда для этой кампании (сохраняется в localStorage). Бейдж скрыт когда подсказок нет.
Бейджи на узлах (иконки)
Вместо бордеров и прозрачности состояния сущности теперь показаны маленькими монохромными иконками прямо в узле:
| Иконка | Значение |
|---|---|
| 🔒 Замок (префикс) | Скрыта от игроков (GM-only) |
| 🕘 Часы (суффикс) | Недавно изменена (последние 7 дней) |
| ✓ Галочка (суффикс) | Завершённый или проваленный квест |
| 🎯 Мишень (суффикс) | Участвует в текущей выбранной сессии |
| 📌 Булавка (суффикс) | Закреплена в режиме Arrange |
У узла может быть несколько бейджей одновременно. Иконки декоративны — screen readers читают только имя сущности.
Бордеры и подсветки
| Визуал | Значение |
|---|---|
| Синяя рамка 2px + свечение | Текущий выбранный (кликнутый) узел |
| Янтарная рамка 2px | Совпадение с поиском; несовпавшие приглушены до 35% |
Мобильная версия
- Preview превращается в bottom sheet с «ручкой» сверху
- Свайп по ручке вниз закрывает карточку (короткий свайп возвращает)
- Касания самой карточки, кнопок, текста свайп не запускают — только сама ручка
- Полный редактор открывается на весь экран, а не боковой панелью
Лимит узлов
Граф поддерживает до 200 узлов. При превышении появляется предупреждение — используйте фильтры.
Цвета типов
| Тип | Цвет |
|---|---|
| NPC | Синий |
| Локация | Зелёный |
| Квест | Оранжевый |
| Фракция | Красный |
| Событие | Фиолетовый |
| Заметка | Серый |
| Лор | Бирюзовый |
Связанные разделы
- Кампании — создание, карточки, связи
- Обзор и сессии — дашборд, журнал сессий
- Миры — переиспользуемые миры