133 lines
4.1 KiB
Markdown
133 lines
4.1 KiB
Markdown
# 语言粒子系统效果总结
|
||
|
||
## 核心功能
|
||
|
||
### 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. 线条使用批量绘制
|
||
|