docs(火山): 销售模块深入设计及实现指南
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
# 火山第一次维修 - 销售模块深入
|
||||
|
||||
**销售模块深入玩法与交互设计的唯一设计来源。** 流程步骤引用 `02_flow`,实现细节引用 `04_implementation`。
|
||||
|
||||
---
|
||||
|
||||
## 设计目标
|
||||
|
||||
- **叙事**:玩家逐步发现火山的「悲伤→笑话」转化来自前任医生的过渡方案,且火山未遵医嘱复查。
|
||||
- **体验**:从「分段排查」到「定位转换器」再到「调节失败」的递进式调查节奏。
|
||||
- **情绪**:发现全功率运转的转换器时,对应火山长期用笑话掩盖真实情绪的处境。
|
||||
|
||||
---
|
||||
|
||||
## 步骤映射(引用 02_flow 6–9)
|
||||
|
||||
| 步骤 | 场景 | 内容 | 本模块负责 |
|
||||
|------|------|------|------------|
|
||||
| 6 | 销售模块深入 | 分段查看波形变化,发现某点异常:悲伤→幽默 | ✓ |
|
||||
| 7 | 销售模块深入 | 找到转换器,发现全功率运转 | ✓ |
|
||||
| 8 | 信息面板 | 查看治疗记录,发现火山未遵医嘱 | ✓ |
|
||||
| 9 | 销售模块深入 | 尝试调节转换器,失败,需转表达模块 | ✓ |
|
||||
|
||||
*步骤 10(表达模块 RAM)为后续 Stage,本模块收尾在步骤 9。*
|
||||
|
||||
---
|
||||
|
||||
## 波形屏幕(统一展示载体)
|
||||
|
||||
**波形屏幕**是维修过程中波形显示的**唯一载体**,贯穿后脑检查与销售模块深入两个阶段。
|
||||
|
||||
### 深入前(Stage2 后脑检查)
|
||||
|
||||
- 波形屏幕用于检查 **销售模块** 和 **情绪模块**。
|
||||
- 连接 `"滤波器"` 查看销售模块输出:发现锯齿波(笑话波形)、扫描逻辑/情绪成分。
|
||||
- 情绪检查:`enable_scan_emotion` 发现输出端未检出原始情绪波形;用逻辑模块时间戳可回看情绪模块原始波形。
|
||||
|
||||
### 深入后(Stage3 销售模块深入)
|
||||
|
||||
- **分段波形调试**依然在同一波形屏幕上显示。
|
||||
- 不切换设备,仅切换模式:从「扫描模式」转为「步进模式」。
|
||||
- 步进 1/4–4/4 的波形变化(情绪输入→屏蔽词→限幅→异常介入)均在此屏幕呈现。
|
||||
|
||||
### 临时实现参考
|
||||
|
||||
| 组件 | 说明 |
|
||||
|------|------|
|
||||
| `WaveformDetector` | 波形检测器,承载波形屏幕(`Assets/Scripts/MiniGame/HuoShan/Waveform/WaveformDetector.cs`)|
|
||||
| `show_waveform_detector` | 显示波形屏幕 |
|
||||
| `hide_waveform_detector` | 隐藏波形屏幕 |
|
||||
| `connect_waveform_detector "模块ID"` | 连接到指定模块(如 `"滤波器"`)|
|
||||
| `WaveformRenderer` | 波形渲染 |
|
||||
|
||||
*Stage2、Stage3 的 Yarn 中均使用 `<<connect_waveform_detector "滤波器">>`。*
|
||||
|
||||
---
|
||||
|
||||
## 设备与交互设计(美术实现版)
|
||||
|
||||
以下为深入后销售模块的具象设计,美术资源统一在 `步进模式.psb` 中,HuoShanFixScene 已有 SellSystem 预置(尚未分层)。
|
||||
|
||||
### 设备原理
|
||||
|
||||
- **中心环**:电阻圈 + 线圈组成环,用于处理波形。底部(不可见)有信号输入(如情绪信号),经磁场处理后,波形信号通过中心阴离子发射器输出到表达模块。
|
||||
- **阴离子发射器**:中心组件,光电遮罩根据当前传输的信号类型闪烁。
|
||||
- **波形屏幕**:显示对应波形。初始为混乱的笑话波形;进入步进后为未处理波形;随滑片移动,对应段的波形随之变化。
|
||||
- **处理器**:线圈与多个处理器相连,当前滑片位置对应某一处理器的灯亮。
|
||||
|
||||
### 调试模式进入(收缩→扩张)
|
||||
|
||||
- 底座:由收缩→扩张(当前 psb 为扩张态)。
|
||||
- 内环、外边框同步扩张。
|
||||
- 滑片 C 依附外环;电夹移动到指定位置。
|
||||
- 动画:滑片 C 切到滑片 A,帧动画从收缩到伸展。
|
||||
- 完成后进入步进状态:等离子体不再在线圈内,波形屏显示未处理波形,阴离子发射器闪烁与波形一致。
|
||||
|
||||
### 步进流程(发条 + 滑片)
|
||||
|
||||
- **发条**:上发条约 260°(非 360°)到顶,松开后缓慢归位。
|
||||
- **滑片**:以圆环中心为轴,沿外环滑动。
|
||||
- **联动**:从滑片初始位置到当前位置之间的等离子体运转,对应磁场激活,波形随之变化。
|
||||
- **三次正向**:每次发条上满、滑动结束,Yarn 总结当前状态并继续。
|
||||
- **第三次**:滑动过程中某段出现剧烈变化,波形充满毛刺(笑话)。
|
||||
- **第四次**:反向移动,滑片移动到该异常区间后停止。
|
||||
|
||||
### 处理器段(步骤 7–9)
|
||||
|
||||
- 滑片停在异常段 → 对应处理器灯亮。
|
||||
- 深入面板右移(当前模块位置固定),打开处理器盖子(可 fade)。
|
||||
- 可见:旋钮在最大功率,氖光灯最大反应闪烁。
|
||||
- 尝试降低功率 → 失败。
|
||||
- 信息面板:表达模块拒绝未被处理的波形。
|
||||
- 退出深入模式,前往表达模块。
|
||||
|
||||
### 美术与场景
|
||||
|
||||
- **美术资源**:`Assets/Resources/Art/Fix/Huoshan/SellSystem/步进模式.psb`
|
||||
- **场景**:HuoShanFixScene 中已拖入 SellSystem,尚未分层。
|
||||
- **视觉参考**:附图中圆环、处理器、波形屏、旋钮、氖光灯等设备外观。
|
||||
|
||||
### 与 02_flow 步骤对应
|
||||
|
||||
| 设计阶段 | 对应步骤 |
|
||||
|----------|----------|
|
||||
| 进入调试模式、步进准备 | 5→6 |
|
||||
| 三次发条 + 发现异常段 | 6 |
|
||||
| 第四次反向定位、processor 灯亮 | 6→7 |
|
||||
| 打开盖子、治疗记录 / 旋钮全功率 | 7–8 |
|
||||
| 尝试降功率失败、信息面板 | 9 |
|
||||
| 退出深入模式 | 9→10 |
|
||||
|
||||
---
|
||||
|
||||
## 分段步进设计
|
||||
|
||||
销售模块内部按信号流向分为 **4 个检查点**,玩家逐步前进,在最后一格发现波形异常改变。**所有步进的波形均显示在波形屏幕上。**
|
||||
|
||||
*注:具象实现采用发条 + 滑片交互(见上文「设备与交互设计」),本表为逻辑映射。*
|
||||
|
||||
### 步进流程(4 格)
|
||||
|
||||
| 格 | 内容 | 玩家操作 | 视觉效果 |
|
||||
|----|------|----------|----------|
|
||||
| 1/4 | 情绪信号接收 | 进入第一格 / 点击前进 | 低频波形,蓝紫色,对应悲伤 |
|
||||
| 2/4 | 屏蔽词检测 | 前进到第二格 | 青色光带横扫(正常过滤流程)|
|
||||
| 3/4 | 限幅检测 | 前进到第三格 | 黄色脉冲检测峰值 |
|
||||
| 4/4 | 异常介入 | 到达第四格 | **波形变形:低频→高频**,发现转换器 |
|
||||
|
||||
### 步骤 6 对应关系
|
||||
|
||||
- 步进 1–3:玩家「分段查看波形的变化」,信号正常。
|
||||
- 步进 4:**发现波形在某点发生异常改变**,悲伤(低频)被修改为幽默(高频)。
|
||||
- 此时触发步骤 6 完成 → 进入步骤 7 的「找到转换器」呈现。
|
||||
|
||||
### 步骤 7 对应关系
|
||||
|
||||
- 步进 4 的波形变形视觉,需具象为一个**转换器** UI/物件。
|
||||
- 转换器状态:**全功率**,将悲伤转化为笑话。
|
||||
- 玩家完成「定位」后,进入步骤 8。
|
||||
|
||||
---
|
||||
|
||||
## 治疗记录(步骤 8)
|
||||
|
||||
### 触发
|
||||
|
||||
- 发现转换器后,玩家可打开**信息面板**查看治疗记录。
|
||||
- 来源:前任医生的安装记录。
|
||||
|
||||
### 内容(与 04_implementation 一致)
|
||||
|
||||
```
|
||||
════════ 安装记录 ════════
|
||||
患者:火山
|
||||
症状:语言生成模块存在缺陷,无法自然处理负面情绪表达
|
||||
患者经常因说话太直接而丢失客户
|
||||
处理方案:安装情绪滤波器 v0.7(临时)
|
||||
将部分悲伤/焦虑波形转化为幽默波形辅助表达
|
||||
随诊安排:每月复查调整参数
|
||||
副作用:未转化的情绪信号可能造成RAM堆积
|
||||
!!重要:此为过渡方案!!
|
||||
```
|
||||
|
||||
### 叙事要点
|
||||
|
||||
- 目的、随诊、副作用均需可阅读。
|
||||
- 关键发现:**火山没有遵医嘱**(未按安排复查调整参数)。
|
||||
- 为步骤 9「调节失败」和后续「表达模块 RAM 堆积」提供合理解释。
|
||||
|
||||
---
|
||||
|
||||
## 转换器调节(步骤 9)
|
||||
|
||||
### 操作
|
||||
|
||||
- 玩家尝试调节转换器强度(如滑块、旋钮等)。
|
||||
- 期望:降低转化强度,让部分真实情绪通过。
|
||||
|
||||
### 失败逻辑
|
||||
|
||||
- 表达模块**拒绝接受**调节后的信号。
|
||||
- 系统反馈:需要先去表达模块处理,才能再调销售模块。
|
||||
- 为步骤 10(打开表达模块 RAM)提供动机。
|
||||
|
||||
### 交互要点
|
||||
|
||||
- 失败应有明确反馈(弹窗、提示或 UI 状态)。
|
||||
- 与 Yarn 流程衔接:触发节点转入步骤 10。
|
||||
|
||||
---
|
||||
|
||||
## 与 Yarn / 流程衔接
|
||||
|
||||
| 节点 | 对应步骤 | 说明 |
|
||||
|------|----------|------|
|
||||
| 进入销售模块 | 5→6 | 从后脑检查转入销售模块深入 |
|
||||
| 完成步进 4、发现异常 | 6 | 波形变形呈现完成 |
|
||||
| 定位转换器 | 7 | 转换器 UI 可交互 / 已高亮 |
|
||||
| 打开治疗记录 | 8 | 信息面板弹出 |
|
||||
| 调节失败 | 9 | 表达模块拒绝,转向步骤 10 |
|
||||
|
||||
*具体 Yarn 节点名与命令以 04_implementation、05_resources 为准。*
|
||||
|
||||
---
|
||||
|
||||
## 实现参考
|
||||
|
||||
| 类型 | 路径 / 说明 |
|
||||
|------|-------------|
|
||||
| 波形屏幕 | `Assets/Scripts/MiniGame/HuoShan/Waveform/`(WaveformDetector、WaveformRenderer、WaveformYarnCommand)|
|
||||
| 销售系统 | `Assets/Scripts/MiniGame/HuoShan/SalesSystem/` |
|
||||
| 主管理器 | `SalesManager.cs`:打开/关闭 SaleView、相机注册 |
|
||||
| 美术 | `Assets/Resources/Art/Fix/Huoshan/SellSystem/`(步进模式.psb 等)|
|
||||
| 维修框架 | `FixStateMachine` 中销售系统视图的打开/关闭 |
|
||||
| 波形命令 | `04_implementation` 波形类型定义、`modify_waveform`、`check_waveform_sweep` 等 |
|
||||
|
||||
---
|
||||
|
||||
## 待补充(开发中填写)
|
||||
|
||||
- [ ] 波形屏幕:扫描模式↔步进模式的切换流程是否需显式 UI 区分
|
||||
- [ ] 步进 UI 布局与操作方式(点击 / 滑动 / 键盘)
|
||||
- [ ] 转换器视觉与交互控件
|
||||
- [ ] 治疗记录面板的打开方式(按钮 / 自动弹出)
|
||||
- [ ] 调节失败的具体反馈形式
|
||||
@@ -0,0 +1,252 @@
|
||||
# 销售模块深入 - 实现指南
|
||||
|
||||
**Agent 可执行实现指引。** 设计来源:[core/06_sales_deep.md](../core/06_sales_deep.md)
|
||||
|
||||
---
|
||||
|
||||
## 前置依赖
|
||||
|
||||
- 设计文档:`Docs/HuoShan/core/06_sales_deep.md`
|
||||
- 美术:`Assets/Resources/Art/Fix/Huoshan/SellSystem/步进模式.psb`
|
||||
- 场景预置:HuoShanFixScene 中 SellSystem
|
||||
- 波形系统:`Assets/Scripts/MiniGame/HuoShan/Waveform/`
|
||||
- 销售系统:`Assets/Scripts/MiniGame/HuoShan/SalesSystem/`
|
||||
|
||||
---
|
||||
|
||||
## 外部原型参考(只读)
|
||||
|
||||
| 原型 | 路径 | 分支 | 说明 |
|
||||
|------|------|------|------|
|
||||
| 波形与基础交互 | `D:\github\Web_EmotionWave` | dev | 波形显示、基础交互探索 |
|
||||
| 处理器 UI | `D:\github\Web_EmotionWave` | glow-tube | 旋钮、氖光灯等处理器 UI |
|
||||
|
||||
---
|
||||
|
||||
## 实现任务拆分(按序执行)
|
||||
|
||||
### 任务 1:步进模式美术分层
|
||||
|
||||
**目标**:SellSystem 在 HuoShanFixScene 中按功能分层,便于脚本挂载。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 分层结构建议:底座 / 内环 / 外环 / 滑片 A / 滑片 C / 电夹 / 波形屏 / 处理器
|
||||
- 各层需有可被脚本引用的 GameObject 或 Transform
|
||||
- 更新 `05_resources.md` 记录 SellSystem 层级
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 在 Unity 中打开 HuoShanFixScene
|
||||
- 选中 SellSystem,检查 psb 导入后的层级
|
||||
- 按需要拆分、命名,确保滑片、电夹、处理器等可单独控制
|
||||
|
||||
---
|
||||
|
||||
### 任务 2:收缩→扩张动画
|
||||
|
||||
**目标**:底座/内环/外边框扩张,滑片 C→A 帧动画,电夹移动到位。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 扩张序列动画(Animator 或 DOTween)
|
||||
- 滑片 C 切到滑片 A 的帧动画(或 sprite swap)
|
||||
- 电夹从初始位置移动到目标位置的动画
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 可用 Unity Animator、DOTween 或 Spine
|
||||
- 动画完成触发:进入步进状态(等离子体不再在线圈内,波形屏切换为未处理波形)
|
||||
|
||||
---
|
||||
|
||||
### 任务 3:发条控件
|
||||
|
||||
**目标**:上发条约 260°,到顶松开,缓慢归位;触发滑片开始滑动。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 发条拖拽/点击交互组件
|
||||
- 260° 旋转上限,归位缓动
|
||||
- 到顶松开后发出「可开始滑片滑动」信号
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 参考 Web 原型 `Web_EmotionWave`(dev)中的交互
|
||||
- 需与 Yarn 或 SalesManager 衔接:每次发条完成 → 对应步进节点
|
||||
|
||||
---
|
||||
|
||||
### 任务 4:滑片滑动与波形联动
|
||||
|
||||
**目标**:滑片以圆环中心为轴滑动;滑动角度/弧度驱动波形变化。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 滑片沿外环滑动逻辑
|
||||
- 滑片位置 → 波形参数映射(对接 WaveformRenderer / WaveformDetector)
|
||||
- 从滑片初始位置到当前位置的等离子体发光段
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 滑片角度/弧度与 `WaveformDetector` 或自定义波形参数联动
|
||||
- 等离子体发光:对应弧段内线圈高亮
|
||||
|
||||
---
|
||||
|
||||
### 任务 5:三次正向 + 一次反向
|
||||
|
||||
**目标**:步进 1–3 正向滑动,步进 3 中标记异常段;步进 4 反向到异常段停止。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 步进 1–3:每次发条上满 → 滑片正向滑动一段 → Yarn 总结
|
||||
- 步进 3:滑动过程中某段波形剧烈变化(毛刺/笑话)
|
||||
- 步进 4:发条反向,滑片移动到异常区间后停止
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 与 `Stage3.yarn` 节点(步进_情绪输入 / 步进_屏蔽词检测 / 步进_限幅检测 / 步进_异常介入)对应
|
||||
- 需根据新设计调整或新增 Yarn 节点,使发条 1–4 次与文案匹配
|
||||
|
||||
---
|
||||
|
||||
### 任务 6:处理器灯与位置映射
|
||||
|
||||
**目标**:滑片位置 → 处理器索引 → 对应灯亮。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 滑片角度/位置与处理器索引的映射表或配置
|
||||
- 处理器灯亮/灭的视觉反馈
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 滑片停在异常段时,对应处理器灯亮
|
||||
- 可为每个处理器分配角度区间
|
||||
|
||||
---
|
||||
|
||||
### 任务 7:深入面板右移 + 处理器盖
|
||||
|
||||
**目标**:面板右移,打开处理器盖子(fade),展示旋钮与氖光灯。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 深入面板整体右移动画
|
||||
- 处理器盖子打开动画(可 fade)
|
||||
- 旋钮、氖光灯的初始状态(最大功率、最大闪烁)
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 旋钮在最大功率:红色指示器在上方
|
||||
- 氖光灯最大反应闪烁
|
||||
|
||||
---
|
||||
|
||||
### 任务 8:旋钮调节与失败逻辑
|
||||
|
||||
**目标**:玩家拖拽降功率 → 失败 → 信息面板显示「表达模块拒绝」。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 旋钮拖拽交互
|
||||
- 调节失败判定
|
||||
- 信息面板弹出,文案:「表达模块拒绝了未被处理的波形」
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 参考 Web 原型 `Web_EmotionWave`(glow-tube 分支)
|
||||
- 与步骤 9 对应,触发退出深入模式、转入步骤 10
|
||||
|
||||
---
|
||||
|
||||
### 任务 9:Yarn 命令扩展
|
||||
|
||||
**目标**:如需新增 `wind_crank`、`slide_to_segment` 等命令,实现并注册。
|
||||
|
||||
**产出**:
|
||||
|
||||
- `SalesYarnCommand.cs` 或扩展 `WaveformYarnCommand.cs`
|
||||
- 命令:如 `wind_crank_complete`、`slide_to_anomaly` 等
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 在 `Assets/Scripts/MiniGame/HuoShan/` 下新建或扩展现有 YarnCommand
|
||||
- 与 `Stage3.yarn` 中的 `<<jump>>` 和对话衔接
|
||||
|
||||
---
|
||||
|
||||
### 任务 10:Stage3 节点衔接
|
||||
|
||||
**目标**:将 Stage3.yarn 的步进节点与发条 1–4 次对应,更新文案。
|
||||
|
||||
**产出**:
|
||||
|
||||
- 更新 `Assets/Resources/Yarn/Test_Huoshan/Stage3.yarn`
|
||||
- 步进_情绪输入 / 步进_屏蔽词检测 / 步进_限幅检测 / 步进_异常介入 与发条 1–4 次逻辑对应
|
||||
- 必要时新增节点(如发条完成、滑片到位等)
|
||||
|
||||
**执行要点**:
|
||||
|
||||
- 对照 [06_sales_deep.md](../core/06_sales_deep.md) 的步骤映射
|
||||
- 保持与 02_flow 步骤 6–9 一致
|
||||
|
||||
---
|
||||
|
||||
## 关键脚本与资源
|
||||
|
||||
| 类型 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| 销售管理器 | `Assets/Scripts/MiniGame/HuoShan/SalesSystem/SalesManager.cs` | SaleView 显示/隐藏 |
|
||||
| 波形检测器 | `Assets/Scripts/MiniGame/HuoShan/Waveform/WaveformDetector.cs` | 波形屏 |
|
||||
| 波形渲染 | `Assets/Scripts/MiniGame/HuoShan/Waveform/WaveformRenderer.cs` | 波形绘制 |
|
||||
| 维修状态机 | `Assets/Scripts/FixSystemNew/FixStateMachine.cs` | SalesState 进入/退出 |
|
||||
| 资源索引 | `Docs/HuoShan/core/05_resources.md` | 路径与资产映射 |
|
||||
|
||||
---
|
||||
|
||||
## 流程关系示意
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Enter [进入调试模式]
|
||||
A1[底座/内环/外边框扩张]
|
||||
A2[滑片C to A 帧动画]
|
||||
A3[电夹移动到位]
|
||||
A1 --> A2 --> A3
|
||||
end
|
||||
|
||||
subgraph Step [步进流程]
|
||||
B1[发条1: 上满260deg]
|
||||
B2[滑片滑动_1]
|
||||
B3[发条2: 上满]
|
||||
B4[滑片滑动_2]
|
||||
B5[发条3: 上满]
|
||||
B6[滑片滑动_3_含异常段]
|
||||
B7[发条4: 反向]
|
||||
B8[滑片移动到异常段停止]
|
||||
end
|
||||
|
||||
subgraph Processor [处理器段]
|
||||
C1[处理器灯亮]
|
||||
C2[面板右移]
|
||||
C3[打开盖子]
|
||||
C4[旋钮最大功率]
|
||||
C5[尝试降功率]
|
||||
C6[失败_信息面板]
|
||||
C5 --> C6
|
||||
end
|
||||
|
||||
Enter --> Step
|
||||
B8 --> C1
|
||||
C1 --> C2 --> C3 --> C4 --> C5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 待确认 / 可后续补充
|
||||
|
||||
- 治疗记录(步骤 8)与「信息面板显示表达模块拒绝」(步骤 9)是否同一面板不同内容
|
||||
- 发条与滑片精确参数:260°、归位速度、滑片角速度等
|
||||
- 异常段的弧度/角度定义
|
||||
Reference in New Issue
Block a user