在新海诚的电影世界里,选择角色、走完主线剧情、解锁更多互动——最终把"你自己的故事"也变成可玩的剧本。
| 模块 | 说明 |
|---|---|
| 🔐 登录 / 注册 | 账号密码(scrypt 哈希)+ 本地 SQLite 数据库(data/shinkai.db,纯本地、零云端) |
| 🎬 5 部电影主线 | 《你的名字》《天气之子》《铃芽之旅》《言叶之庭》《秒速五厘米》共 25 关 |
| 🎭 角色选择 | 每部 2-3 个可选角色,每个角色展开不同互动细节 |
| 🌙 月球之旅番外 | 通关任一部主线解锁"与主人公去月球"的番外场景 |
| 💬 文字 + 语音 | 关卡旁白与台词以打字机呈现;Web Speech API 中文 TTS 自动朗读 |
| 🖼️ 合影卡 | 完成主线即获得 PNG 可下载的「与主人公合影纪念卡」 |
| 🏆 奖励机制 | 每章 +10、完成电影 +100、特殊称号、解锁条件等 18 类成就 |
| 🖌️ DIY 角色 | 通关全部 5 部后解锁 — 创建专属角色、可克隆通关角色 |
| 📷 生活剧本 | 通关全部后解锁 — 上传照片 + 写日记 → 自动生成"你的生活剧本" |
| 🧵 Vibe Coding | 通关全部后解锁 — 用自然语言 prompt 生成剧情(DeepSeek 接入)或手动搭建 |
| 📲 安装到手机/电脑 | PWA(Progressive Web App)原生支持在手机/桌面浏览器中"添加到主屏幕"独立运行 |
# Node 22.22.2 +(系统已自带,无需安装任何依赖)
node server/index.js启动后控制台会输出:
==================================================
星语剧场 · 新海诚剧情互动剧场 已启动
本机访问: http://localhost:3000
分享给朋友: http://192.168.28.183:3000 (同一Wi-Fi内手机/电脑直接打开)
AI 接入: 未配置 DeepSeek Key(可用内置剧情,配置后解锁 AI 创作)
数据库: C:\Users\lenovo\WorkBuddy\2026-08-11-18-08-57\shinkai-game\data\shinkai.db
让远方的朋友也能玩: 见 README.md「一起玩」章节
==================================================
🌍 想让所有人一起玩? 完整教程见同目录下
一起玩指南.md:局域网直连、Tailscale / cpolar 内网穿透、云服务器部署三种方案,含防火墙放行与常见问题。
把 config.json 的 deepseekApiKey 填入你的 API Key 即可启用 AI 创作。模型名默认为 deepseek-v4-flash,若该模型名不可用会自动降级到 deepseek-chat。
{
"port": 3000,
"dev": true,
"deepseekApiKey": "sk-你的DeepSeek密钥",
"deepseekModel": "deepseek-v4-flash",
"deepseekBase": "https://api.deepseek.com/v1"
}启用后可用的 AI 能力:
- 剧情中自由对话:对主人公说任何话,TA 会用角色口吻回应
- 生活剧本生成:根据你导入的日记生成专属剧情
- Vibe Coding AI 生成:用一句话描述,AI 帮你生成完整可玩剧本
即使不配置 Key,所有 5 部主线剧情、月球之旅、DIY 角色、Vibe Coding 手动搭建、生活剧本(模板版)均完全可用。
- 确保手机和电脑在同一 Wi-Fi 下
- 在手机浏览器(Chrome / Safari)打开
http://<电脑的局域网IP>:3000 - Android:浏览器菜单 → "添加到主屏幕"
- iOS:Safari 分享 → "添加到主屏幕"
启动画面(splash)、全屏体验、离线缓存(service worker)都已经在 manifest.webmanifest + sw.js 中配置完毕。
- Chrome / Edge:右上角地址栏会出现"安装"图标 → 一键安装为独立应用
- 安装后从桌面图标启动,不带浏览器地址栏的原生体验
config.json 中 "dev": true 时:
- 首页底部出现「一键解锁全部电影」按钮(仅用于开发测试)
- 提供
POST /api/dev/unlock接口
shinkai-game/
├── config.json # 端口、AI Key 配置
├── server/ # 零依赖后端
│ ├── index.js # HTTP 服务 + 所有 API
│ ├── db.js # SQLite 表 + scrypt 密码
│ ├── movies.js # 5 部新海诚电影剧情内容
│ ├── ai.js # DeepSeek 接入 + 降级生成
│ └── config.js
├── public/ # 前端 PWA
│ ├── index.html
│ ├── manifest.webmanifest
│ ├── sw.js # Service Worker(离线缓存)
│ ├── icons/ # 自动生成的 PWA 图标
│ ├── css/style.css # 新海诚风格 CSS
│ └── js/
│ ├── api.js # fetch + Toast + TTS
│ ├── scene-art.js # SVG 场景艺术生成器
│ ├── views.js # 所有视图
│ └── app.js # 路由 + 启动
├── scripts/gen-icons.js # PWA 图标生成器
├── data/ # 运行时数据库(自动生成)
└── uploads/ # 生活照片(自动生成)
users用户sessions登录态progress电影通关进度rewards成就与合影卡custom_charsDIY 角色scenariosVibe Coding 生成的剧情game_sessions游玩会话life_profiles生活剧本的用户资料
| 内容 | 解锁条件 |
|---|---|
| 第 1 部电影 | 注册即可 |
| 第 N 部电影 | 完成 N-1 部 |
| 月球之旅(任一) | 完成该电影主线 |
| DIY 角色 / Vibe Coding / 生活剧本 | 完成全部 5 部主线 |
| 接口 | 说明 |
|---|---|
POST /api/auth/register |
注册 |
POST /api/auth/login |
登录 |
GET /api/me |
我的信息 + 解锁状态 |
GET /api/movies |
电影列表(含解锁状态) |
GET /api/movies/:id |
电影详情 + 角色列表 |
POST /api/game/start |
开始一场游玩(movie/moon/custom/life) |
GET /api/game/:id |
获取当前关卡视图 |
POST /api/game/:id/choose |
推进剧情(选项) |
POST /api/game/:id/free |
自由对话(AI) |
GET /api/rewards |
我的奖励与合影 |
POST /api/characters |
创建 DIY 角色 |
POST /api/ai/generate-scenario |
Vibe Coding AI 生成 |
POST /api/life/save |
保存生活资料 |
POST /api/life/generate |
生成生活剧本 |
- 主页 → 选一部电影 → 选一个角色 → 进入剧情
- 剧情页面有"自动朗读"开关(在奖励页可全局切换)
- 自由对话可输入任意话,AI 接入时会用角色口吻回应
- 完成最后一关会弹奖励:合影卡 + 解锁提示
- 全部通关后,顶栏的「角色工坊 / Vibe / 生活剧本」自动解锁
- 合影卡在奖励页可一键下载为 PNG
享受星语剧场,愿你与每一个主人公,都写下属于自己的故事。✨