config(commands): 重构开发流程:四阶段框架+通用化+阶段目录+文档同步

- development-workflow.md: 通用化(去掉UE5/ChildHood引用),新增草案/原型/批量生产/测试发布四阶段,
  修复流水线编号(①-⑦完整),明确多版本迭代,新增阶段路线图,新增文档同步流程
- design.md: 适配阶段目录(prototype/production),执行案模板增加迭代记录表头,新增草案模式E
- plan.md/pmstart.md: 路径引用适配,增加宏观阶段判断
- 设计文档全部迁移到 docs/design/prototype/,清空旧子目录
- 新建 prototype-roadmap.md,roadmap.md 改为项目总览
- 更新 current.md 和 README.md 路径引用
This commit is contained in:
2026-06-03 23:38:32 +08:00
parent 487249e34e
commit cc0f66ac54
35 changed files with 793 additions and 295 deletions
@@ -0,0 +1,241 @@
# Brainstorm 讨论记录 — 2026-06-01
> 参与者:开发者 starmen1265 + 策划 Agent
> 状态:阶段 1-5 全部完成,阶段 6 文档产出中(已完成 3/7)
---
## 阶段 1:愿景探索 — 已完成 ✅
### 核心情感(重要修正)
**之前 vision 文档的说法**:"怀旧但不伤感,温暖中有淡淡的离别感"
**修正为**:游戏基调是**开心、无忧无虑**的。忧伤不是游戏主动营造的,而是经历过那个时代的玩家自带的反应。游戏只负责还原快乐的童年,伤感是玩家的副产品。
### 独特性(不是"中国版放学后少年")
- **时代细节**是底色——街景、人物、物件,呈现千禧年风貌
- **小游戏**是"玩"——童年最深刻的记忆就是玩
- **收集系统**是情感锚点——帮玩家补全当年没集齐的、找回已丢失的
### 节奏设计
- 以"天"为节奏单位
- 每天内时间基本自由掌控
- 大时间线上有约定和目标("下周要去乡下"、"约了跟谁比赛"),给方向感但不说教
- 时间流逝是温柔的推动力,不是催促
### 核心记忆点
1. "这不就是我小时候吗"——被某个物件/场景/声音击中的共鸣瞬间
2. "终于集齐了"——收集完成的圆满满足感
### 明确不做
- 无战斗 · 无失败惩罚 · 非开放世界 · 纯单机
---
## 阶段 2:支柱深挖 — 小游戏 ✅ + 叙事 ✅
### ✅ 收集系统(已聊完,已产出设计文档)
核心设计决策:
- 四类收集品体系(普通玩具 / 带收集属性玩具 / 纯收集品 / 时代特色物品)
- 获取方式混合,各有不同(买、赢、捉、发现)
- 三重价值:玩法用途 + 解锁内容 + 情感叙事
- 专门展示界面,全收集完可能成为游戏场景一部分
- 世界反馈:NPC 讨论、给称号、用新称呼
- 集齐可触发支线剧情,不影响主线
- 情感核心:补全遗憾 → 圆满满足 → 被世界认可
### ✅ 小游戏(已聊完)
#### 小游戏体系架构
| 品类 | 场景 | 具体内容 | 优先级 |
|---|---|---|---|
| 地面手技类 | 户外空地 | 弹珠、拍洋画 | 高(共享模板) |
| 四驱车 | 赛道/家里改装 | 改装调试 → 比赛 | 高(独立系统) |
| FC家用机 | 家里电视前 | 横版平台跳跃/清版过关 | 高 |
| 街机厅 | 街机厅场景 | 清版过关/格斗 | 高 |
| PC电脑 | 家里/网吧 | RTS 类 | 中 |
| 包机房 | 包机房 | 类似家用机/街机内容 | 低(精力允许再做) |
| 肢体活动 | 户外 | 跳绳、呼啦圈、跳皮筋、跳房子 | 简化处理 |
| RPG | — | 回合制 | 备选 |
#### 弹珠 — 深度设计
- **真实感在视觉**:场景和弹珠要一看就认出来
- **玩法不必完全拟真**:手柄/键盘和真手不一样,操作设计要适配
- **四维策略系统**:
- **规则**(NPC选择):不同地区不同规则,作为不同游戏模式
- **场地**(NPC选择):水泥地、泥土地、靠墙、斜坡等,影响滚动和准度
- **弹珠属性**(玩家选择):不同大小/样式,重量、摩擦力不同
- **手法**(玩家选择):大拇指扣打法 vs OK手弹法,准度和力度不同
- **策略对抗**:NPC选场地和规则 → 玩家针对性选弹珠和手法 → 形成博弈
- **目标耐玩度**:十几到几十把不腻
#### 四驱车 — 以改装调试为核心
- 改装调试是核心乐趣,比赛是验证结果
- 独立系统,不和地面手技类共享模板
#### 电子游戏 — 游戏里的游戏
- **FC家用机**:横版平台跳跃/清版过关,山寨经典
- **街机厅**:清版过关/格斗,主要社交场所
- **PC电脑**:RTS类(红色警戒/星际争霸风格)
- **包机房**:内容与家用机/街机接近,次要优先级
- **RPG**:慢热,1-2小时体量不够,备选
- **体量标准**:每个3-5关,能玩1-2小时
#### 肢体活动
- 跳绳、呼啦圈、跳皮筋、跳房子 — 简化处理,不做独立小游戏
#### 与收集系统的联动
- 小游戏和收集系统**紧密联动**
- 弹珠既是小游戏道具又是收集品,双重身份
- 设计原则:道具-收集品一体化
---
### ✅ 叙事(已聊完)
#### 叙事框架
- **形态**:轻框架 + 日常填充
- **时间跨度**:暑假期间
- **阶段划分**:3-4个关键生活事件把暑假切成阶段,每个阶段有1-2个重要目标
- **目标类型**:以生活事件为主,非小游戏比赛
#### 事件设计模式
以"同学要搬走"为例:
- **情感动机**:想给搬走的同学搞到他想要的东西做送别礼物
- **链式任务**:参加比赛拿奖品 → 用奖品跟别人换东西 → 经过多个小游戏/任务环节
- **多路径达成**:获取途径有多种,不强制特定玩法
- **时间节点**:同学搬家之前完成,触发送别剧情
#### 结局设计
- **主线统一结局**:开学(不管做了什么,暑假都会结束)
- **支线多结局**:
- 做没做暑假作业 → 最后一天触发"一起赶作业"事件 / 被老师罚站
- 送别礼物搞没搞到 → 不同的送别场景
- 其他支线各有不同结果
- **设计原则**:没有"坏结局",只有不同的回忆
#### 乡下阶段
- **定位**:中期换节奏的独立阶段,插入暑假中间
- **持续时间**:1-2周
- **活动范围**:只能在奶奶家附近活动
- **游玩内容**:乡村特色活动(抓知了、摸鱼、爬树、摸虾等),从城市游戏切换到乡村环境
- **设计目的**:
- 为中期增加新鲜感
- 补足乡村玩家的童年视角
#### 核心角色(6-7个,深挖)
| 角色 | 社会维度 | 潜在定位 |
|---|---|---|
| 死党A(家庭条件好的) | 家庭对比、物质羡慕 | 可能是搬走的那个人 |
| 死党B(家庭条件差的) | 家庭对比、同理心 | 送别礼物事件的潜在主角 |
| 女班长 | 性别动态、权威/好感 | 独特互动线 |
| 转学生 | 新鲜感、融入/排斥 | 外来者视角 |
| 残障儿童(智商较低) | 包容、同理心 | 不猎奇,真实存在的关系 |
| 游戏厅/小卖部老板的儿子 | 资源节点、交易 | 信息和物资中心 |
| 小霸王 | 冲突、对抗 | 对手角色,不是纯坏人 |
#### 叙事设计原则
- 基调开心无忧虑,不回避真实(残障儿童、小霸王、家庭条件差异)
- 事件动机是情感的,不是系统强制的
- 角色能自然和小游戏/收集系统挂钩
---
## 阶段 3:场景与世界观 — 已完成 ✅
### 城市地图(主场景)
- **尺度**:一条小商业街 + 周边区域(紧凑精致)
- **核心街道**:小商业街,两旁店铺,居民区在背后
- **4 家可进入店铺**:小卖部、游戏厅、录像厅、文具店
- **4 个周边区域**:工地、河边/河堤、学校操场、居民巷弄
- **布局**:一条主街延伸,一端通向工地+河堤,另一端通向学校+居民区
- **主角家**:商业街旁边巷子里(闹中取静)
- **可进入室内**:主角家 + 4 家店铺
- **不可进入**:小伙伴家、学校室内
### 乡下场景(奶奶家)
- **尺度**:紧凑型,比城市小
- **4 个区域**:奶奶家院子、小溪/小河、田间小路、村口小卖部
- **城乡切换**:黑屏跳过
### 千禧年时代元素(必须有的四层)
| 层次 | 内容 |
|------|------|
| 广告/招牌 | 娃哈哈、健力宝、小霸王等品牌元素 |
| 交通工具 | 桑塔纳、面的、自行车大军、偶见摩托 |
| 街边饮食 | 冰棍推车、辣条、糖葫芦(与零花钱联动) |
| 声音/音乐 | 随身听、磁带、街边喇叭、电视节目声 |
---
## 阶段 4:范围与优先级 — 已完成 ✅
### 路线图调整
- **v0.1 不动**:现有范围合理,先跑通原型
- **蹲下系统明确不做**
- 路线图从原来的 v0.1-v1.0 四个版本扩展为八个版本:
| 版本 | 核心验证 | 关键新增 |
|------|----------|----------|
| v0.1 | "这个世界有味道" | 场景漫游 + 环境交互(不变) |
| v0.2 | "这游戏好玩吗" | 弹珠小游戏 + NPC 对话 + 基础音效 |
| v0.3 | "这个世界是活的" | 一天时间循环 + 零花钱经济 + NPC 日程 |
| v0.4 | "这个故事有感情" | 叙事框架 + 核心角色 + 第一个情感事件链 |
| v0.5 | "好多东西可以玩" | 四驱车 + FC/街机 + 收集系统扩展 |
| v0.6 | "换个地方也有意思" | 乡下章节 |
| v0.7 | "一整个暑假" | 整合 + 多支线 + 结局系统 |
| v1.0 | 正式发布 | 全内容打磨 |
---
## 阶段 5:共识总结与文档提案 — 已完成 ✅
### 需要产出的文档清单
| # | 文档 | 说明 | 优先级 | 状态 |
|---|------|------|--------|------|
| 1 | `game-vision.md` 更新 | 核心情感修正,三大支柱重写,新增游戏世界章节 | 🔴 最高 | ✅ 完成 |
| 2 | `minigame-system.md` | 小游戏体系设计 | 🔴 最高 | ✅ 完成 |
| 3 | `narrative-framework.md` | 叙事框架设计 | 🔴 最高 | ✅ 完成 |
| 4 | `scene-world.md` | 场景与世界观详细设计 | 🟡 高 | ✅ 完成 |
| 5 | `roadmap.md` 更新 | 路线图更新为详细版本规划 | 🟡 高 | ⏳ 待产出 |
| 6 | `economy-system.md` | 零花钱经济系统设计 | 🟢 中 | ⏳ 待产出 |
| 7 | `time-system.md` | 一天时间循环系统设计 | 🟢 中 | ⏳ 待产出 |
---
## 待办
- [x] 继续阶段 2:小游戏支柱深挖
- [x] 继续阶段 2:叙事支柱深挖
- [x] 阶段 3:场景与世界观
- [x] 阶段 4:范围与优先级
- [x] 阶段 5:共识总结与文档提案
- [x] 更新 `game-vision.md`(核心情感修正 + 三大支柱重写 + 游戏世界章节)
- [x] 产出 `minigame-system.md`(小游戏系统设计文档)
- [x] 产出 `narrative-framework.md`(叙事框架设计文档)
- [x] 产出 `scene-world.md`(场景与世界观详细设计)
- [ ] 更新 `roadmap.md`(路线图详细版本规划)
- [ ] 产出 `economy-system.md`(零花钱经济系统设计,v0.3 前完成)
- [ ] 产出 `time-system.md`(一天时间循环系统设计,v0.3 前完成)
+204
View File
@@ -0,0 +1,204 @@
# 收集系统 — 设计文档
> 对应版本:v0.1(基础拾取)→ v0.4(完整系统)→ v1.0(全量内容)
> 讨论来源:brainstorm-2026-06-01
---
## 设计目标
收集系统是游戏的**情感锚点**。它不是普通的"集齐图鉴"玩法,而是一个帮玩家**补全当年遗憾**的系统——有人当年没集齐水浒卡,有人集齐了但弄丢了。游戏给他们一个"圆满"的机会。
---
## 核心原则
1. **还原感**:每件收集品都是真实存在过的东西,玩家看到会说"我也有过!"
2. **补全遗憾**:不是从零开始的收集,而是帮你"找回"丢失的记忆
3. **多重价值**:收集品同时是玩具、是解锁钥匙、也是回忆载体
4. **世界回应**:收集成就会被世界认可——NPC 会讨论、会给称号、会改变称呼
---
## 收集品分类体系
### 第一类:普通玩具
**收集逻辑**:拿到一个就算完成,重在"拥有过"。
| 举例 | 说明 |
|------|------|
| 溜溜球 | 拿到一个溜溜球即完成 |
| 陀螺 | 拿到一个陀螺即完成 |
| 弹弓 | 拿到一个弹弓即完成 |
| 荧光手表 | 拿到即完成 |
**设计意图**:快节奏的小成就,让玩家早期就能体验到"收集到了"的满足感。
### 第二类:带收集属性的玩具
**收集逻辑**:同一种玩具有多个变体,需要集齐全套。这些物品本身也是小游戏的核心道具。
| 收集套组 | 变体说明 | 获取方式 |
|----------|----------|----------|
| 弹珠 | 不同花色/材质(猫眼、透明、彩纹……) | 赢弹珠比赛、场景拾取 |
| 洋画/卡片 | 水浒卡108将、三国卡、数码宝贝贴纸 | 买零食开包装、和小伙伴交换 |
| 四驱车零件 | 不同马达、轮胎、底盘(用于四驱车改装) | 小卖部购买、比赛奖励 |
**设计意图**:深度收集的核心——多变体、有稀有度、有获取挑战。同时直接关联小游戏玩法(弹珠比赛用弹珠、拍洋画用卡片)。
### 第三类:纯收集品
**收集逻辑**:主要过程在于"收集"本身,这些物品通常不能拿来玩,或者主要不是用来玩的。
| 收集套组 | 变体说明 | 获取方式 |
|----------|----------|----------|
| 糖果纸 | 不同品牌/款式的糖果包装纸 | 吃糖果获得、场景拾取 |
| 昆虫 | 不同种类的昆虫(知了、蜻蜓、瓢虫……) | 特定地点和时间捕捉 |
| 声音 | 环境中录下的声音(蝉鸣、卖豆腐的喇叭、电视广告) | 特定场景触发录制 |
**设计意图**:收集过程本身就是体验。捉虫要有地点和时间的探索感,录声音要有"等待那个瞬间"的仪式感。
### 第四类:时代特色物品
**收集逻辑**:触发动机是时代共鸣——"我吃过这个!""我见过这个!"
| 举例 | 说明 |
|------|------|
| 长鼻王 | 时代经典零食 |
| 无花果丝 | 那个味道忘不了 |
| 大大泡泡糖 | 里面有纹身贴纸 |
| 小浣熊干脆面 | 集卡就是从这开始的 |
| 健力宝罐 | 国民饮料 |
**设计意图**:这类物品是"时代博物馆"的展品。每件物品的图鉴描述要写得像一段回忆,让玩家被击中。
---
## 获取方式设计
每种收集品有符合现实逻辑的获取途径:
| 获取方式 | 对应收集品 | 说明 |
|----------|-----------|------|
| **买零食开包装** | 卡片、贴纸 | 在小卖部买干脆面/泡泡糖,开包装出随机卡片 |
| **赢小游戏** | 弹珠、部分卡片 | 和 NPC 玩弹珠赢了拿走弹珠,拍洋画赢了拿卡片 |
| **场景拾取** | 糖果纸、小物件 | 散落在场景中,探索发现 |
| **特定地点捕捉** | 昆虫 | 在水塘边、草丛、树下等特定位置,有时间限制 |
| **场景触发录制** | 声音 | 在特定场景等待/触发特定事件 |
| **NPC 交换** | 各种 | 和小伙伴交换重复的卡片、用收集品换新东西 |
| **剧情奖励** | 特殊物品 | 完成某个故事事件后获得 |
---
## 展示系统
### 收集图鉴界面
- 专门的收集展示界面,按四大分类组织
- 每件物品有:3D 模型展示 + 时代背景描述 + 主角内心独白
- 进度可视化(已收集/总数)
### 收集完成的特殊展示
- 当某一套收集品集齐时,图鉴页有特殊的视觉效果(比如页面变金色、播放一段回忆动画)
- **如果所有收集品全部集齐**:收集系统/界面本身成为游戏场景的一部分——可能是主角房间里多了一个展示柜,或者其他形式的物理化呈现
---
## 世界反馈机制
收集不仅是系统内部的进度,**游戏世界会回应玩家的收集成就**:
### NPC 反应
| 触发条件 | NPC 反应 |
|----------|----------|
| 集齐某套卡片 | 小伙伴聊天时提到"听说谁谁谁集齐了水浒卡,太厉害了" |
| 集齐弹珠 | 小伙伴来找你比弹珠的频率增加 |
| 完成某个收集里程碑 | 获得新称号,NPC 以后用新称呼叫你 |
### 称号系统
- 收集成就会解锁称号(如"卡片大师"、"弹珠王"、"百科全书")
- 称号不只是 UI 展示,NPC 会实际在对话中使用
- 不同 NPC 可能给你不同的称号(小伙伴叫你"弹珠王",妈妈叫你"小 collector")
---
## 剧情触发
- 集齐特定收集品会触发**支线剧情**
- 这些剧情是额外的故事片段,**不影响主线**
- 举例:集齐某套卡片后,NPC 大孩子来找你交换/挑战,引出一段关于那个年代集卡热潮的回忆
---
## 与其他系统的关联
```
收集系统 ←→ 小游戏系统
├── 弹珠(收集品)→ 弹珠比赛(小游戏)
├── 卡片(收集品)→ 拍洋画(小游戏)
└── 四驱车零件(收集品)→ 四驱车竞速(小游戏)
收集系统 ←→ 探索系统
├── 场景拾取 → 自由探索
├── 昆虫捕捉 → 特定地点/时间探索
└── 声音录制 → 环境互动
收集系统 ←→ NPC/社交系统
├── NPC 称号和称呼变化
├── NPC 交换机制
└── NPC 对收集成就的讨论
收集系统 ←→ 叙事系统
├── 物品图鉴中的回忆文字
└── 集齐触发的支线剧情
```
---
## 各版本范围
### v0.1 — 基础拾取
- 10 个可拾取物品(弹珠、糖果纸、橡皮擦等简单物品)
- 简单的收集计数(拾取后计数字 +1)
- 无分类、无图鉴 UI、无世界反馈
### v0.2 — 收集基础框架
- 引入四类收集品分类
- 基础图鉴 UI
- 收集品与小游戏关联(弹珠比赛得弹珠)
- 部分收集品可通过小游戏获取
### v0.3 — 收集与时间
- 时间相关的收集品(特定时间出现的昆虫)
- NPC 基础交换
- 声音录制初步
### v0.4 — 完整收集系统
- 完整图鉴界面(含 3D 展示和叙事文字)
- NPC 称号系统
- 收集完成的世界反馈
- 集齐触发的支线剧情
- 全部收集完的特殊展示
### v1.0 — 全量内容
- 所有收集品内容填充完毕
- 全套收集品平衡和稀有度调整
- 收集系统物理化展示(主角房间展示柜等)
---
## 设计要点备忘
- 收集品数量要合理——太多会变成苦差事,太少没有收集的乐趣
- 稀有度设计要有梯度——常见品容易获得给正反馈,稀有品需要努力才有成就感
- 不要让收集变成强迫——玩家不收集也能通关,收集是自愿的、有乐趣的
- 每件物品的文案要花心思——这是"被击中"瞬间的主要来源之一
+218
View File
@@ -0,0 +1,218 @@
# 游戏愿景 — ChildHood(我的童年)
> 本文档为整个项目的核心锚点,所有设计与开发决策以此为准。
> 最后更新:2026-06-01(brainstorm 阶段 1-3 共识修正)
---
## 一句话概念
一个关于千禧年前后城郊小男孩的暑假——在老街小卖部门口弹弹珠、攒零花钱买四驱车配件、帮要搬走的死党准备送别礼物,在蝉鸣和街边喇叭声里度过一个再也回不去的夏天。
---
## 核心情感
**开心、无忧无虑。**
游戏还原的是快乐的童年——那些阳光灿烂的下午、和伙伴满街跑的日子、第一次集齐一整套卡片的兴奋。
伤感不是游戏主动营造的。经历过那个时代的玩家,会在某个物件、某段旋律、某个场景里被击中,但那种"回不去了"的感觉是玩家自带的。游戏只负责把快乐还原得足够真,让伤感成为玩家的自然产物。
**设计原则**:
- 每个系统都在创造快乐,不制造焦虑
- 没有"坏结局",只有不同的回忆
- 时间流逝是温柔的推动力,不是催促
---
## 灵感来源
### 《放学后少年》(NDS)
**我们取什么**:
- 放学后的自由探索感——地图上随处可去的开放感
- 小游戏的多样性——各种不同玩法的迷你活动
- 校园/街区的生活气息——每个角落都有故事
**我们不照搬**:
- 日式校园文化(我们是城郊小街)
- 过于碎片化的活动列表(我们需要更强的叙事线串联)
### 《我的暑假》系列(PS)
**我们取什么**:
- 日常的诗意——普通的一天也可以很动人
- 时间流逝感——从早到晚的光影变化
- 叙事节奏——不是大开大合的剧情,而是日常中的小事件串联
**我们不照搬**:
- 日本乡村文化(我们是中国城郊)
- 昆虫采集为核心玩法(我们的收集更广泛、更贴合城郊生活)
### 我们的独特味道
- **时代细节**是底色——街景、人物、物件,呈现千禧年风貌
- **小游戏**是"玩"——童年最深刻的记忆就是玩
- **收集系统**是情感锚点——帮玩家补全当年没集齐的、找回已丢失的
---
## 三大支柱
### 1. 小游戏互动 — 那个年代的玩法
千禧年前后的经典儿童游戏,按品类分层设计:
| 品类 | 场景 | 具体内容 | 优先级 |
|---|---|---|---|
| 地面手技类 | 户外空地 | 弹珠、拍洋画 | 高(共享模板) |
| 四驱车 | 赛道/家里改装 | 改装调试 → 比赛 | 高(独立系统) |
| FC 家用机 | 家里电视前 | 横版平台跳跃/清版过关 | 高 |
| 街机厅 | 街机厅场景 | 清版过关/格斗 | 高 |
| PC 电脑 | 家里/网吧 | RTS 类 | 中 |
| 包机房 | 包机房 | 类似家用机/街机内容 | 低 |
| 肢体活动 | 户外 | 跳绳、呼啦圈、跳皮筋、跳房子 | 简化处理 |
**核心设计原则**:
- 弹珠作为首个验证:四维策略系统(规则×场地×弹珠属性×手法),目标耐玩度十几到几十把
- 四驱车以改装调试为核心乐趣,比赛是验证结果
- 电子游戏(FC/街机/PC)是"游戏里的游戏",每个 3-5 关,能玩 1-2 小时
- **道具-收集品一体化**:弹珠既是小游戏道具又是收集品,双重身份
- 小游戏和收集系统紧密联动
详细设计见 → [minigame-system.md](minigame-system.md)
### 2. 收集系统 — 补全当年的遗憾
收集的情感核心不是"集满",而是"补全"——当年没集齐的水浒卡、已经丢掉的那个弹珠、再也找不到的那张贴纸。
**四类收集品体系**:
1. **普通玩具**(弹珠、卡片等)——既是收集品又是小游戏道具
2. **带收集属性的玩具**(水浒卡系列、四驱车系列等)——有套装概念
3. **纯收集品**(糖纸、车票等)——只有情感价值
4. **时代特色物品**(随身听、小霸王卡带等)——承载时代记忆
**获取方式混合**:买、赢、捉、发现,各有不同。
**三重价值**:玩法用途 + 解锁内容 + 情感叙事。
**世界反馈**:NPC 会讨论你的收集、给称号、用新称呼。集齐可触发支线剧情。
详细设计见 → [collection-system.md](systems/collection-system.md)
### 3. 剧情叙事 — 一个暑假的故事
**形态**:轻框架 + 日常填充。
**时间跨度**:暑假期间(约 50 天),以"天"为节奏单位。
**阶段划分**:3-4 个关键生活事件把暑假切成阶段,每个阶段有 1-2 个重要目标。
**事件设计**(以"同学要搬走"为例):
- 情感动机:想给搬走的同学准备送别礼物
- 链式任务:参加比赛 → 赢奖品 → 换东西 → 经多个小游戏/任务环节
- 多路径达成:获取途径有多种,不强制特定玩法
- 时间节点:同学搬家前完成,触发送别剧情
**结局设计**:
- 主线统一结局:开学(不管做了什么,暑假都会结束)
- 支线多结局:暑假作业、送别礼物、其他支线各有不同结果
- **没有"坏结局",只有不同的回忆**
**核心角色(6-7 个)**:死党A(家境好的)、死党B(家境差的)、女班长、转学生、残障儿童、小卖部老板儿子、小霸王。
详细设计见 → [narrative-framework.md](narrative-framework.md)
---
## 游戏世界
### 城市地图(主场景)
**尺度**:一条小商业街 + 周边区域,紧凑精致。
**空间布局**:商业街为主线,两端延伸到不同区域。
```
┌─ 工地
主角家 ─ 巷子 ─┐
├─ 商业街(小卖部·游戏厅·录像厅·文具店) ─┬─ 学校操场
居民巷弄 ───────┘ │
└─ 河边/河堤
```
**可进入室内**:主角家、4 家店铺。
**不可进入**:小伙伴家、学校(仅操场室外区域)。
### 乡下场景(奶奶家)
**定位**:中期换节奏的独立阶段,暑假中间插入,持续 1-2 周。
**尺度**:紧凑型,比城市小。
**区域**:奶奶家院子、小溪/小河、田间小路、村口小卖部。
**切换方式**:黑屏跳过。
**活动内容**:抓知了、摸鱼、爬树、摸虾等乡村特色活动。
### 千禧年时代元素(必须有)
四个层次的时代还原:
| 层次 | 内容 | 作用 |
|------|------|------|
| **广告/招牌** | 娃哈哈、健力宝、小霸王等品牌元素 | 第一眼的时代标识 |
| **交通工具** | 桑塔纳、面的、自行车大军、偶见摩托 | 街景氛围 |
| **街边饮食** | 冰棍推车、辣条、糖葫芦、烤红薯 | 与零花钱系统联动 |
| **声音/音乐** | 随身听、磁带、街边喇叭、电视节目声 | 沉浸感的核心层 |
---
## 主角设定
- **性别**:男孩
- **年龄**:约 10-12 岁(小学四五年级)
- **性格**:通过行动和内心独白表达,不给玩家强加性格
- **家庭**:和父母住在商业街旁边巷子里的老房子
- **社交**:6-7 个核心角色,通过剧情逐步展开关系
### 主角作为叙事视角
- 玩家通过主角的"眼睛"看世界
- 物品描述、场景描述都是主角的内心独白
- 主角不直接说话,通过行动和选择表达
---
## 节奏设计
- 以"天"为节奏单位
- 每天内时间基本自由掌控(上午/下午/傍晚/夜晚四时段)
- 大时间线上有约定和目标("下周要去乡下"、"约了跟谁比赛"),给方向感但不说教
- 时间流逝是温柔的推动力,不是催促
---
## 明确不做
- 无战斗系统
- 无失败惩罚(没有"坏结局")
- 非开放世界(紧凑的一条街 + 周边)
- 纯单机(无联网功能)
- 无蹲下探索系统
---
## 版本规划摘要
| 版本 | 目标 | 验证什么 |
|------|------|----------|
| v0.1 | 场景漫游 + 环境交互 | 在千禧年城郊场景中的探索感和氛围感 |
| v0.2 | 弹珠小游戏 + NPC 对话 | 小游戏的操作手感和趣味性 |
| v0.3 | 一天时间循环 + 零花钱经济 | 时间系统的节奏感和世界的活性 |
| v0.4 | 叙事框架 + 核心角色 + 情感事件链 | 剧情驱动力和情感表达 |
| v0.5 | 四驱车 + FC/街机 + 收集扩展 | 内容丰富度和系统联动 |
| v0.6 | 乡下章节 | 场景切换的新鲜感和乡村体验 |
| v0.7 | 整合 + 多支线 + 结局系统 | 完整暑假体验的连贯性 |
| v1.0 | 正式发布 | 全内容打磨和最终体验 |
详细路线图见 → [docs/plans/roadmap.md](../plans/roadmap.md)
+293
View File
@@ -0,0 +1,293 @@
# 环境交互系统 — 设计文档
> 对应程序实现:交互组件基类、交互检测、UI 提示系统
---
## 设计目标
让玩家通过"触碰"来感知这个世界——每一个可交互的物体都是一段记忆的入口。交互系统是 v0.1 的核心体验,它决定了玩家能否真正"活"在这个场景中。
---
## 交互类型
### 1. 观察(Examine) — 最核心的交互
**用途**: 查看物品或场景,触发主角的内心独白
**触发流程**: 走进触发范围(1.5m)→ 物体上方浮现提示 `[E] 查看旧冰箱` → 按 E 触发
**触发后表现**:
1. 相机从当前第三人称位置**平滑推向物体前方**约 0.8-1m,高度略低于物体中心(微仰视),推镜约 0.5 秒,ease-out 缓动
2. 角色自动转向物体(不锁定移动,可微调位置但不能跑开)
3. 相机到位后 0.2 秒,屏幕底部浮现内心独白文案(打字机效果,每字约 0.05 秒)
4. 按 E 或 ESC 关闭:文案淡出,相机 0.3 秒回到默认第三人称位置
**文案风格示例**:
```
[旧冰箱]
夏天的时候最期待打开冰箱的那一刻。
冰棒、西瓜、偶尔还有一瓶健力宝。
现在想起来,那个冰箱的嗡嗡声好像还在耳边。
[墙上的涂鸦]
不知道是谁画的,但画得还挺像奥特曼的。
我以前也想在墙上画,被我妈追着打了半条街。
[地上的弹珠]
一颗彩色花纹的弹珠,大概是哪个小孩掉的。
我以前也丢过最喜欢的那颗,找了整个下午都没找到。
```
**设计原则**:
- 每个观察文本都是一个独立的"微叙事"
- 文字简短(2-4句),不冗长
- 带有情感但不矫情
- 用孩子的视角看世界,不是大人回望
### 2. 拾取(Pick Up)
**用途**: 收集场景中散落的小物品
**触发流程**: 走近拾取品(1.5m)→ 物品上方浮现提示 `[E] 拾取 弹珠` → 按 E 触发
**触发后表现**:
1. 相机**不动**,保持第三人称视角
2. 角色播放弯腰拾取动画(约 1 秒)
3. 动画播放至"手碰到物品"时间点,物品从场景消失
4. 右上角弹出物品获得提示(图标 + 名称),1.5 秒后自动淡出
5. 收集计数 +1,自动结束(无需手动关闭)
**v0.1 可拾取物品**:
- 弹珠(不同花色)
- 小石子
- 橡皮擦
- 糖纸
- 水浒卡碎片
### 3. 操作(Operate)
**用途**: 与场景设施或大型物体交互
**触发流程**: 走近操作对象(1.5m)→ 对象上方浮现提示 `[E] 打开门` → 按 E 触发
**触发后表现**(通用模式):
1. 相机推向操作对象(同观察类型的推镜方式)
2. 角色播放对应操作动画
3. 操作完成后触发状态变化
4. 相机回到默认位置
**v0.1 操作对象及具体表现**:
| 操作对象 | 推镜 | 角色动画 | 结果 |
|----------|------|----------|------|
| 门(家/小卖部) | 不推镜 | 角色伸手推门 | 门状态切换(开↔关),开门后可走进去 |
| 废纸箱(翻找) | 推近纸箱 | 角色弯腰翻找 | 弹出翻找结果文本,或意外发现拾取品 |
**v0.1 操作交互对象**:
- 家的门(进出)
- 小卖部门(进出)
- 公用电话亭(观察 + 对话文本)
- 水塘边的石头(可以打水漂?v0.2)
### 4. 对话(Talk) — v0.1 简化版
**用途**: 与场景中的 NPC 交谈
**触发流程**: 走近 NPC(1.5m)→ NPC 上方浮现提示 `[E] 和老板说话` → 按 E 触发
**v0.1 简化方案**:
- v0.1 不实现完整对话系统
- NPC 本质上是"会说话的观察对象",交互表现与观察类型一致
- 触发后:相机推向 NPC → 底部浮现场景描述文本(非内心独白)
- 例如:走近小卖部老板 → 相机推向老板 → "老板正在柜台后面打瞌睡,电视里放着还珠格格。"
- 按 E/ESC 关闭,相机回位
- 后续版本再加入对话树和分支
---
## 交互提示 UI
### 可交互性提示(两级机制)
**远距离(3-4m 外)**:无 UI 提示,靠场景设计引导注意力
- 可交互物体的摆放位置有"意图感",不会靠墙角挤成一堆,放在玩家容易注意到的位置
- 拾取品有**微弱的地面光斑/小光点**,暗示"这里有东西"(融入夏日阳光氛围,不违和)
**近距离(1.5m 内,触发范围)**:物体上方浮现交互提示 UI
- 多个物体在范围内时,只显示最近的那个
- 角色离开触发半径时提示消失
### 提示样式
### 提示样式
```
┌─────────────────────────┐
│ [E] 查看旧冰箱 │
└─────────────────────────┘
```
- 位置:物体上方偏移(屏幕空间投影)
- 字体:简洁的中文字体,白色带轻微描边
- 图标:交互键(E)+ 动作词(查看/拾取/打开)
- 过渡:淡入淡出(0.2秒)
### 交互类型图标
| 类型 | 图标文字 | 颜色 |
|------|----------|------|
| 观察 | 🔍 查看 | 白色 |
| 拾取 | ✋ 拾取 | 黄色 |
| 操作 | 🖐 打开 | 白色 |
---
## 交互后的叙事文本 UI
### 显示位置
- 屏幕下方居中,半透明背景条
- 不遮挡主视角
### 样式
```
╭──────────────────────────────────────────╮
│ │
│ 夏天的时候最期待打开冰箱的那一刻。 │
│ 冰棒、西瓜、偶尔还有一瓶健力宝。 │
│ │
│ [E] 关闭 │
╰──────────────────────────────────────────╯
```
- 背景:半透明黑色(透明度约60%)
- 文字:白色,逐字出现(打字机效果,每字约0.05秒)
- 按 E 或 ESC 关闭文本
- 文本显示期间角色可以缓慢移动(不硬锁定)
---
## 交互对象数据结构
每个可交互物体需要以下信息:
```json
{
"id": "fridge_home",
"name": "旧冰箱",
"type": "examine",
"triggerRadius": 1.5,
"interactText": "查看旧冰箱",
"narrativeText": [
"夏天的时候最期待打开冰箱的那一刻。",
"冰棒、西瓜、偶尔还有一瓶健力宝。",
"现在想起来,那个冰箱的嗡嗡声好像还在耳边。"
],
"oneShot": false
}
```
- `oneShot: true` 表示只触发一次(如拾取物品、一次性事件)
- `oneShot: false` 表示可反复交互(如观察类),但文本可以随机变化
---
## v0.1 交互对象清单
> 程序 Agent 按分阶段顺序实现。第一轮跑通系统,第二轮填充体验。
### 第一轮:系统验证(5 个,优先实现)
覆盖全部 4 种交互类型,跨 3 个区域,验证核心流程。
| # | ID | 名称 | 类型 | 区域 | 验证目标 |
|---|---|---|---|---|---|
| 1 | fridge_home | 旧冰箱 | 观察 | 家 | 室内大件观察,相机推镜 + 内心独白文案 |
| 2 | door_home | 家的门 | 操作 | 家 | 最简操作交互,门开↔关状态切换 |
| 3 | ground_marble | 散落的弹珠 | 拾取 | 空地 | 拾取完整流程:提示→弯腰→消失→计数+1 |
| 4 | phone_booth | 公用电话亭 | 观察 | 街道 | 室外独立物体观察,户外推镜体验 |
| 5 | owner_shop | 老板 | NPC | 小卖部 | 走向人→推镜→场景描述文本 |
**探索路线**: 家(冰箱→门)→ 街道(电话亭)→ 小卖部(老板)→ 空地(弹珠)
### 第二轮:体验填充(5 个,系统跑通后追加)
验证多交互物并存、不同物体形态的推镜差异。
| # | ID | 名称 | 类型 | 区域 | 补什么体验 |
|---|---|---|---|---|---|
| 6 | tv_home | 老式电视 | 观察 | 家 | 同区域第二件观察物,验证不冲突 |
| 7 | shelf_snack | 零食货架 | 观察 | 小卖部 | 矮物体推镜角度,近距离观察 |
| 8 | ground_card | 水浒卡碎片 | 拾取 | 空地 | 第二个拾取品,验证不互相干扰 |
| 9 | wall_graffiti | 墙上的涂鸦 | 观察 | 街道 | 墙面类物体,水平推镜方向 |
| 10 | box_alley | 废纸箱 | 操作(翻找) | 巷子 | 第二种操作类型,与门不同 |
### 后续版本(v0.1 可选,不阻塞验收)
以下交互物在第一轮 + 第二轮全部完成后,视开发进度按区域补充:
| 区域 | ID | 名称 | 类型 |
|------|---|---|---|
| 家 | bed_home | 我的床 | 观察 |
| 家 | desk_home | 书桌 | 观察 |
| 家 | calendar_home | 日历 | 观察 |
| 小卖部 | shelf_drink | 冰柜 | 观察 |
| 小卖部 | card_rack | 卡片架 | 观察 |
| 街道 | bike_street | 老式自行车 | 观察 |
| 街道 | laundry | 晾衣杆 | 观察 |
| 街道 | manhole | 下水道盖 | 观察 |
| 空地 | ground_stone | 小石子 | 拾取 |
| 空地 | tree_empty | 大树 | 观察 |
| 空地 | puddle | 水坑 | 观察 |
| 巷子 | cat_alley | 流浪猫 | 观察 |
| 巷子 | window_alley | 老窗户 | 观察 |
| 巷子 | spider_alley | 蜘蛛网 | 观察 |
| 水塘边 | pond_edge | 水塘 | 观察 |
| 水塘边 | frog_pond | 青蛙 | 观察 |
| 水塘边 | reed_pond | 芦苇 | 观察 |
| 水塘边 | ground_wrapper | 糖纸 | 拾取 |
| 水塘边 | ground_eraser | 橡皮擦 | 拾取 |
---
## 白盒方案
v0.1 使用近似占位模型而非纯不可见触发区域,以便调试相机推镜距离、空间关系和交互体验。
**原则**:
- 找免费 lowpoly 模型或 UE Marketplace 免费素材,形状和比例大致对即可
- 冰箱用方箱子、自行车用简单两轮模型,不要求贴图精确
- 后续美术阶段替换为正式资产
**交互物占位模型需求**(按实现阶段排列):
**第一轮(必须)**:
| ID | 交互物 | 占位模型建议 |
|---|--------|------------|
| fridge_home | 旧冰箱 | 白色方箱子(~1.7m 高) |
| door_home | 家的门 | 扁平方片,可绕轴旋转 |
| ground_marble | 散落的弹珠 | 小球体,+ 地面光斑 |
| phone_booth | 公用电话亭 | 窄高方柱(~2m 高) |
| owner_shop | 老板(NPC) | 简单人形胶囊体,坐姿 |
**第二轮(追加)**:
| ID | 交互物 | 占位模型建议 |
|---|--------|------------|
| tv_home | 老式电视 | 方箱 + 凸起背部(~0.5m 高) |
| shelf_snack | 零食货架 | 多层架结构(~1.8m 高) |
| ground_card | 水浒卡碎片 | 小方片,+ 地面光斑 |
| wall_graffiti | 墙上的涂鸦 | 墙面贴花/色块 |
| box_alley | 废纸箱 | 开口方箱(~0.5m 高) |
---
## v0.1 不包含
- 对话树 / 对话分支系统
- 物品背包 UI(物品拾取后只计入收集计数)
- 物品使用/组合系统
- NPC AI(NPC 为静态站位)
- 交互对象的动画变化(如开门后门保持打开)
- 时间相关的交互变化
+274
View File
@@ -0,0 +1,274 @@
# 小游戏系统设计 — ChildHood
> 千禧年前后经典儿童游戏的系统设计文档。
> 最后更新:2026-06-01(brainstorm 共识)
---
## 设计理念
**童年最深刻的记忆就是玩。** 小游戏系统不是游戏的"副玩法",而是核心体验之一。
设计原则:
- 每种小游戏都还原真实体验的"感觉",而非完全拟真操作
- 弹珠和四驱车是两个最深度的独立系统,作为耐玩性支柱
- 电子游戏类是"游戏里的游戏",自成一体但体量可控
- **道具-收集品一体化**:弹珠等道具既是小游戏工具又是收藏品
---
## 品类架构
| 品类 | 场景 | 具体内容 | 优先级 | 模板 |
|---|---|---|---|---|
| 地面手技类 | 户外空地 | 弹珠、拍洋画 | 高 | 共享模板 |
| 四驱车 | 赛道/家里改装 | 改装调试 → 比赛 | 高 | 独立系统 |
| FC 家用机 | 家里电视前 | 横版平台跳跃/清版过关 | 高 | 独立 |
| 街机厅 | 街机厅场景 | 清版过关/格斗 | 高 | 与 FC 共享引擎 |
| PC 电脑 | 家里/网吧 | RTS 类 | 中 | 独立 |
| 包机房 | 包机房 | 类似家用机/街机内容 | 低 | 复用 |
| 肢体活动 | 户外 | 跳绳、呼啦圈、跳皮筋、跳房子 | 简化处理 | — |
| RPG | — | 回合制 | 备选 | — |
**体量标准**:每种电子游戏 3-5 关,能玩 1-2 小时。
---
## 弹珠 — 深度设计(首个验证)
### 核心理念
- **真实感在视觉**:场景和弹珠要一看就认出来
- **玩法不必完全拟真**:手柄/键盘和真手不一样,操作设计要适配
### 四维策略系统
弹珠的耐玩性来自四个维度的组合策略:
```
┌─────────────┐
│ NPC 选择 │ NPC 选择场地和规则
│ 规则 × 场地 │ ↓
├─────────────┤ 玩家根据条件选择弹珠和手法
│ 玩家选择 │
│ 弹珠 × 手法 │
└─────────────┘
```
#### 1. 规则(NPC 选择)
不同地区/不同 NPC 有不同规则,作为不同的游戏模式:
| 规则模式 | 说明 |
|---|---|
| 画圈弹 | 经典模式,地上画圈,把对方的弹珠弹出圈外 |
| 打坑 | 在地上弹进指定的坑/洞 |
| 靠墙 | 弹珠从墙上弹回,比停的位置离目标近 |
| 斜坡 | 利用地形高差,弹珠从坡上滚下 |
#### 2. 场地(NPC 选择)
场地影响弹珠的滚动和准度:
| 场地类型 | 特点 |
|---|---|
| 水泥地 | 平整,弹珠滚动均匀,适合精准操作 |
| 泥土地 | 有小坑和摩擦,弹珠走线不可预测 |
| 草地 | 高摩擦,弹珠滚不远,需要大力 |
| 斜坡 | 重力影响,弹珠会往下偏 |
#### 3. 弹珠属性(玩家选择)
| 属性 | 影响 | 来源 |
|---|---|---|
| 大小 | 大的更准但滚动慢;小的灵活但难控制 | 购买/赢取 |
| 材质 | 玻璃(光滑)vs 陶瓷(粗糙)vs 铁球(重) | 收集获得 |
| 花色 | 纯装饰,但好看的是收集目标 | 收集/交换 |
| 重量 | 影响碰撞时的击飞距离 | 材质决定 |
#### 4. 手法(玩家选择)
| 手法 | 特点 |
|---|---|
| 大拇指扣打法 | 准度高,力度中等。经典"弹"法 |
| OK 手弹法 | 力度大,准度稍低。食指和大拇指圈住弹珠弹出 |
### 策略对抗流程
```
1. NPC 发起挑战 → NPC 选择规则 + 场地
2. 玩家查看条件 → 选择弹珠 + 手法
3. 进入弹珠小游戏 → 根据四维组合决定胜负
4. 赢了获得对方弹珠(收集+资源),
输了失去一颗弹珠(保底机制,不会输光)
```
### 目标耐玩度
十几到几十把不腻。策略深度来自:
- 不同 NPC 偏好不同规则和场地,需要针对性策略
- 弹珠属性和手法的选择形成组合空间
- 场地环境变化增加不确定性
- 输赢影响弹珠"库存",但有保底不会输到没法玩
### 与收集系统联动
- 弹珠是收集品的一种,有稀有花色和限量版
- 特殊弹珠有独特属性(比如铁弹珠很重,碰撞优势大)
- NPC 可能指定"用那颗弹珠跟我比"作为挑战条件
- 集齐某种系列的弹珠可触发支线事件
---
## 拍洋画(与弹珠共享模板)
### 基本玩法
- 地上放一叠卡片/洋画
- 玩家用手拍地面,利用气流和震动把卡片翻面
- 翻过来的卡片归自己
### 操作设计
- 核心操作:选择角度 + 力度
- 卡片叠加物理模拟:气流、震动传播、卡片翻转
- 与弹珠共享"角度+力度"的操作模板,但物理效果不同
---
## 四驱车 — 改装调试为核心
### 核心理念
**改装调试是核心乐趣,比赛是验证结果。** 独立系统,不和地面手技类共享模板。
### 玩法循环
```
买配件 → 在家里改装调试 → 去赛道测试 → 发现问题 → 继续改装 → 比赛
```
### 改装维度(初步)
| 部件 | 影响属性 | 改装内容 |
|---|---|---|
| 马达 | 速度/耐力 | 不同马达有不同特性 |
| 轮胎 | 抓地力/摩擦 | 轮胎类型匹配赛道 |
| 导轮 | 过弯稳定性 | 位置和角度调整 |
| 避震 | 跳跃着陆 | 弹簧硬度选择 |
| 电池 | 持续输出 | 电池类型影响持久力 |
| 车壳 | 空气动力学/重量 | 外观 + 微调性能 |
### 赛道设计
- 多种赛道主题(直道冲刺、弯道技术、障碍跳跃、综合)
- 赛道有观察点,可以看到四驱车经过时的表现
- 不同赛道需要不同的改装策略
### 与收集系统联动
- 四驱车配件本身是收集品
- 限量版马达/轮胎有独特属性
- 完成四驱车全系列改装可触发支线
---
## 电子游戏 — 游戏里的游戏
### FC 家用机(高优先级)
**位置**:主角家客厅电视前
| 类型 | 风格参考 | 关卡数 |
|---|---|---|
| 横版平台跳跃 | 山寨超级玛丽 | 3-5 关 |
| 清版过关 | 山寨魂斗罗 | 3-5 关 |
**设计原则**:
- 画面风格模仿 FC 像素感,但用 3D Lowpoly 呈现("主角在玩 FC"的视角)
- 操作简化为 2-3 个按键
- 有自己的生命和计分系统
- 可以暂停"FC 游戏"回到现实世界
### 街机厅(高优先级)
**位置**:商业街游戏厅
| 类型 | 风格参考 | 关卡数 |
|---|---|---|
| 清版过关 | 山寨吞食天地/三国志 | 3-5 关 |
| 格斗 | 山寨街霸 | 多角色对战 |
**社交功能**:
- 街机厅是核心社交场所
- NPC 会来挑战
- 排行榜记录最高分
- 格斗游戏可以和小伙伴/小霸王对战
### PC 电脑(中优先级)
**位置**:家里/网吧
| 类型 | 风格参考 |
|---|---|
| RTS | 山寨红色警戒/星际争霸 |
**设计**:简化版 RTS,不需要完整游戏深度,但要还原"那个年代玩电脑"的感觉。
### 包机房(低优先级)
- 内容与家用机/街机接近
- 主要区别是场景不同(包机房的氛围 vs 家里 vs 街机厅)
- 精力允许再做
---
## 肢体活动 — 简化处理
跳绳、呼啦圈、跳皮筋、跳房子不做独立小游戏系统。
**处理方式**:
- 作为场景中的简单互动(QTE 或节奏小游戏级别)
- 不需要独立的规则和策略深度
- 主要用于氛围营造和日常活动丰富度
---
## 与其他系统的联动
### 与收集系统
- **弹珠**:双重身份(道具 + 收集品),道具-收集品一体化
- **卡片/洋画**:小游戏消耗品,同时也是收集目标
- **四驱车配件**:改装材料 = 收集品,集齐一套配件本身有成就感
- **FC/街机游戏卡带**:不同的卡带 = 不同的游戏 = 收集品
### 与叙事系统
- 小游戏比赛可以作为叙事事件的关键节点
- "帮死党赢一个奖品送人" → 弹珠比赛 → 获得奖品 → 送别事件链
- NPC 的性格通过小游戏偏好体现(小霸王喜欢格斗、死党A四驱车很强等)
### 与经济系统
- 小游戏是零花钱的重要来源(赢弹珠可以卖/换)
- 小游戏也需要投入(买弹珠、买配件、游戏厅投币)
- 形成经济循环:花钱玩 → 赢了赚钱 → 攒钱买更好的装备
---
## 开发优先级建议
1. **v0.2 — 弹珠**:验证小游戏核心体验,四维策略系统的可玩性
2. **v0.5 — 四驱车 + FC/街机**:扩展内容量,验证系统联动
3. **后续 — 拍洋画 + PC/包机房**:补全内容
---
## 开放问题(待后续设计确认)
- [ ] 弹珠小游戏的操作手感方案(按键映射、力度控制方式)
- [ ] 弹珠的保底机制具体设计(输多少会触发保底?)
- [ ] 四驱车改装的 UI 交互方式
- [ ] FC/街机游戏的画面风格确认(像素感 vs Lowpoly 3D)
- [ ] RTS 的简化深度到什么程度
@@ -0,0 +1,238 @@
# 叙事框架设计 — ChildHood
> 暑假叙事的结构、事件设计、角色系统。
> 最后更新:2026-06-01(brainstorm 共识)
---
## 设计理念
**叙事形态:轻框架 + 日常填充。**
不是一个强剧情驱动的游戏,而是一个有故事发生的暑假。框架提供方向感和节奏,日常活动填充血肉。
核心原则:
- 基调开心无忧虑,不回避真实(家庭条件差异、残障儿童、小霸王)
- 事件动机是情感的,不是系统强制的
- 角色能自然和小游戏/收集系统挂钩
- **没有"坏结局",只有不同的回忆**
---
## 时间框架
### 整体结构
- **时间跨度**:一个暑假(约 50 天)
- **节奏单位**:以"天"为基本单位
- **阶段划分**:3-4 个关键生活事件把暑假切成阶段
### 暑假阶段(初步)
| 阶段 | 大约时间 | 核心事件 | 玩家目标 |
|---|---|---|---|
| 放假的兴奋 | 第 1-10 天 | 自由探索,认识伙伴和场景 | 熟悉世界,开始收集和小游戏 |
| 夏日正中 | 第 11-30 天 | 第一个关键事件(如:有人要搬走) | 事件驱动的目标 |
| 乡下插曲 | 暑假中期 | 去奶奶家住 1-2 周 | 换节奏,乡村体验 |
| 暑假尾声 | 最后 10 天 | 开学倒计时,赶暑假作业 | 收尾,收束支线 |
| 开学前夜 | 最后 1 天 | 最终事件 | 情感收束 |
### 一天的节奏
每天分为四个时段:**上午 / 下午 / 傍晚 / 夜晚**
- 时段内时间自由掌控
- 某些事件/活动有时段限制(小卖部下午才开、晚上在家看电视)
- 时段之间通过事件或玩家选择过渡
- 时间流逝是温柔的推动力,不催促
---
## 事件设计
### 事件分类
| 类型 | 说明 | 示例 |
|---|---|---|
| **关键事件** | 把暑假切成阶段的故事主线 | 死党要搬家、去乡下、开学前夜 |
| **日常事件** | 每天可能发生的小事 | 小卖部来了新货、下雨了、邻居在修车 |
| **条件事件** | 满足特定条件才触发 | 集齐某系列弹珠、和小霸王关系够好 |
| **随机事件** | 增加日常的不可预测性 | 街上来了卖糖葫芦的、发现一只受伤的小猫 |
### 事件设计模式(以"同学要搬走"为例)
```
触发:暑假中期,某个日常场景中得知死党A要搬家
情感动机:
想给搬走的同学准备一个送别礼物
→ 他一直想要某个东西(比如一套完整的四驱车配件/某个稀有的弹珠)
链式任务(可简化):
1. 打听他想要什么 → 和不同 NPC 聊天获取信息
2. 想办法获取 → 参加弹珠比赛赢奖品 / 用收集品交换 / 省零花钱买
3. 准备过程可能经过多个小游戏和日常活动
4. 在他搬家之前完成
多路径达成:
- 路径A:弹珠比赛赢 → 直接获得
- 路径B:用自己的收藏交换 → 失去某件收藏品,换到礼物
- 路径C:攒零花钱买 → 需要打工/省吃俭用
- 路径D:组合以上几种
时间节点:
同学搬家日是固定的 → 倒计时给紧迫感但不说教
如果没搞到 → 不同的送别场景(仍然温暖,只是少了那件礼物)
```
### 事件触发原则
- **自然发生**:不弹窗不强制,玩家在场景中自然遇到
- **情感动机**:玩家做这件事是因为"想帮朋友",不是因为系统给奖励
- **多路径**:不强制特定玩法,弹珠、收集、经济系统都能通向目标
- **不影响主线**:支线事件的结果只影响支线本身,不卡死进度
---
## 结局系统
### 主线结局:统一
**开学。** 不管玩家做了什么,暑假都会结束。
这个结局本身就是最真实的童年记忆——快乐的时光总是有终点的,但它不是悲伤的,而是"该回学校了"的自然感。
### 支线结局:多样
不同支线有不同的结果,体现在最终几天和开学前夜的场景中:
| 支线 | 完成结局 | 未完成结局 |
|---|---|---|
| 暑假作业 | 最后一天"一起赶作业"事件 | 被老师罚站(回忆式,不惩罚) |
| 送别礼物 | 温暖的送别场景 | 仍然送别,只是少了那件礼物 |
| 小霸王关系 | 化敌为友,开学后是朋友 | 维持竞争关系 |
| 收集完成 | 展示柜满满的成就感 | 有些遗憾,但也没关系 |
| 乡下探索 | 和乡下的小伙伴保持联系 | 乡下之行有独特回忆 |
### 设计原则
- 没有结局是"错的"
- 每种结局都是一段真实的回忆
- 玩家的选择不改变"暑假结束了"这个事实,但改变了"这个暑假怎么过的"
---
## 核心角色
### 角色设计原则
- 6-7 个核心角色,每个有明确的社会维度和功能定位
- 角色不完美,有真实感(家庭条件差的孩子、残障儿童、小霸王)
- 不猎奇,不消费苦难,真实呈现
- 每个角色能自然和小游戏/收集系统挂钩
### 角色列表
| 角色 | 社会维度 | 潜在定位 | 小游戏关联 |
|---|---|---|---|
| **死党A**(家境好的) | 物质羡慕、家庭对比 | 可能是搬走的那个人 | 四驱车很强,有最好的装备 |
| **死党B**(家境差的) | 同理心、家庭对比 | 送别礼物事件的潜在主角 | 弹珠高手(用便宜弹珠也能赢) |
| **女班长** | 性别动态、权威/好感 | 独特互动线 | 跳绳/跳皮筋很强 |
| **转学生** | 新鲜感、融入/排斥 | 外来者视角 | 带来新的小游戏玩法/规则 |
| **残障儿童**(智商较低) | 包容、同理心 | 不猎奇,真实存在的关系 | 可能不太会玩游戏但想参与 |
| **小卖部老板的儿子** | 资源节点、交易 | 信息和物资中心 | 知道什么货什么时候到 |
| **小霸王** | 冲突、对抗 | 对手角色,不是纯坏人 | 格斗游戏很强,弹珠准头惊人 |
### 角色弧线(初步)
**小霸王**:从单纯的"欺负人"到慢慢了解他的家庭背景(也许他自己也过得很辛苦)。不是强行洗白,而是玩家的理解在变化。
**死党A**:家境好带来的不只是羡慕,也有"他什么都有但还是很孤独"的一面。搬走事件是情感高潮。
**死党B**:家境差但很乐观。他的快乐是真实的,不需要同情。送别礼物事件中,可能反过来是他帮了主角。
---
## 乡下插曲
### 定位
暑假中期(约第 20-30 天之间)的独立段落。
### 设计目的
- 为中期增加新鲜感,防止日常感疲劳
- 补足乡村玩家的童年视角
- 作为叙事节奏的换气点
### 游玩内容
- 乡村特色活动:抓知了、摸鱼、爬树、摸虾
- 活动范围限制在奶奶家附近(紧凑型)
- 和城市区域形成对比(安静 vs 热闹、开阔 vs 紧凑、自然 vs 街道)
### 与主线的联系
- 乡下阶段获得的物品/经历可以带回城市
- 可能认识乡下的小伙伴(乡村版 NPC)
- 回到城市后,某些对话/事件会提到乡下的事
---
## 叙事与系统的联动
### 与小游戏系统
- 小游戏比赛作为叙事事件的关键节点
- NPC 性格通过小游戏偏好体现
- 赢了比赛可以推动剧情(获得关键物品/赢得NPC信任)
### 与收集系统
- 某些收集品触发叙事记忆(找到一张旧照片 → 回忆闪回)
- 收集完成可触发支线剧情
- 收集品的叙事文本就是微型故事
### 与经济系统
- 零花钱的获取和使用影响叙事选择(省吃俭用买礼物 vs 花光钱之后的窘迫)
- 经济状况影响日常活动的选择空间
---
## 叙事节奏图(概念)
```
兴奋 欢乐 温暖
│ │ │
│ ╱╲ 日常 ╱╲ │ 乡下 ╱╲ │
│ ╱ ╲ ╱ ╲ ╱ ╲ │ 插曲 ╱ ╲ 收束 │
│╱ ╲╱ ╲ ╱ ╲ │ ╱ ╲ ╱ ╲ ╱ │
─ ╱ 事件触发 ╱ ╲ │ ╱ ╲ ╱ ╲╱ ─→ 开学
放假 紧张感 ╲╱ ╲╱ 回味
↑ 搬家事件
```
节奏设计要点:
- 开头是探索的兴奋,中期有情感波峰(搬家事件),乡下是换气,结尾是温暖的收束
- 整体趋势向上(越来越多的回忆和关系),而不是大开大合
- 情感高峰来自日常中的小瞬间,不是戏剧性的大场面
---
## 开发优先级建议
1. **v0.4 — 叙事框架**:实现基础事件系统 + 第一个情感事件链 + 2-3 个核心角色
2. **v0.6 — 乡下插曲**:独立段落,需要独立的场景和内容
3. **v0.7 — 全支线 + 结局**:扩展角色线、多结局、收束整合
---
## 开放问题(待后续设计确认)
- [ ] 关键事件的具体选择(哪 3-4 个事件切割暑假?)
- [ ] 角色的具体名字和详细人设
- [ ] 乡下阶段的具体活动玩法设计
- [ ] 叙事文本的写作风格确认(内心独白式?旁白式?)
- [ ] 事件触发的具体条件和时机
- [ ] 是否需要"二周目"机制(继承收集品等)
+130
View File
@@ -0,0 +1,130 @@
# 玩家角色控制 — 设计文档
> 对应程序实现:角色控制器、摄像机系统、动画蓝图
---
## 设计目标
让玩家"成为那个男孩"——操作直觉、移动流畅,通过简单的操控就能沉浸在城郊场景的漫游中。控制器不应成为体验的障碍。
---
## 视角设计
### 摄像机:第三人称跟随
- **风格参考**: 《我的暑假》的观察距离——不远不近,能看到角色全身和周围环境
- **默认距离**: 角色身后约3-4米,略高于角色头部(约15°俯角)
- **镜头特点**:
- 跟随平顺,有轻微延迟(软跟随,不生硬锁定)
- 角色转身时镜头平滑过渡
- 靠墙时镜头自动拉近,避免穿墙
### 操作方式
| 操作 | 手柄(默认) | 键鼠 |
|------|-------------|------|
| 移动 | 左摇杆 | WASD |
| 视角 | 右摇杆 | 鼠标移动 |
| 跑步 | 按住左摇杆 / R1 | 按住 Shift |
| 蹲下 | R3 / ○ | 按住 Ctrl |
| 交互 | △ / A | E |
| 取消/返回 | ○ / B | ESC |
> 注:优先适配键鼠操作,手柄映射作为后续优化。
---
## 移动系统
### 步行(默认)
- **速度**: 正常散步节奏,约 2.5 m/s
- **用途**: 探索、观察环境、接近可交互物体
- **特征**: 步行动画自然,有轻微的左右摇摆
### 跑步
- **速度**: 约步行速度的 1.8 倍(约 4.5 m/s)
- **触发**: 按住跑步键 + 移动方向
- **体力**: v0.1 不做体力限制,后续版本可考虑加入(跑累了会喘气减速)
- **特征**: 跑步时有明显的加速过渡,停下时有减速惯性
### 蹲下
- **速度**: 约步行的 0.5 倍
- **用途**:
- 探索低矮空间(桌底、床底、矮灌木丛)
- 悄悄靠近(捉虫、捉迷藏)
- 查看地面上的小东西
- **特征**: 蹲下后视角自动降低,能看到平时忽略的细节
### 转身与停止
- 转身有动画过渡,不瞬移
- 停止时有惯性减速(约0.2秒),不会突兀地定住
- 急停时有一小步调整动画
---
## 交互触发方式
### 靠近触发
- 当角色接近可交互物体(约1.5米)时,屏幕显示交互提示
- 提示样式:物体上方出现简洁的图标 + 文字(如"🔍 查看冰箱")
- 多个可交互物体时,优先显示最近的
- 玩家按交互键执行
### 交互锁定
- 交互中角色自动面朝物体
- 交互动画播放期间,移动输入被短暂抑制
- 可通过取消键提前退出交互
---
## 动画需求清单
### 基础移动动画
| 动画 | 优先级 | 说明 |
|------|--------|------|
| Idle(待机) | P0 | 自然站立,有呼吸起伏和偶尔的小动作 |
| Walk(步行) | P0 | 4方向或8方向步行循环 |
| Run(跑步) | P0 | 跑步循环,起步和停止有过渡 |
| Crouch Idle(蹲伏待机) | P1 | 蹲下时的待机姿势 |
| Crouch Walk(蹲伏移动) | P1 | 蹲下时的缓慢移动 |
### 交互动画
| 动画 | 优先级 | 说明 |
|------|--------|------|
| Pick Up(拾取) | P0 | 弯腰捡起地面物品 |
| Open Door(开门) | P1 | 推门/拉门动作 |
| Open Drawer(翻抽屉) | P2 | 拉开抽屉查看 |
| Examine(端详) | P1 | 拿起物品在手中翻转查看 |
### 过渡动画
| 动画 | 优先级 | 说明 |
|------|--------|------|
| Walk ↔ Run 过渡 | P0 | 步行与跑步之间的平滑混合 |
| Stand ↔ Crouch 过渡 | P1 | 站立与蹲下之间的过渡 |
| Stop(急停) | P1 | 从移动状态停止的过渡 |
---
## v0.1 最小可行范围
v0.1 只需实现以下核心操控:
### 必做(P0)
- [x] 第三人称摄像机跟随
- [x] WASD 步行移动
- [x] Shift 跑步(速度切换,无体力限制)
- [x] 靠近物体显示交互提示
- [x] E 键交互(拾取地面物品)
### 可以简化
- 蹲下系统 → v0.2 再实现
- 动画可以用简单的占位动画
- 摄像机碰撞处理可以简化
### 不做
- 体力系统
- 攀爬/跳跃
- 手柄适配(v0.1 优先键鼠)
- 角色换装/自定义
@@ -0,0 +1,326 @@
# 主角角色描述 — ChildHood(我的童年)
> 美术角色设计的核心参考文档。所有关于主角的视觉设计必须以本文档为准。
> 最后更新:2026-06-02
---
## 一、角色定位
- **身份**:千禧年前后城郊结合区的小学男生,四五年级
- **年龄**:约 10-12 岁
- **家庭**:事业单位家属楼,和父母同住,家庭条件中等偏上(介于死党A的小区和死党B的平房区之间)
- **叙事角色**:玩家的"眼睛"——不直接说话,通过行动和内心独白表达。玩家通过他看世界,他的感受就是玩家的感受
### 设计核心
主角不是一个有强烈个性的角色,而是**一扇窗**。他的形象要让玩家觉得"这就是我/我认识的孩子"——亲切、日常、不刻意。视觉上追求的是**真实感和代入感**,而不是酷炫或特殊。
---
## 二、整体印象
**第一眼看过去**:一个夏天在街边跑来跑去的普通男孩。皮肤晒得有点黑,衣服宽松随意,脚踩塑料凉鞋,头发被风吹得有点乱。看着就让人觉得"这孩子整天在外面野"。
**关键词**:阳光、结实、随意、邻家、千禧年
**剪影识别**:略偏大的头部 + 宽松T恤的轮廓 + 短裤 + 凉鞋,轮廓简洁一眼可辨。不需要细节就能看出"这是个男孩"。
---
## 三、体型与比例
### Lowpoly 角色比例
依据 `docs/art/style-guide.md` 的角色建模规范:
- **面数上限**:< 3000 面
- **整体比例**:略带卡通化,头部偏大(约 1/5 到 1/4 身高),四肢圆润
- **贴图尺寸**:512 × 512
### 体型特征:微壮结实型
不是胖,而是**结实**——那种常年在外面跑、爬树、蹲在地上打弹珠练出来的体格。骨架不细,肩膀稍宽,小腿有肉。
| 部位 | 特征描述 |
|------|---------|
| **头部** | 略偏大(Lowpoly 卡通比例),圆脸,略有婴儿肥 |
| **肩膀** | 不窄,比瘦小型孩子稍宽,但还没发育,线条圆润 |
| **躯干** | 结实但不臃肿,腰身不明显,就是"小孩的身板" |
| **手臂** | 有肉感,不纤细,前臂因为晒太阳颜色偏深 |
| **腿** | 小腿结实,膝盖处有常年跪地打弹珠的痕迹(可选细节) |
| **手** | 偏小偏圆,Lowpoly 下不需要太细致,但要能辨识握持动作 |
| **脚** | 穿凉鞋的脚,Lowpoly 下可以简化为鞋型整体 |
### 身高参考
- 相对场景物体:比小卖部柜台矮半个头(需要踮脚才能看到柜台上的东西)
- 相对成人的 NPC:大约到成人胸口位置
- 相对同龄伙伴:和死党B差不多高,比死党A稍矮一点(死党A营养好长得快)
---
## 四、面部特征
### 脸型
- **圆脸**,下巴略尖,有小孩特有的婴儿肥感
- 颧骨不突出,线条柔和圆润
- Lowpoly 下用少量面数表达圆润感即可
### 五官
| 部位 | 描述 |
|------|------|
| **眉毛** | 粗而短,自然形态,不修不画。微微上扬,显得精神 |
| **眼睛** | 不大不小,略圆,Lowpoly 下可以用简洁的几何形状表达。眼神干净,带着好奇和机灵 |
| **鼻子** | 小而圆,鼻头不尖。Lowpoly 下可以简化为一个小三角或半圆 |
| **嘴巴** | 嘴唇略厚,嘴角自然微上翘(不是在笑,但看起来不严肃)。Lowpoly 下用一条弧线即可 |
| **耳朵** | 正常大小,因为头发不太长会露出来 |
### 表情(参考)
Lowpoly 风格下表情不宜复杂,主要通过以下方式传递情绪:
| 状态 | 面部表现 | 说明 |
|------|---------|------|
| 默认 | 自然中性,嘴角微上翘 | 日常探索时的表情 |
| 开心 | 嘴角明显上扬,眼睛微眯 | 赢了弹珠、集齐卡片 |
| 专注 | 眉头微皱,嘴巴微抿 | 瞄准弹珠、改装四驱车 |
| 惊讶 | 嘴巴微张,眉毛上扬 | 发现隐藏物品、遇到意外事件 |
> **v0.1 阶段**:只需要"默认"表情。后续版本按需增加。
### 肤色
- **偏深**——夏天的孩子,整天在外面晒,不是白净的那种
- 色调参考:暖棕色,带点健康的小麦色感
- 手臂有明显的短袖晒痕(T恤遮挡处比暴露处白),这是一个真实的时代细节
---
## 五、发型
### 风格:自然短发(微长)
不是板寸那么短,也不是西瓜头。比寸头稍长,有自然的蓬松感和纹理。那种不怎么打理但也不邋遢的"普通男孩头"——妈妈可能一个月带去一次理发店,剪完之后长长了就变成这样。
### 具体描述
| 特征 | 描述 |
|------|------|
| **长度** | 整体 2-3cm,头顶和前额稍长,两侧和后脑稍短 |
| **形态** | 自然蓬松,不贴头皮,有轻微的不规则感(像刚跑完步被风吹过) |
| **刘海** | 前额有少量碎发,不长不挡眼,自然垂下或微翘 |
| **发际线** | 正常,不露额头太多 |
| **质感** | Lowpoly 下不需要表现发丝,用色块和简单的几何体表达蓬松感即可 |
### 发色
- **黑色**,但不是纯黑——带一点深棕的自然感
- Lowpoly 贴图上可以用深棕色块 + 少量亮棕色高光来表现层次
---
## 六、服装
### 核心穿搭:T恤 + 短裤 + 塑料凉鞋
千禧年夏天最常见的男孩穿搭。不讲究,方便活动,妈妈买什么就穿什么。
### 上身:宽松 T 恤
| 特征 | 描述 |
|------|------|
| **版型** | 宽松,偏大一号(妈妈喜欢买大一点的"还能穿两年") |
| **领口** | 圆领,不紧 |
| **长度** | 盖过腰带,略长 |
| **袖长** | 短袖,袖口到大臂中段 |
| **图案** | 前胸有一个简单的印花图案。建议方案(选一个): |
**印花方案建议**(按推荐度排序):
1. **运动品牌风格** — 类似 Nike/Adidas 的条纹或 Logo 风格,但不是真品牌(避免版权问题)。比如一个简单的斜杠图形或数字"23"。千禧年小孩很喜欢穿这种"像运动品牌"的T恤
2. **纯色 + 条纹** — 袖口和领口有对比色条纹的简洁运动T恤,没有大图案。最安全的选择
3. **卡通角色风格** — 类似《龙珠》或《灌篮高手》角色的简化图案。需要自行设计一个"看起来像那个年代的卡通T恤"的图案,避免版权
**T恤颜色建议**(主色选一个):
| 方案 | 颜色 | 感觉 |
|------|------|------|
| 方案 A | 白色或米白色 | 最常见、最百搭,有"妈妈的洗衣粉味道"的感觉 |
| 方案 B | 浅蓝色 | 清爽感,像校服T恤,非常千禧年 |
| 方案 C | 浅灰或深灰 | 耐脏,"男孩都爱穿"的颜色 |
> 建议:**方案 B(浅蓝色 + 简单印花)**,清爽又符合时代感,与温暖场景色调搭配好。
### 下身:宽松短裤
| 特征 | 描述 |
|------|------|
| **版型** | 宽松,及膝或略高于膝盖 |
| **类型** | 运动短裤或简单的休闲短裤,松紧腰带 |
| **口袋** | 两侧有插袋(可以装弹珠、卡片等小东西——动画上的细节) |
| **长度** | 到膝盖上方一点 |
**短裤颜色**:深色系为主,耐脏。建议:
- 深蓝色 / 藏青色(最常见)
- 灰色(运动短裤感)
### 脚部:塑料凉鞋
| 特征 | 描述 |
|------|------|
| **类型** | 千禧年最经典的**塑料凉鞋**——那种几块钱一双的,有洞的或带扣的 |
| **颜色** | 建议 **深蓝色** 或 **黑色**(最常见) |
| **细节** | Lowpoly 下简化为鞋型整体即可,可以用颜色区分脚面和鞋底 |
| **脚踝处** | 可能有一圈凉鞋带的痕迹(晒痕细节,可选) |
> 塑料凉鞋是千禧年中国小孩的时代标志。不是运动鞋、不是拖鞋,就是那种塑料凉鞋——穿一个夏天就坏了的那种。
### 可选配件(增加角色辨识度)
以下配件不是全部都要,选 1-2 个增加角色丰富度:
| 配件 | 描述 | 推荐 |
|------|------|------|
| **电子手表** | 塑料外壳的电子表(类似 Casio 的廉价款),戴在左手腕上。那个年代男孩几乎人手一个,有闹钟和计时功能 | ⭐ 强烈推荐 |
| **脖子上的钥匙** | 用一根红绳或鞋带穿着家门钥匙,挂在脖子上。双职工家庭孩子的标配——"放学自己开门回家" | ⭐ 推荐,有叙事感 |
| **腰间的网兜/小袋子** | 用来装弹珠的小袋子或网兜,别在腰间或挂在裤袢上。和收集系统直接关联 | 可选,后续版本 |
> **v0.1 建议**:电子手表 + 脖子钥匙。两个小物件就能增加很多角色真实感和时代感,且 Lowpoly 下实现成本低。
---
## 七、配色方案
### 整体色调
主角的配色应该融入场景但不消失——他是场景的一部分,但玩家一眼就能找到他。
| 部位 | 颜色 | 色值参考 |
|------|------|---------|
| 皮肤(暴露处) | 暖棕 / 小麦色 | #C4956A ~ #D4A574 |
| 皮肤(遮挡处) | 偏白 | #E8C9A0 ~ #F0D5B0 |
| 头发 | 深棕偏黑 | #2A1F14 ~ #3D2B1A |
| T恤 | 浅蓝 | #7BADC4 ~ #9CC5D8 |
| 短裤 | 深蓝 / 藏青 | #2B3A4E ~ #3D4F63 |
| 凉鞋 | 深蓝 / 黑 | #1A1A2E ~ #2C2C3E |
| 电子手表 | 深灰表带 + 浅色表盘 | 表带 #3A3A3A,表盘 #D4D4D4 |
### 色彩原则
- **和场景协调**:浅蓝T恤与温暖黄/绿的城郊场景形成柔和对比,不会太跳也不融入
- **不太鲜艳**:避免饱和度太高的颜色,衣服是洗过很多次的感觉
- **有旧感**:T恤可以稍微不那么"新"——略微发旧的颜色比鲜亮色更真实
---
## 八、动态与姿态参考
### 站立姿势
不是军姿站直,也不是驼背。是一种**放松但精神**的自然站姿:
- 重心微微偏向一条腿
- 肩膀自然下垂
- 头微微抬起,像在看什么有趣的东西
- 双手自然垂在身体两侧,或一只手插在短裤口袋里
### 走路姿态
- 步伐不大不小,有点"晃"的感觉——不是正经走路,是那种"去某处找朋友玩"的随意步伐
- 手臂自然摆动,幅度不大
- Lowpoly 下不需要太复杂的行走动画,但要有"小孩走路"的节奏感(不是成人的步伐)
### 跑步姿态
- 手臂摆动幅度更大,身体微微前倾
- 跑起来T恤会微微飘动
- 那种"着急去小卖部看新到货的弹珠"的跑法——不是全力冲刺,是小跑
### 交互姿态参考
| 动作 | 描述 |
|------|------|
| 蹲下打弹珠 | 一腿蹲一腿跪,重心放低,一只手撑地,另一只手准备弹 |
| 踮脚看柜台 | 仰头看高处的东西,一只手扶柜台边缘 |
| 掏口袋 | 手伸进短裤口袋翻找,可能在找弹珠或卡片 |
| 拿着东西看 | 双手捧着某个小物件凑近看(弹珠、卡片等) |
> **v0.1 阶段**:只需站立、走路、跑步的基础动画。交互姿态后续版本按需增加。
---
## 九、与其他角色的体型对比
主角处于同伴中的"中间位置",这和他的家庭定位一致——不是最壮的也不是最瘦的。
| 角色 | 相对主角 | 体型差异 |
|------|---------|---------|
| **主角** | — | 微壮结实,中等身高 |
| **死党A** | 比主角高半个头,更瘦 | 营养好但还没长肉,偏"长条型" |
| **死党B** | 和主角差不多高,更瘦 | 营养一般,精瘦型,但很灵活 |
| **小霸王** | 比主角高一点,更壮 | 同龄人中块头最大的,有压迫感 |
| **女班长** | 比主角矮一点,纤细 | 四五年级的女生普遍比男生矮 |
| **小卖部老板** | 成人,比主角高很多 | 标准成人比例 |
---
## 十、Lowpoly 建模要点
### 优先级
1. **轮廓识别** > 面部细节:远处看轮廓就能认出是主角
2. **色彩区分** > 材质细节:浅蓝T恤 + 深色短裤的配色在场景中要醒目
3. **姿态感** > 骨骼精度:姿态自然比骨骼数量重要
### 建模建议
- **头部**:用球体 + 少量面数做出圆脸轮廓,眼睛可以用贴图而非建模
- **头发**:用少量几何体块表达蓬松感,不需要一根一根的发丝
- **身体**:T恤和短裤可以用宽松的几何体包裹,不需要布料模拟
- **手脚**:简化为块状,能表达基本动作即可
- **凉鞋**:简化为鞋型整体,用颜色区分
### 贴图建议
- **一张 512×512 贴图覆盖全身**:在一张贴图上排布面部、T恤正面/背面、短裤、鞋子
- **面部贴图**:简单的眼睛(两个椭圆)、嘴巴(一条弧线)、眉毛(两个短粗线条),不需要更多
- **T恤图案**:在贴图上画印花图案,像素感可以保留(手绘风格)
- **肤色渐变**:手臂暴露处和遮挡处的肤色差异可以在贴图上用色块区分
---
## 十一、设计禁忌
以下情况**必须避免**:
| 禁忌 | 原因 |
|------|------|
| 太"酷"太"帅" | 主角是邻家普通男孩,不是动漫主角 |
| 衣服太新太干净 | 暑假在外面野的孩子,衣服有洗过很多次的旧感 |
| 太多细节和配件 | Lowpoly 风格,细节靠轮廓和色彩而非物件堆砌 |
| 发型太时尚 | 千禧年普通男孩不烫发不造型,自然就好 |
| 表情太夸张 | 主角是沉默的观察者,默认状态是平静的 |
| 带有现代元素 | 智能手机、现代品牌Logo、现代运动鞋等都是时代错误 |
| 身材比例太写实 | 要保持 Lowpoly 的卡通化比例,头大身小 |
---
## 十二、参考意象
> 以下描述用于传达"感觉",不是精确的视觉参考。
**想象一个画面**:夏天的下午三四点,阳光照在水泥路上。一个穿着浅蓝T恤和深色短裤的男孩,脚踩塑料凉鞋,左手腕上戴着电子表,脖子上挂着一根红绳穿着的钥匙。他从小卖部门口走过,手里攥着刚买的弹珠,头发被风吹得有点乱,皮肤晒得发亮。他停下来,蹲在路边,把弹珠举到眼前对着阳光看——弹珠里的花纹在阳光下特别好看。
**这就是主角。不需要更多了。**
---
## 版本备注
| 版本 | 需要的完成度 |
|------|-------------|
| **v0.1** | 占位模型即可(胶囊体 + 简单T恤短裤配色),本描述作为远期目标参考 |
| **v0.3** | 正式 Lowpoly 角色,包含本文描述的所有视觉要素 |
| **v0.4+** | 增加更多动画姿态和交互表情 |
+261
View File
@@ -0,0 +1,261 @@
# v0.1 场景设计 — 城郊小街
> 本文档定义 v0.1 白盒场景的具体内容,供程序搭建白盒和美术制作资产参考。
---
## 场景概述
**场景名称**: 城郊小街
**一句话描述**: 一条连接家和外部世界的小街——小卖部、老居民楼、空地和水塘,千禧年前后城郊结合区的缩影。
**规模**: 约 80m × 60m 的可探索区域,步行走一圈约 2-3 分钟
**时间设定**: 夏日的下午(v0.1 固定时段,不做时间变化)
---
## 区域划分与地图
```
┌──────────────┐
│ 水塘边 │
│ (芦苇·青蛙) │
└──────┬───────┘
│ 小路
┌──────┴───────┐
│ 巷子(窄) │
│ (猫·纸箱·蛛网) │
┌─────────┴──────────────┴──────────┐
│ │
┌──────┴──────┐ 主 街 道 ┌────────────┴───┐
│ 我的家 │ (水泥路) │ 空地/操场 │
│ (小院·平房) │ ←────────→ │ (弹珠·大树·水坑) │
└──────┬──────┘ └────────────────┘
│ │
┌──────┴──────┐ ┌─────────┴────┐
│ 小卖部 │ │ 老居民楼 │
│ (零食·冰柜) │ │ (背景装饰) │
└─────────────┘ └──────────────┘
```
**流线**: 家 → 街道 → 各分支区域(小卖部/空地/巷子→水塘)
---
## 各区域详细设计
### 1. 家(Home)
**位置**: 场景西南角
**面积**: 约 8m × 6m(含小院)
**描述**:
带小院子的平房(或一楼的套房),主角住的地方。院子有铁皮门,院子不大但塞满了生活痕迹。
**环境细节**:
- 小院:晾衣杆(挂着衣服)、旧自行车靠墙、角落的杂物堆
- 外观:红砖墙或水泥外墙,窗户有铁栏杆,门是那种绿色铁门或木门
- 门口:一块小门垫,门旁可能有对联/福字的痕迹
**室内(v0.1 简化)**:
- 单间或小客厅即可,不需要完整户型
- 老式冰箱、大脑袋电视(搁在电视柜上)、一张书桌
- 墙上挂着日历
- v0.1 室内可以不实现,仅作为视觉背景(门打开看到内部但不可进入)
- 如果实现,最小空间:冰箱 + 电视 + 书桌 + 床
**可交互物体**: 冰箱、电视、书桌、日历、床(详见 interaction-system.md)
**氛围**: 熟悉、安全、有点乱但温馨
---
### 2. 小卖部(Corner Shop)
**位置**: 家旁边,沿主街道
**面积**: 约 6m × 4m
**描述**:
街角的小卖部,玻璃柜台里面摆着各种零食,墙上挂着卡片架。是孩子们放学后的"圣地"。
**环境细节**:
- 外观:蓝色或绿色的褪色招牌("XX百货"或手写的"小卖部")
- 门:卷帘门或玻璃推拉门(白天是打开的)
- 柜台:玻璃柜台,里面分层摆着零食
- 货架:靠墙的简易金属货架
- 冰柜:那种顶盖掀开的老式冰柜
- 角落:一台小电视,正在放动画片或电视剧
**可交互物体**: 零食货架、冰柜、卡片架、老板(NPC)
**时代物品参考**:
- 辣条(卫龙/大刀肉)
- 大大泡泡糖(送贴纸!)
- 小浣熊干脆面(集水浒卡!)
- 健力宝 / 北冰洋
- 袋装冰(冰块装在透明塑料袋里)
- 各种5毛钱的零食
**氛围**: 零食的诱惑、夏天的冰柜味、电视的声音
---
### 3. 主街道(Main Street)
**位置**: 场景中心,东西走向
**长度**: 约 50m
**宽度**: 约 5m(两侧有建筑/围墙)
**描述**:
一条水泥路面的街道,不宽,偶尔有自行车经过(v0.1 不需要动态车辆)。街道两侧有各种生活痕迹。
**环境细节**:
- 路面:灰色水泥,有些裂缝和修补的痕迹
- 两侧:围墙、居民楼底楼、零散的摊位痕迹
- 街边:公用电话亭、老式路灯、电线杆(电线交错)
- 生活痕迹:墙上贴着的小广告、褪色的标语、地上的落叶
**可交互物体**: 公用电话亭、老式自行车、晾衣杆、墙上的涂鸦、下水道盖
**氛围**: 千禧年城郊的日常——不精致但有人气
---
### 4. 空地/操场(Vacant Lot)
**位置**: 场景东侧
**面积**: 约 15m × 12m
**描述**:
一片开阔的空地,可能是拆迁后还没建设的地块。地面是硬土和杂草,是孩子们的主要活动场地。
**环境细节**:
- 地面:硬黄土 + 稀疏的杂草 + 几处低洼(下雨后积水坑)
- 中央:一棵大梧桐树(提供阴凉)
- 边缘:零散的砖块、废弃的建材
- 地面上隐约可以看到弹珠游戏的"圈"(画在地上的痕迹)
**可交互物体**: 散落的弹珠、水浒卡碎片、小石子、大树、水坑
**氛围**: 孩子们的领地——虽然简陋但充满可能
---
### 5. 巷子(Alley)
**位置**: 连接街道和水塘的窄通道
**长度**: 约 25m
**宽度**: 约 2-3m
**描述**:
两侧是居民楼或围墙的窄巷子,光线略暗,有种探险的感觉。走到尽头就是水塘。
**环境细节**:
- 两侧:斑驳的墙面、生锈的铁窗、窗外伸出晾衣杆
- 地面:青砖或石板,有些地方长了青苔
- 细节:墙角有蜘蛛网、窗台上有花盆、角落有废纸箱
- 声音:巷子里回声明显(v0.1 不需要,后续版本可加)
**可交互物体**: 流浪猫、老窗户、废纸箱、蜘蛛网
**氛围**: 安静、略带神秘、有种"大人不知道的地方"的感觉
---
### 6. 水塘边(Pond)
**位置**: 场景最北端
**面积**: 水塘约 15m × 10m,岸边约 3m 宽
**描述**:
城郊保留的小水塘,周边有芦苇和杂草。夏天的傍晚会有蛙叫。水面映着天空和周围的树。
**环境细节**:
- 水面:深绿色,有微微的波纹(简单材质动画即可)
- 岸边:泥土坡度,长着芦苇和杂草
- 细节:荷叶、青蛙、偶尔掠过的蜻蜓
- 远景:水塘对岸是模糊的田野/工地(场景边界)
**可交互物体**: 水塘、青蛙、芦苇、散落的糖纸和橡皮擦
**氛围**: 夏天的水边——有点危险但很吸引人
---
### 7. 老居民楼(背景装饰)
**位置**: 场景东南角
**状态**: v0.1 为纯背景装饰,不可进入
**描述**:
一栋5-6层的老式居民楼,灰白外墙,阳台上晒着衣服。作为场景背景提供"城郊居民区"的氛围。
**细节**:
- 外墙有些剥落和裂缝
- 阳台上有晾衣杆、花盆、杂物
- 底楼可能有杂物间或车库
- 楼梯间入口(v0.1 不可进入)
---
## 时代元素清单
以下元素应出现在场景各处,营造千禧年前后城郊的时代感:
### 静态物件
| 物件 | 位置 | 说明 |
|------|------|------|
| 褪色招牌 | 小卖部上方 | 蓝底白字或手写体 |
| 公用电话亭 | 街道边 | IC卡电话,可能有广告贴纸 |
| 老式自行车 | 家门口/街道边 | 永久牌/凤凰牌,后座有铁丝筐 |
| 晾衣杆 | 家院子/居民楼阳台 | 竹竿或铁管,挂着衣服被子 |
| 红砖墙 | 巷子/家外围 | 有爬山虎或剥落的墙皮 |
| 电线杆 | 街道边 | 木头或水泥杆,电线交错 |
| 工地围挡 | 场景边缘 | 蓝色铁皮围挡,写着标语 |
| 广告墙 | 街道边 | 手绘的移动/联通广告 |
| 菜市场棚子 | 街道某段 | 简易铁皮棚(v0.1 纯装饰) |
| 垃圾桶 | 街道角落 | 绿色铁皮垃圾桶 |
### 地面细节
- 水泥路裂缝
- 砖缝中的杂草
- 地面上的粉笔画痕迹
- 积水坑(反光材质)
- 散落的零食包装纸
### 环境氛围
- 夏日的暖色阳光(下午3-4点的光线)
- 微微的热气蒸腾感(v0.1 用简单的后处理热浪效果?可选)
- 远处模糊的蝉鸣声(v0.1 不做声音,后续版本)
---
## 收集品分布(v0.1)
场景中散落的 10 个可拾取收集品:
| # | 物品 | 位置 | 稀有度 |
|---|------|------|--------|
| 1 | 彩色弹珠(蓝色) | 空地地面 | 普通 |
| 2 | 彩色弹珠(红色花纹) | 巷子深处 | 普通 |
| 3 | 小石子 | 空地水坑旁 | 普通 |
| 4 | 水浒卡碎片(鲁智深) | 空地砖块旁 | 稀有 |
| 5 | 糖纸(大白兔) | 水塘岸边 | 普通 |
| 6 | 橡皮擦(半透明) | 水塘岸边 | 普通 |
| 7 | 水浒卡碎片(武松) | 巷子废纸箱内 | 稀有 |
| 8 | 弹珠(透明冰花) | 街道下水道盖旁 | 普通 |
| 9 | 小浣熊调料包 | 小卖部门口 | 普通 |
| 10 | 玻璃弹珠(猫眼) | 家院子角落 | 稀有 |
拾取后物品消失(oneShot),收集计数 +1。
---
## 场景边界处理
- 场景边缘用自然元素围合:围墙、居民楼、水塘、工地围挡
- 不可到达的区域用物理碰撞阻挡
- 不需要加载屏幕或过渡区域(v0.1 单一关卡)
- 场景边缘可放置远景(简单面片 + 天空盒)暗示更大的世界
File diff suppressed because it is too large Load Diff
+148
View File
@@ -0,0 +1,148 @@
# v0.1 范围定义 — 场景漫游与环境交互
> 本文档明确 v0.1 原型的功能边界,作为程序和美术 Agent 的需求基准。
---
## v0.1 目标
**验证核心问题**: 玩家能否在千禧年城郊场景中感受到"探索的乐趣"和"时代的氛围"?
**体验目标**:
1. 玩家能自由漫步在城郊小街场景中
2. 通过观察和交互,感受到千禧年前后城郊的生活气息
3. 每个可交互物体都提供一小段叙事文本,唤起怀旧感
4. 收集散落的物品,获得探索的满足感
**一句话**: "在一条千禧年的城郊小街上散步,翻翻冰箱、看看小卖部、捡起地上的弹珠。"
---
## In Scope(v0.1 包含)
### 玩家控制
- [x] 第三人称摄像机跟随
- [x] WASD 步行移动
- [x] Shift 跑步(速度切换)
- [x] E 键交互
### 场景
- [x] 城郊小街白盒场景(6个区域:家、小卖部、街道、空地、巷子、水塘边)
- [x] 基础地面和碰撞体
- [x] 简单的天空盒(夏日晴空)
- [x] 基础光照(午后阳光方向光 + 环境光)
### 交互系统
- [x] 靠近物体显示交互提示 UI
- [x] 观察类交互(25+ 个可观察物体,每个有叙事文本)
- [x] 拾取类交互(10 个收集品)
- [x] 操作类交互(开门)
- [x] 交互后叙事文本的显示 UI
### 收集系统(简化版)
- [x] 拾取物品的计数显示
- [x] 物品获得时的 UI 提示
### 视觉
- [x] Lowpoly 风格的白盒几何体(不需要最终美术资产)
- [x] 用简单颜色区分不同区域和物体
- [x] 基本的场景氛围(暖色调光照)
---
## Out of Scope(v0.1 不包含)
### 明确排除
- ❌ 完整的小游戏系统(弹珠、跳绳等)→ v0.2
- ❌ 时间循环系统(一天四个时段)→ v0.3
- ❌ NPC AI 和移动
- ❌ 对话树 / 对话选择
- ❌ 物品背包 UI(只做计数,不做界面)
- ❌ 物品使用 / 组合系统
- ❌ 任务系统
- ❌ 蹲下系统
- ❌ 跳跃 / 攀爬
- ❌ 手柄支持
- ❌ 音频系统(BGM、音效)→ 后续版本
- ❌ 存档/读档系统
- ❌ 设置菜单(画质、音量等)
- ❌ 多语言支持
- ❌ 过场动画 / 镜头演出
- ❌ 粒子效果(除了基础材质动画)
- ❌ 远景 / 天气系统
---
## 验收标准
### 基础运行
- [ ] 游戏能正常启动并加载场景
- [ ] 角色出现在"家"门口
- [ ] 无崩溃、无严重性能问题(目标:稳定30帧以上)
### 移动体验
- [ ] WASD 移动响应流畅,无延迟感
- [ ] 摄像机跟随平滑,不穿墙
- [ ] 跑步和步行速度差异明显
- [ ] 转身和停止有自然的过渡
### 交互体验
- [ ] 靠近可交互物体时正确显示提示
- [ ] 按E键能触发交互,显示叙事文本或拾取物品
- [ ] 叙事文本以打字机效果逐字显示
- [ ] 离开交互范围时提示自动消失
### 场景体验
- [ ] 6个区域均可到达和探索
- [ ] 每个区域至少有3个可交互物体
- [ ] 场景有基本的视觉辨识度(不同区域有不同感觉)
- [ ] 10个收集品可以全部找到并拾取
### 氛围体验(主观判断)
- [ ] 走在街上能感受到"千禧年城郊"的时代感
- [ ] 交互文本能唤起某种怀旧感或共鸣
- [ ] 整体体验让人想继续探索更多
---
## 与 v0.2 的衔接点
v0.1 完成后,v0.2 将在以下基础上扩展:
1. **新增小游戏**: 在"空地"区域加入弹珠小游戏
- v0.1 的空地已预留了弹珠游戏的位置(地面上的"圈")
- 交互系统可复用和扩展
2. **蹲下系统**: 在交互基础上增加蹲下探索
- 部分隐藏物品需要蹲下才能发现
3. **NPC 对话**: 从简单的观察文本升级为对话系统
- 小卖部老板可以交谈
- 可能出现小伙伴 NPC
4. **音效**: 为场景添加基础音效
- 脚步声、交互音效、环境音
5. **室内空间**: 扩展家的内部和小卖部内部
- v0.1 如果只做了室外,v0.2 补全室内
---
## 开发优先级(供程序 Agent 参考)
1. **P0 — 必须完成**: 角色控制 + 摄像机 + 交互系统核心 + 场景白盒
2. **P1 — 应该完成**: 全部25+观察交互 + 10个拾取品 + 收集计数
3. **P2 — 可以简化**: 叙事文本 UI 效果、光照细节、场景装饰
---
## 预估工作量(粗略)
| 模块 | 预估 | 说明 |
|------|------|------|
| 角色控制器 | 1-2天 | UE5 内置 Character + 摄像机设置 |
| 交互系统 | 2-3天 | 基类 + 检测 + UI 提示 + 文本显示 |
| 场景白盒 | 2-3天 | 6个区域的基础几何体搭建 |
| 交互内容填充 | 1-2天 | 配置25+交互对象的数据 |
| 调试打磨 | 1-2天 | 测试和修复 |
| **合计** | **7-12天** | 单人独立开发节奏 |