8.0 KiB
My Novel — отправная точка для вашей собственной визуальной новеллы
My Novel — самая маленькая законченная визуальная новелла в проекте: вечерний город, бар и дом, связанные выборами. Здесь нет персонажей, предметов и боёв — только сцены, короткие файлы сценариев и их переводы. Мод задуман как образец для копирования: переименуйте его и вырастите собственную историю из этих трёх мест.
Запускается через Играть → My Novel → Новая игра. Это контент игры My Novel (коллекция novel_template).
Что внутри
my_novel_game/
├── manifest.json
├── scenes/
│ ├── my_novel_town.json въезд в город, игра начинается здесь
│ ├── my_novel_bar.json бар со своим фоновым звуком
│ └── my_novel_home.json прихожая дома
├── scenarios/
│ ├── my_novel_town.scenario
│ ├── my_novel_bar.scenario
│ └── my_novel_home.scenario
└── locale/
├── en.properties имя и описание мода
└── scenarios_<lang>.properties переводы строк сценария
Картинок и звука бара в этом моде нет: они берутся из Town Pack, чтобы шаблон оставался маленьким и показывал, как игра переиспользует общий контент. Музыка — из Music Pack; моды-движки здесь — 2D-оболочка, диалоговый движок и звуковой движок.
Как течёт история
Город — центр. Каждый визит показывает один и тот же выбор; бар и дом каждый раз ведут обратно.
┌────────────────────┐
│ my_novel_town │ (старт)
│ «Куда пойти?» │
└──┬──────────────┬──┘
Зайти в бар Вернуться домой
▼ ▼
┌──────────────┐ ┌──────────────┐
│ my_novel_bar │ │ my_novel_home│
└──────┬───────┘ └──────┬───────┘
└─ Вернуться в город ─┘
Файл сцены называет фон и фоновый звук:
{
"name": "my_novel_bar",
"defaultBackground": "bar/bar",
"defaultAmbient": "bar/bar_ambient"
}
Сценарий с тем же именем, что у сцены, запускается при входе в неё:
scene: my_novel_town
priority: 10
---
# The town is the hub: every visit shows the same choice.
text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro
select "Where to go?" key=my_novel/town/prompt
option "Go into the bar" key=my_novel/town/opt_bar -> :bar
option "Go back home" key=my_novel/town/opt_home -> :home
:bar
switch_scene my_novel_bar
end
:home
switch_scene my_novel_home
end
Английский текст написан прямо в сценарии. Каждый key= называет перевод строки в locale/scenarios_<lang>.properties, например испанский:
my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines.
Сделайте её своей
- Скопируйте и переименуйте мод. Назовите его по своей игре с суффиксом
_game, напримерharbor_game. Папку и полеidвmanifest.jsonсмените на одно и то же значение, а ключиmod_my_novel_game_name/_descвlocale/*.properties— наmod_harbor_game_name/_desc. - Сделайте для него игру. В Mods & Collections → Коллекции откройте схему My Novel и нажмите Дублировать, затем в блоке «Сюжет» замените
my_novel_gameна свой мод. Стартовая сцена задаётся в коллекции ("entry": { "scene": "my_novel_town" }). - Переименуйте сцены, если хотите: имя сцены в поле
name, её файл, заголовокscene:её сценария и каждыйswitch_scene, который туда ведёт, должны совпадать. - Оставьте или замените графику. Оставьте
town_packвdepends, чтобы сохранить город, — или добавьте собственныеbackgrounds/иsounds/и направьтеdefaultBackground/defaultAmbientна них.
Первое изменение: добавьте место
Это настоящая сессия в редакторах, запущенная внутри My Novel с подключённым модом Editor Tools. Редактор сцен создал сцену my_novel_park, а в сценарий города вписали один вариант и одну метку:
option "Go to the park" -> :park
:park
switch_scene my_novel_park
end
После сохранения город сразу предлагает новый путь, и выбор открывает новую сцену:
Чтобы редакторы были в вашей игре, добавьте в её схему мод Editor Tools или запустите игру на один сеанс с ними:
godot --path . -- --game=novel_template --new --with-mods=editor_tools
Новая строка без key= показывает свой буквальный текст на любом языке; добавьте ключ и переводы, когда история будет готова к переводу.
Если что-то не работает
- Выбор ведёт в никуда. Имя в
switch_sceneдолжно совпадать с полемnameцелевой сцены, включая регистр. - У сцены нет текста. Заголовок
scene:её сценария должен называть именно эту сцену. - На другом языке текст английский. У строки нет
key=, либо ключ отсутствует вscenarios_<lang>.propertiesэтого языка. - Чёрный фон. Имя фона написано с ошибкой, или мод с картинкой не указан в
depends.



