Files
2026-03-13 22:08:46 +08:00

9.9 KiB
Raw Permalink Blame History

火山第一次维修 - 实现资源映射

路径变动时更新本文件。梳理状态见 _archived/资源梳理清单.md

场景(火山相关)

场景 路径 用途
主维修场景 Assets/Scenes/HuoShanFixScene.unity 第一次维修完整流程

Yarn

工程 路径 说明
主流程(Test Assets/Resources/Yarn/Test_Huoshan/ Stage18, EventNode, Center

Stage ↔ 系统使用

Stage 主要系统 用途
Stage1 Clinic 诊室开场
Stage2 BodyModule, EmotionWave 后脑检查(表达→销售→逻辑→情绪)
Stage3 Sales, EmotionWave 销售模块深入、波形步进、modifyEmotionWave 替代 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

命令 说明
<<switch_fix_system_to "State" "Arg">> 切换维修状态,如 Sales / BodyModule / Clinic / ExpressionArgHead 表示后脑
<<play_clinic_cut>> 播放诊室转场切镜

Yarn 命令(Clinic

命令 说明
<<init_character "火山">> 初始化角色立绘
<<switch_character_state "状态">> 切换角色表情/姿态
<<hide_character 1>> 隐藏角色(淡出)
<<show_character 1>> 显示角色(淡入)
<<quit_clinic_new 1>> 退出诊室

Yarn 命令(BodyModule

命令 说明
<<Reset_Plug>> 重置插线状态
<<DropCable>> / <<RetractCable>> 放下/收起线缆
<<ShowHeatMap>> / <<HideHeatMap>> 显示/隐藏热力图

Yarn 命令(Screen

命令 说明
<<show_task_panel>> 显示任务面板
<<complete_task "line:xxx">> 完成指定任务
<<clear_screen>> 清空屏幕文字
<<clear_tasks>> 清空任务列表

销售系统(SalesSystem

概述:销售模块深入,发条(Crank)-滑片(Slider)驱动波形进度;支持处理器深入模式(旋钮+辉光管)。

核心组件SalesManagerCrankControllerSliderControllerKnobControllerProcessorLightControllerGlowTubeEffect

Yarn 命令

命令 说明
<<reset_crank>> 重置发条
<<rotate_crank 180 0.5>> 旋转发条到角度、时长
<<wait_crank_complete>> 等待发条完成一轮
<<reset_slider>> 重置滑片
<<slide_to_position 0.5 1>> 滑片移到标准化位置
<<slide_to_segment 3 1>> 滑片移到指定段
<<slide_to_anomaly 3 1>> 滑片移到异常段
<<wait_slider_at 0.5>> 等待滑片到达位置
<<activate_processor 3>> 激活指定处理器灯
<<deactivate_all_processors>> 关闭所有处理器灯
<<show_anomaly_processor 3>> 显示异常处理器(闪烁)
<<update_processor_from_slider>> 按滑片位置更新处理器灯
<<enter_step_mode>> 进入步进模式
<<enter_processor_mode>> 进入处理器深入模式(面板放大、旋钮/辉光管)
<<exit_processor_mode>> 退出处理器深入模式
<<complete_crank_cycle>> 完成发条-滑片一轮
<<wait_step_node 3>> 等待步进节点完成
<<reset_crank_cycle>> 重置发条-滑片循环
<<adjust_power 50>> 旋钮调节功率(KnobController
<<reset_knob>> 重置旋钮(保留尝试次数,用于重试)
<<lock_knob>> 锁定旋钮(第二次失败后由 Yarn 调用)

事件回调$salesTurnIndex 每轮转动完成后更新;$knobFailCount 旋钮失败次数(双次尝试)。EventNode 中 销售模块转动完成$salesTurnIndex 分支(1=语义合成、2=语言审查、3=语气调整+enter_processor_mode)。旋钮第一次失败跳 处理器单次调节失败reset_knob 重试),第二次失败跳 处理器功率调节失败


波形系统(Waveform

概述:波形检测器、扫描锁定、时间戳、波形显示与效果。Stage2/Stage3 已改用 EmotionWave 替代;Waveform 仍可用于 Stage7 等场景。

核心组件WaveformDetector

Yarn 命令

命令 说明
<<show_waveform_detector>> 显示检测器
<<hide_waveform_detector 0.3>> 隐藏检测器
<<connect_waveform_detector "模块ID">> 连接到模块(如 滤波器
<<disconnect_waveform_detector>> 断开连接
<<enable_scan_logic "标签">> 启用逻辑扫描(可锁定)
<<enable_scan_emotion "标签">> 启用情绪扫描(找不到)
<<stop_scan_mode>> 停止扫描
<<wait_scan_locked>> 等待扫描锁定
<<wait_scan_not_found>> 等待扫描未找到
<<show_timestamp_waveform>> 显示锁定时间戳的波形
<<show_waveform "emotion" 1.5>> 显示波形类型(emotion/logic/joke/filter_output
<<hide_waveform 0.3>> 隐藏波形
<<transform_waveform "from" "to" 1>> 波形类型变换
<<modify_waveform "emotion" "joke" 2.5>> 波形被篡改变换
<<show_waveform_result "msg" true>> 显示检测结果
<<hide_waveform_result>> 隐藏结果
<<check_waveform 3>> 波形检测效果(闪烁)
<<check_waveform_sweep 2 0.25>> 横扫效果
<<check_waveform_range 2 0.12>> 限幅检测效果
<<check_waveform_pass>> 通过效果(绿)
<<check_waveform_fail>> 失败效果(红)
<<show_error_flood 5 0.3>> 报错 floodingStage4 用)
<<clear_errors>> 清除报错

Yarn 函数

函数 说明
is_scan_locked() 是否已锁定
is_scan_not_found() 是否扫描未找到
is_fully_covered() 是否全覆盖
get_locked_timestamp() 获取锁定时间戳

表达系统(Language/Expression

概述:表达模块的「焦虑短句→目标句子」粒子小游戏,用于 log 梳理(Stage6)。

核心组件ExpressionManager

Yarn 命令

命令 说明
<<open_expression>> 打开表达视图(背景+粒子容器)
<<start_expression "短句1|短句2" "目标句" "完成节点">> 启动粒子系统,完成时跳节点
<<close_expression>> 关闭表达系统
<<reset_expression>> 重置(可选不播放入场动画 false

情绪波形系统(EmotionWave

概述:后脑检查与销售模块深入时显示的情绪波形条,支持预设切换;可与滑片同步。已替代 Stage2/Stage3 中的 Waveform。

核心组件EmotionWaveManagerEmotionWaveConfig

Yarn 命令

命令 说明
<<show_emotion_wave 0.8>> 显示情绪波形
<<hide_emotion_wave 0.5>> 隐藏情绪波形
<<emotion_wave_to 0.5 2>> 动画到进度 0.52 秒
<<set_emotion_wave 0.5>> 立即设置进度
<<switch_emotion_wave_config "preset">> 切换波形预设:normal(正常情绪)/ predicted(红色毛刺预测)/ modified_joke(被篡改笑话)
<<enable_emotion_wave_slider_sync>> 启用滑片同步
<<disable_emotion_wave_slider_sync>> 禁用滑片同步

Yarn 函数

函数 说明
is_emotion_wave_shown() 是否已显示
get_emotion_wave_progress() 当前进度
get_emotion_wave_target() 目标进度

其他 Yarn 命令(全局/UI

命令 说明
<<open_warning_window "消息">> 打开报错/警告窗口(BaseYarnCommand
<<fade_in 1>> / <<fade_out 1>> 屏幕淡入/淡出
<<hide_dialog>> 隐藏对话

美术资源

维修专用

角色与立绘

资源 路径
火山主资源 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.csvhs,火山,Huoshan
Tag HuoshanScreen(波形/粒子渲染层)