Приложение для генерации интерактивных RPG-историй с визуализацией сюжетного графа с использованием ИИ (Yandex GPT).
- Генерация RPG-квестов на основе пользовательских параметров
- Визуализация сюжета в виде интерактивного графа
- Подробный просмотр сцен и переходов
- Экспорт истории в JSON формат
- Интуитивный графический интерфейс
git clone https://github.com/ValterGames-Coder/GameStoryGenerator
cd GameStoryGeneratorpython -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activatepip install -r requirements.txtСоздайте файл .env в корневой папке проекта:
YANDEX_ID_KEY=ваш_id_ключ_yandex
YANDEX_API_KEY=ваш_api_ключ_yandexКак получить ключи Yandex GPT:
- Зарегистрируйтесь в Yandex Cloud
- Создайте платежный аккаунт
- Получите
YANDEX_ID_KEY(Folder ID) в консоли Yandex Cloud - Создайте API-ключ для сервиса YandexGPT в разделе "Сервисные аккаунты"
python main.pyПриложение состоит из двух панелей:
- Описание истории - детальное описание сюжета, сеттинга и основных событий
- Жанр - по умолчанию "RPG", можно изменить на любой другой
- Персонажи - список главных героев через точку с запятой (например: "Эльф-маг; Человек-воин; Гном-кузнец")
- Настроение - выбор из предустановленных вариантов (нейтральное, мрачное, эпичное и др.)
- Отображает сгенерированную историю в виде графа
- Каждая нода представляет сцену
- Стрелки показывают возможные переходы между сценами
- Заполните все поля в левой панели
- Нажмите кнопку "Сгенерировать историю"
- Дождитесь завершения генерации (может занять 30-60 секунд)
- Изучите полученный граф истории
- Одинарный клик по ноде - выделение сцены
- Двойной клик по ноде - открытие окна с полным описанием сцены
- Наведение курсора на стрелку - появляется всплывающая подсказка с описанием действия/выбора
- 🟢 Зеленая нода - начальная сцена
- 🔵 Синие ноды - обычные сцены с выборами
- 🔴 Красные ноды - финальные сцены (концовки)
После генерации истории становится доступна кнопка "Экспорт в JSON":
- Нажмите кнопку экспорта
- Выберите место сохранения файла
- История будет сохранена в структурированном JSON формате
В правом нижнем углу отображается информация:
- Количество сцен
- Количество концовок
- Количество переходов
{
"title": "Краткое название истории...",
"description": "Полное описание истории",
"start_scene": "1",
"scenes": [
{
"scene_id": "1",
"text": "Описание сцены...",
"choices": [
{
"text": "Описание выбора",
"next_scene": "2"
}
],
"is_ending": false
}
]
}- Python 3.11+
- PyQt5
- Интернет-соединение для работы с Yandex GPT API