# 火山第一次维修 - 实现资源映射 路径变动时更新本文件。梳理状态见 `_archived/资源梳理清单.md`。 ## 场景(火山相关) | 场景 | 路径 | 用途 | |------|------|------| | 主维修场景 | `Assets/Scenes/HuoShanFixScene.unity` | 第一次维修完整流程 | ## Yarn | 工程 | 路径 | 说明 | |------|------|------| | 主流程(Test) | `Assets/Resources/Yarn/Test_Huoshan/` | Stage1–8, EventNode, Center | ### Stage ↔ 系统使用 | Stage | 主要系统 | 用途 | |-------|----------|------| | Stage1 | Clinic | 诊室开场 | | Stage2 | BodyModule, EmotionWave | 后脑检查(表达→销售→逻辑→情绪) | | Stage3 | Sales, EmotionWave | 销售模块深入、波形步进、modify(EmotionWave 替代 Waveform) | | Stage4 | BodyModule | 表达 RAM 报错表现(短暂过渡) | | Stage5 | Clinic | 理解问题后诊室对话 | | Stage6 | Expression | 释放 RAM、log 小游戏(表达粒子) | | Stage7 | BodyModule | 后脑检查过渡 | | Stage8 | Clinic | 诊室最终谈话 | ## 脚本 | 系统 | 路径 | |------|------| | 波形 | `Assets/Scripts/MiniGame/HuoShan/Waveform/` | | 销售 | `Assets/Scripts/MiniGame/HuoShan/SalesSystem/` | | 表达/语言粒子 | `Assets/Scripts/MiniGame/HuoShan/Language/` | | 情绪波形 | `Assets/Scripts/MiniGame/HuoShan/EmotionWave/` | | 维修框架 | `Assets/Scripts/FixSystemNew/` | ## 各系统概述与 Yarn 接口 ### 维修框架(FixSystemNew) | 组件 | 路径 | 概述 | |------|------|------| | FixSystemCenter | `FixSystemCenter.cs` | 全局入口,管理 FixState 与 SystemDic | | FixStateMachine | `FixStateMachine.cs` | 状态机,支持 Clinic/BodyModule/Sales/Expression 等 | | ClinicSystem | `Clinic/` | 诊室视图、角色立绘 | | BodyModuleSystem | `BodyModule/` | 后脑模块、插线、热力图 | | ScreenSystem | `Screen System/` | 任务面板、完成标记 | | ShockSystem | `Open/` | 转场闪光、震动效果 | **Yarn 命令(FixSystem)** | 命令 | 说明 | |------|------| | `<>` | 切换维修状态,如 `Sales` / `BodyModule` / `Clinic` / `Expression`;`Arg` 如 `Head` 表示后脑 | | `<>` | 播放诊室转场切镜 | **Yarn 命令(Clinic)** | 命令 | 说明 | |------|------| | `<>` | 初始化角色立绘 | | `<>` | 切换角色表情/姿态 | | `<>` | 隐藏角色(淡出) | | `<>` | 显示角色(淡入) | | `<>` | 退出诊室 | **Yarn 命令(BodyModule)** | 命令 | 说明 | |------|------| | `<>` | 重置插线状态 | | `<>` / `<>` | 放下/收起线缆 | | `<>` / `<>` | 显示/隐藏热力图 | **Yarn 命令(Screen)** | 命令 | 说明 | |------|------| | `<>` | 显示任务面板 | | `<>` | 完成指定任务 | | `<>` | 清空屏幕文字 | | `<>` | 清空任务列表 | --- ### 销售系统(SalesSystem) **概述**:销售模块深入,发条(Crank)-滑片(Slider)驱动波形进度;支持处理器深入模式(旋钮+辉光管)。 **核心组件**:`SalesManager`、`CrankController`、`SliderController`、`KnobController`、`ProcessorLightController`、`GlowTubeEffect` **Yarn 命令** | 命令 | 说明 | |------|------| | `<>` | 重置发条 | | `<>` | 旋转发条到角度、时长 | | `<>` | 等待发条完成一轮 | | `<>` | 重置滑片 | | `<>` | 滑片移到标准化位置 | | `<>` | 滑片移到指定段 | | `<>` | 滑片移到异常段 | | `<>` | 等待滑片到达位置 | | `<>` | 激活指定处理器灯 | | `<>` | 关闭所有处理器灯 | | `<>` | 显示异常处理器(闪烁) | | `<>` | 按滑片位置更新处理器灯 | | `<>` | 进入步进模式 | | `<>` | 进入处理器深入模式(面板放大、旋钮/辉光管) | | `<>` | 退出处理器深入模式 | | `<>` | 完成发条-滑片一轮 | | `<>` | 等待步进节点完成 | | `<>` | 重置发条-滑片循环 | | `<>` | 旋钮调节功率(KnobController) | | `<>` | 重置旋钮(保留尝试次数,用于重试) | | `<>` | 锁定旋钮(第二次失败后由 Yarn 调用) | **事件回调**:`$salesTurnIndex` 每轮转动完成后更新;`$knobFailCount` 旋钮失败次数(双次尝试)。EventNode 中 `销售模块转动完成` 按 `$salesTurnIndex` 分支(1=语义合成、2=语言审查、3=语气调整+enter_processor_mode)。旋钮第一次失败跳 `处理器单次调节失败`(reset_knob 重试),第二次失败跳 `处理器功率调节失败`。 --- ### 波形系统(Waveform) **概述**:波形检测器、扫描锁定、时间戳、波形显示与效果。Stage2/Stage3 已改用 EmotionWave 替代;Waveform 仍可用于 Stage7 等场景。 **核心组件**:`WaveformDetector` **Yarn 命令** | 命令 | 说明 | |------|------| | `<>` | 显示检测器 | | `<>` | 隐藏检测器 | | `<>` | 连接到模块(如 `滤波器`) | | `<>` | 断开连接 | | `<>` | 启用逻辑扫描(可锁定) | | `<>` | 启用情绪扫描(找不到) | | `<>` | 停止扫描 | | `<>` | 等待扫描锁定 | | `<>` | 等待扫描未找到 | | `<>` | 显示锁定时间戳的波形 | | `<>` | 显示波形类型(emotion/logic/joke/filter_output) | | `<>` | 隐藏波形 | | `<>` | 波形类型变换 | | `<>` | 波形被篡改变换 | | `<>` | 显示检测结果 | | `<>` | 隐藏结果 | | `<>` | 波形检测效果(闪烁) | | `<>` | 横扫效果 | | `<>` | 限幅检测效果 | | `<>` | 通过效果(绿) | | `<>` | 失败效果(红) | | `<>` | 报错 flooding(Stage4 用) | | `<>` | 清除报错 | **Yarn 函数** | 函数 | 说明 | |------|------| | `is_scan_locked()` | 是否已锁定 | | `is_scan_not_found()` | 是否扫描未找到 | | `is_fully_covered()` | 是否全覆盖 | | `get_locked_timestamp()` | 获取锁定时间戳 | --- ### 表达系统(Language/Expression) **概述**:表达模块的「焦虑短句→目标句子」粒子小游戏,用于 log 梳理(Stage6)。 **核心组件**:`ExpressionManager` **Yarn 命令** | 命令 | 说明 | |------|------| | `<>` | 打开表达视图(背景+粒子容器) | | `<>` | 启动粒子系统,完成时跳节点 | | `<>` | 关闭表达系统 | | `<>` | 重置(可选不播放入场动画 `false`) | --- ### 情绪波形系统(EmotionWave) **概述**:后脑检查与销售模块深入时显示的情绪波形条,支持预设切换;可与滑片同步。已替代 Stage2/Stage3 中的 Waveform。 **核心组件**:`EmotionWaveManager`、`EmotionWaveConfig` **Yarn 命令** | 命令 | 说明 | |------|------| | `<>` | 显示情绪波形 | | `<>` | 隐藏情绪波形 | | `<>` | 动画到进度 0.5,2 秒 | | `<>` | 立即设置进度 | | `<>` | 切换波形预设:normal(正常情绪)/ predicted(红色毛刺预测)/ modified_joke(被篡改笑话) | | `<>` | 启用滑片同步 | | `<>` | 禁用滑片同步 | **Yarn 函数** | 函数 | 说明 | |------|------| | `is_emotion_wave_shown()` | 是否已显示 | | `get_emotion_wave_progress()` | 当前进度 | | `get_emotion_wave_target()` | 目标进度 | --- ### 其他 Yarn 命令(全局/UI) | 命令 | 说明 | |------|------| | `<>` | 打开报错/警告窗口(BaseYarnCommand) | | `<>` / `<>` | 屏幕淡入/淡出 | | `<>` | 隐藏对话 | ## 美术资源 ### 维修专用 ### 角色与立绘 | 资源 | 路径 | |------|------| | 火山主资源 | `Assets/RawResources/Art/火山.psb` | | 火山立绘预制体 | `Assets/Resources/SpriteGroup/火山.prefab` | | 地铁火山 | `Assets/RawResources/Actor/地铁人物/地铁火山/` | | 地铁火山暗 | `Assets/RawResources/Actor/地铁人物/地铁火山暗/` | | 酒吧火山 | `Assets/RawResources/Art/酒吧素材/酒吧内角色动画/酒吧火山.*` | | 酒吧火山 | `Assets/RawResources/Actor/酒吧人物/酒吧火山.*` | ### 章节与 UI | 资源 | 路径 | |------|------| | 第七章图 | `Assets/RawResources/Art/Chapter/chapter7_huoshan.png` | ## ScriptableObjects / 配置 | 资产 | 路径 | 说明 | |------|------|------| | 测试入口 | `Assets/ScriptableObjects/SceneSO/Test_HuoShan.asset` | firstScene: HuoShanFixScene | ## 本地化 | 工程 | 路径 | |------|------| | Test_Huoshan | `Assets/Language/Dialog/Test_Huoshan/` | ## 其他 | 类型 | 说明 | |------|------| | 角色配置 | `Assets/StreamingAssets/Config/character.csv` 中 `hs,火山,Huoshan` | | Tag | `HuoshanScreen`(波形/粒子渲染层)| ---