# 语言粒子系统效果总结 ## 核心功能 ### 1. 粒子系统 - **背景浮动文字**(100个):半透明、缓慢移动、定期随机变换字符 - **可交互候选粒子**(50个): - 蓝色粒子:普通粒子 - 红色粒子:目标粒子(8个,需要连接) - 橙色粒子:被红色粒子"感染"的蓝色粒子 ### 2. 粒子行为 - 边界反弹 - 相互排斥(避免重叠) - 字符定期随机变化(中文字符集) - 可选词组模式(相邻粒子组成词组) ### 3. 连接系统 - 距离小于200像素的粒子之间绘制连线 - 蓝色粒子间:细蓝线 - 红色粒子间:粗红线 ### 4. 交互效果 - **涟漪效果**(右键):吸引附近粒子 - **排斥爆发**(左键):推开附近粒子 - 粒子受力后产生速度变化 ### 5. 效果传播系统 - 当红色粒子与蓝色粒子新建立连接时: - 蓝色粒子变橙色 - 橙色粒子字符变化加速(3倍速) - 橙色粒子产生振动效果 - 橙色粒子有光晕和缩放动画 - 效果可以链式传播(橙色粒子连接新的蓝色粒子) - 最多传播8步 - 传播时绘制连接线、脉冲光点、箭头 ### 6. 游戏目标与完成序列 **目标**:让所有红色粒子连接成一个整体,且与蓝色粒子分离 **完成序列**: 1. **arranging阶段**: - 红色粒子排列成水平一行(屏幕中央) - 蓝色/橙色粒子停止移动 - 非红色粒子淡出 2. **revealing阶段**: - 红色粒子逐个显示目标文字:"别过来我感觉害怕" - 显示前快速闪烁随机字符 - 文字开始剧烈抖动(焦虑效果) 3. **completed阶段**: - 进入波形交互阶段 ### 7. 波形交互系统(核心创新) **初始状态**: - 每个文字下方有一个对应的波形点 - 波形使用Perlin噪声生成(多层噪声叠加) - 波形呈现异常、混乱的抖动 - 文字随波形剧烈抖动+上下漂浮(表现焦虑情绪) **交互机制**: - 玩家按住鼠标左键并拖动,抚平附近的波形 - 波形有"抵抗力"机制: - 异常程度越高,抵抗力越强 - 需要持续按住30-90帧才能完全抚平 - 拖动速度越快,抚平效果越强 - 抚平区域有交互半径(50像素) - 显示进度环反馈 **抚平效果**: - 波形从异常噪波逐渐变为规律的正弦波 - 波形颜色从红色渐变为蓝色 - 对应文字的抖动和漂浮逐渐减弱 - 波形完全抚平后: - 文字停止变化和抖动 - 文字开始消散(透明度降低) - 波形点也随之消散 **视觉反馈**: - 抚平时产生蓝色粒子效果 - 鼠标周围显示交互范围圈 - 波形点显示抚平进度环 - 底部显示整体平静进度条 **情感隐喻**: - 异常波形 = 焦虑、不安的情绪 - 文字抖动 = 情绪的外在表现 - 抚平波形 = 安抚、平复情绪的过程 - 文字消散 = 负面情绪的消解 ### 8. 重置机制 - 所有文字消散后,游戏自动重置 - 粒子重新随机分布 - 重新选择8个红色目标粒子 ## Unity实现要点 ### 技术选型 1. **文字渲染**:TextMeshPro(支持中文) 2. **线条绘制**:Shapes插件 3. **动画**:DOTween 4. **画布**:10x10 World Space Canvas 5. **输入**:Unity Input System或传统Input ### 核心挑战 1. Perlin噪声波形生成与平滑 2. 粒子间连接检测与效果传播 3. 波形交互的抵抗力机制 4. 文字抖动与消散效果 5. 性能优化(大量粒子+连线) ### 建议架构 ``` LanguageParticleManager(主管理器) ├── FloatingTextParticle(背景文字) ├── CandidateParticle(候选粒子) ├── ConnectionRenderer(连线渲染) ├── EffectPropagationSystem(效果传播) ├── WaveformSystem(波形系统) │ ├── WaveformPoint(波形点) │ └── WaveformRenderer(波形渲染) └── InteractionHandler(交互处理) ``` ### 性能优化建议 1. 使用对象池管理粒子和效果 2. 连接检测使用空间分区(如Grid) 3. 波形点数量与文字数量一致(8个) 4. 粒子效果使用Instancing 5. 线条使用批量绘制