222 lines
8.7 KiB
Markdown
222 lines
8.7 KiB
Markdown
# 镜厅
|
||
|
||
## 镜厅的本质
|
||
正常情况下,游戏每一帧绘制前都会清空屏幕(填充黑色),然后重新绘制所有物件。这保证了上一帧的画面不会残留。
|
||
**但是如果不重置呢?**
|
||
镜厅(Hall of Mirror) 就是关闭这个清空操作。上一帧的画面保留在屏幕上,新画面直接叠加在上面。
|
||
|
||
你可以尝试:
|
||
- 添加一个会移动的轨道或精灵(如一个向右匀速移动的豆子盒)
|
||
- 在预设特效中添加"镜厅"
|
||
- 播放关卡
|
||
你会发现,方块不再是一个清晰的个体,而是一条向右延伸的 "尾巴"。
|
||
这是每一帧的方块叠加在一起形成的拖影。
|
||
> 镜厅在 "主题设置" 和 "预设特效" 中都有,但请使用预设特效版本。主题设置是全局开关且难以与其他特效组合,预设特效可以灵活控制。
|
||
|
||
如果不加控制,每一帧都叠加新画面,屏幕很快会被完全填满。我们需要一种机制让旧的画面逐渐淡出。
|
||
|
||
## 抑制方法
|
||
|
||
### 亮度衰减
|
||
|
||
假设一个亮度为 100 的像素每帧向右移动 1 像素,且每帧绘制前整个画面亮度衰减为原来的 50%:
|
||
|
||
| 帧 | 亮度 ||||
|
||
|-|-:|-:|-:|-:|
|
||
|1|100|
|
||
|2|50|100|
|
||
|3|25|50|100|
|
||
|4|12.5|25|50|100|
|
||
|
||
衰减率决定拖尾长度。
|
||
节奏医生没有直接的 "衰减率" 参数,但可以通过以下方式模拟:
|
||
|
||
#### 半透明黑色背景覆盖
|
||
添加一个黑色背景板
|
||
设置透明度为 20%(即每帧覆盖 20% 不透明黑色,相当于 80% 亮度保留)
|
||
在元素移动时,原来留下的影子会逐渐被黑色覆盖,形成拖影的效果。
|
||

|
||

|
||
|
||
#### 晕影特效
|
||
添加预设特效"晕影"或"闪烁晕影"
|
||
晕影会从边缘向中心逐渐覆盖,产生柔和的拖影抑制
|
||

|
||
|
||
### 位移扭曲
|
||
除了亮度衰减,还可以让历史画面发生位移,产生流动感。
|
||
|
||
---
|
||
|
||
#### 基础位移效果
|
||
在镜厅基础上添加屏幕滚动:x = 1, y = 1
|
||
配合 20% 透明度黑色背景
|
||
元素朝左上方向流动的同时会一直复制画面本身叠印起来。
|
||

|
||

|
||
|
||
#### 屏幕分隔扭曲
|
||
添加屏幕分隔特效:x = 2, y = 2
|
||
画面被划分为 2×2 的块,同时会叠上原来的画面。
|
||

|
||
|
||
### 区域控制
|
||
镜厅是全屏效果,但有时你只想部分区域有拖影,或者需要保护某些区域不被拖影污染。
|
||
|
||
---
|
||
|
||
#### 反色遮罩
|
||
镜厅 + 反色(HOMVERT)会产生高频闪烁,极其伤眼,**禁止直接使用**。
|
||
通常使用镜厅 + 反色 + 20% 透明度黑色背景的组合。
|
||
黑色背景作为遮罩层,可以降低反色区域的对比度,消除闪烁
|
||
> 护士语音自带的灯光是反色区域,使用镜厅时需注意,或用音效代替语音避免灯光。
|
||
|
||

|
||
|
||
#### 背景遮罩
|
||
直接使用背景 + 镜厅无效果(背景完全覆盖,没有透明区域供镜厅显示)。
|
||
设置背景为半透明(如 50% 透明度),镜厅效果只在背景的透明部分显示
|
||
> 如果图片本身有透明通道(如 PNG),镜厅会自动只在透明区域产生拖影。
|
||
|
||

|
||
|
||
### 房间控制
|
||
预设特效中的镜厅有两个作用域:
|
||
- 四个房间:仅影响关卡内的游戏区域
|
||
- 顶部:影响整个屏幕,包括 UI 和边框
|
||
|
||
#### 顶部镜厅
|
||
##### 边框绘制
|
||
使用顶部镜厅 + 特定物件移动
|
||
拖影会在屏幕边缘形成 "画框" 效果
|
||

|
||
|
||
##### 万花筒
|
||
顶部镜厅 + 旋转 / 缩放房间
|
||
整个画面产生对称的镜像拖影
|
||

|
||
|
||
#### 房间透明化
|
||
直接使用主题 + 镜厅无效果(主题背景不透明)。
|
||
设置主题后,在 0.0001 拍时添加其他特效(避免与主题自动设置冲突)
|
||
设置透明背景 + 顶部镜厅
|
||
或者将主题放在单独房间,将该房间设为半透明,轨道物件叠加在上方
|
||
|
||

|
||
|
||
## 组合
|
||
镜厅不是单独使用的特效,而是基础层。真正丰富的效果来自组合。
|
||
|
||
### 控制维度
|
||
|
||
维度 | 特效示例 | 作用
|
||
---- | -------------------- | -----------------
|
||
衰减 | 黑色背景透明度、晕影 | 控制拖尾长度
|
||
位移 | 滚屏、海底波浪 | 让拖影流动 / 扭曲
|
||
颜色 | 高光、反色、VHS | 改变拖影色彩
|
||
遮罩 | 背景透明度、屏幕分隔 | 限制镜厅作用区域
|
||
|
||
### 经典组合参考
|
||
- 拖尾基础:镜厅 + 20% 黑色背景 + 晕影
|
||
- 流动拖尾:镜厅 + 海底波浪 (0% 强度) + 20% 黑色背景
|
||
- 方块拖影:镜厅 + 屏幕分隔 (2×2) + 晕影
|
||
- 蓝色光晕:镜厅 + 蓝色高光 + 晕影
|
||
- 复古故障:镜厅 + VHS + 电影噪点
|
||
- 雨夜效果:镜厅 + 落雨 (负数强度) + 高光 (负数强度)
|
||
### 透明化特例
|
||
某些特效会让背景在镜厅下保持透明:
|
||

|
||

|
||

|
||

|
||
|
||
某些特效会强制背景不透明:
|
||

|
||

|
||
|
||
## 一些陈旧的示例
|
||
|
||
### 镜厅 + 悬浮物
|
||
|
||
添加诸如矩阵,落雪,落花等不断漂浮移动的特效,它们都会拖出长长的一条轨迹出来,直到屏幕被占满。
|
||
|
||

|
||
|
||
### 镜厅 + 落雨
|
||
|
||
落雨效果的雨滴是高密度向左下滴落的,如果加上镜厅,雨点会很快将屏幕涂满白色,此时再有其他的物件在屏幕上,也会拖挂一个朝向左下角的尾巴。但是其他物件不会再屏幕上拖尾太长,因为它们马上又会被带镜厅的雨滴给覆盖掉。
|
||
|
||

|
||
|
||
### 镜厅 + 彩色冲击波
|
||
|
||
冲击波会在镜厅的影响下变成彩色条带,而且还会随着按拍的次数叠加。
|
||
|
||

|
||
|
||
### 镜厅 + JPEG失真
|
||
|
||
画面割裂开并持续向左滚动。
|
||
|
||

|
||
|
||
### 镜厅 + 海底波浪
|
||
|
||
这种屏幕扭动类的会逐渐变得更加扭曲。
|
||
|
||

|
||

|
||
|
||
### 镜厅 + 滚屏
|
||
|
||
直接崩坏。
|
||
|
||

|
||
|
||
### 镜厅 + 屏幕分隔
|
||
|
||
这个需要配合晕影使用,不然也会直接崩坏。
|
||
|
||

|
||
|
||
要注意屏幕分隔是可以填写小数的,例如填写`x = 1.05, y = 1`,自定义闪烁透明度`15%~0%`。
|
||
|
||

|
||
|
||
### 镜厅 + 高光
|
||
|
||
火光冲天。
|
||
|
||

|
||
|
||
但是如果叠加上屏幕滚动和晕影就会出现奇效。
|
||
|
||

|
||
|
||
### 镜厅 + 晕影
|
||
|
||
晕影效果可以大幅度地减弱镜厅的拖尾,让画面拖动变得柔和很多。
|
||
|
||

|
||
|
||
### 镜厅 + 闪烁
|
||
|
||
添加屏幕闪烁可以把屏幕上所有的滞留画面都暂时清除干净,但如果不关掉镜厅本身,接下来很快屏幕还是会被镜厅填满。但要注意,在自定义闪烁中设置的结束时的颜色,会余留在屏幕背景上。
|
||
|
||

|
||
|
||
### 镜厅 + 设置背景
|
||
|
||
虽然背景的优先级很靠后,但是实际上背景图片会盖住镜厅效果,只有背景图中透明的部分才能看到镜厅所造成的拖尾。
|
||
|
||
另外,给背景设置一定的透明度也可以有效降低镜厅产生的目害。
|
||
|
||
### 镜厅 + 移动房间
|
||
|
||
虽然背景本身不会受镜厅的影响,但是如果把整个房间缩放和移动,那么房间整体就会在最后方的黑屏上开始堆叠起来。
|
||
|
||
### 镜厅 + 颜色反转
|
||
|
||
> 罗老师,别这样。
|
||
|
||
这么做的后果是屏幕会高频率反色闪烁,非常伤眼。 |