Устройство квеста: главы, ноды и контент
Разберёмся, из чего состоит квест в Meander — как данные хранятся и как связаны между собой.
Общая архитектура
Квест в Meander — это иерархия вложенных элементов:
Квест
├── Главы (теги) → разделы сценария
│ └── Ноды → блоки с контентом
│ └── Контент → текст, кнопки, изображения и т.д.
├── Связи → переходы между нодами
├── Переменные → состояние квеста
└── Ресурсы → изображения, аудиоВсё хранится в JSON-файлах внутри папки квеста. Формат открытый — можно править вручную.
Главы (теги)
Главы — это разделы вашего сценария. Каждая глава имеет уникальный ID, название и может содержать собственное фоновое изображение или аудио.
Зачем нужны главы
- Организация — разбейте квест на акты, локации или сюжетные арки
- Общий фон — задайте одну фоновую картинку для всех нод в главе
- Фильтрация на канвасе — работайте только с нодами выбранной главы
Как создаются
На экране деталей квеста откройте «Сценарий и Главы» → нажмите «+» → введите название главы.
Главы хранятся в config.json в массиве tags. Каждая глава содержит поля:
{
"id": "tag_uuid",
"name": "Пролог",
"questId": "quest_uuid",
"backgroundAssetId": null,
"backgroundAudioId": null,
"folderPath": "/"
}Можно группировать главы в папки через поле folderPath.
Ноды
Нода — это блок с контентом, одна «сцена» вашего квеста. Когда игрок проходит квест, он перемещается от ноды к ноде через связи (переходы).
Модель ноды
Каждая нода обладает следующими свойствами:
| Поле | Описание |
|---|---|
id | Уникальный идентификатор ноды |
chapterId | ID главы, к которой принадлежит нода |
position | Позиция на канвасе (x, y) |
label | Заголовок ноды |
description | Описание (видно только в редакторе) |
backgroundAssetId | Фоновое изображение (переопределяет фон главы) |
backgroundAudioId | Фоновый звук |
scriptAssetId | Привязанный скрипт (выполняется при входе) |
timerDuration | Таймер — автопереход через N секунд |
defaultActionNodeId | Целевая нода для автоперехода по таймеру |
isStartNode | Является ли стартовой нодой квеста |
Типы связей между нодами
| Тип | Цвет | Назначение |
|---|---|---|
| Content | 🟢 Зелёный | Обычные переходы (кнопка → следующая нода) |
| Timer | 🟡 Жёлтый | Автопереход по таймеру (виртуальная связь) |
| Script | 🟣 Фиолетовый | Переходы из скриптов через go_to_node (виртуальная связь) |
Связи создаются на канвасе: включите режим связей (иконка цепочки), кликните на исходную ноду, перетащите к целевой.
Контент ноды
Каждая нода содержит массив элементов контента (content.items). Это то, что видит игрок при прохождении.
Типы контента
| Тип | Что делает |
|---|---|
text | Текст с поддержкой Markdown и переменных ({здоровье}) |
button | Кнопка выбора — ведёт к другой ноде или запускает скрипт |
input | Поле ввода — сохраняет ответ игрока в переменную |
wait_input | Пауза — ждёт клика игрока для продолжения |
image | Изображение из ресурсов квеста |
audio | Аудиофайл из ресурсов квеста |
script | Выполнение визуального скрипта |
modal | Всплывающее окно с кнопками и Markdown-содержимым |
chat | Сообщение в стиле мессенджера (имя, аватар, входящее/исходящее) |
row | Горизонтальный контейнер — группирует элементы в строку |
column | Вертикальный контейнер — группирует элементы в столбец |
Скрипт-триггеры
У элементов контента (кнопки, инпуты) есть триггеры — скрипты, которые выполняются при определённых событиях:
| Триггер | Когда срабатывает |
|---|---|
onAppear | При появлении элемента на экране |
onPress | При нажатии на элемент |
onSubmit | При отправке поля ввода |
Переменные
Переменные хранят состояние квеста: здоровье, инвентарь, флаги, репутацию.
Инициализация
Переменные задаются в настройках квеста (config.json → массив variables). Каждая переменная имеет имя, тип и начальное значение.
Использование в тексте
В любом текстовом поле можно вставить переменную через фигурные скобки:
У вас {здоровье} HP и {золото} монет.
При отображении Meander автоматически подставит текущие значения.
Визуальные скрипты
Скрипты — это блочная система логики, которая позволяет управлять переменными, условиями и переходами без программирования.
Типы блоков
| Блок | Что делает |
|---|---|
| Event | Точка входа: onContentAppear, onPress, function |
| Condition | Условие if/else (сравнение переменных) |
| Go To Node | Переход к указанной ноде |
| Assign Variable | Присваивание значения переменной |
| Call Script | Вызов другого скрипта |
| Delay | Задержка выполнения |
| Set Volume / Set Blur | Управление эффектами |
| Table Operation | Работа с таблицами данных |
| Content Item | Выбор элемента контента |
Скрипт привязывается к ноде (scriptAssetId) или к элементу контента через триггеры.
Файловая структура квеста
Каждый квест хранится на устройстве в папке quests/<ID_КВЕСТА>/. Формат открытый — файлы можно править вручную:
quests/<quest_id>/
├── config.json # Метаданные, главы, связи, переменные
├── preview.png # Обложка квеста
├── nodes/ # Файлы нод (сценарий)
├── scripts/ # Визуальные скрипты
└── res/
├── images/ # Изображения
└── audio/ # АудиофайлыФайл config.json — главный файл квеста. Он содержит название, автора, описание, список глав, связи, переменные и все настройки проекта. Файлы нод и скриптов хранятся отдельно — каждый в своей директории.
Примечание: Обычному пользователю не нужно лазать в эти файлы вручную. Всё редактируется через интерфейс приложения. Но формат открытый — при желании можно править JSON руками.
Настройки квеста
Помимо базовых полей, квест имеет дополнительные параметры:
| Поле | Описание |
|---|---|
startNodeId | ID ноды, с которой начинается прохождение |
backgroundAssetId | Фоновое изображение по умолчанию |
customFontFileName | Кастомный шрифт для всего квеста |
dimBackground | Затемнение фона для читаемости |
hideNodeTitles | Скрывать заголовки нод при игре |
wrapButtonText | Переносить текст кнопок |
defaultTextFit | Режим подгонки текста: auto, scale, wrap |
nodeTransitionMode | Анимация переходов: none, page, fade |
genres | Жанры квеста (для маркета) |
buttonStylePresets | Пресеты стилей кнопок |
Все эти параметры можно изменить на экране «Основные настройки» в деталях квеста.
Экран деталей квеста
Отсюда начинается вся работа. Экран разделён на разделы:
Конструктор
- Основные настройки — редактирование метаданных квеста
- Сценарий и Главы → экран глав и канвас-редактор
- Ресурсы → управление изображениями и аудио
- Стартовая точка → выбор ноды для начала игры
Управление
- История версий — снимки проекта с возможностью отката
- Экспорт в .mnd — сохранение в файл для обмена
- Экспорт в .txt — выгрузка текста для ИИ
- Экспорт в APK — сборка Android-приложения
- Опубликовать → публикация на маркете
- Сбросить прогресс — очистка сохранений
- Удалить квест
Итог
Квест в Meander — это иерархия:
- Квест — контейнер с метаданными и настройками
- Главы — разделы сценария с общими стилями
- Ноды — блоки контента на канвасе
- Контент — текст, кнопки, изображения, скрипты
- Связи — переходы между нодами
- Переменные — состояние, которое меняется при прохождении
Понимание этой структуры поможет вам эффективно работать с редактором и создавать сложные, разветвлённые сюжеты.
Последнее обновление: 3 апреля 2026