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