Files
rd.rdlevel.cn/pages/hallofmirror.md
T
2026-06-06 11:52:01 +08:00

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% 亮度保留)
在元素移动时,原来留下的影子会逐渐被黑色覆盖,形成拖影的效果。
![](../images/hallofmirror-trail.gif)
![在医院走廊奔跑的科尔](../images/hallofmirror-runningcole.gif)
#### 晕影特效
添加预设特效"晕影"或"闪烁晕影"
晕影会从边缘向中心逐渐覆盖,产生柔和的拖影抑制
![蓝色高光 + 晕影](../images/hallofmirror-bluehighlight.gif)
### 位移扭曲
除了亮度衰减,还可以让历史画面发生位移,产生流动感。
---
#### 基础位移效果
在镜厅基础上添加屏幕滚动:x = 1, y = 1
配合 20% 透明度黑色背景
元素朝左上方向流动的同时会一直复制画面本身叠印起来。
![x=1,y=1 的屏幕滚动 + 20 透明度的黑色背景](../images/hallofmirror-trailrepeat.gif)
![0% 强度海底波浪 + 20 透明度的黑色背景](../images/hallofmirror-wavetrail.gif)
#### 屏幕分隔扭曲
添加屏幕分隔特效:x = 2, y = 2
画面被划分为 2×2 的块,同时会叠上原来的画面。
![2x2 屏幕分隔 + 晕影](../images/hallofmirror-screenblock.gif)
### 区域控制
镜厅是全屏效果,但有时你只想部分区域有拖影,或者需要保护某些区域不被拖影污染。
---
#### 反色遮罩
镜厅 + 反色(HOMVERT)会产生高频闪烁,极其伤眼,**禁止直接使用**。
通常使用镜厅 + 反色 + 20% 透明度黑色背景的组合。
黑色背景作为遮罩层,可以降低反色区域的对比度,消除闪烁
> 护士语音自带的灯光是反色区域,使用镜厅时需注意,或用音效代替语音避免灯光。
![镜厅 + 反色 + 20 透明度背景的效果](../images/hallofmirror-homvert.gif)
#### 背景遮罩
直接使用背景 + 镜厅无效果(背景完全覆盖,没有透明区域供镜厅显示)。
设置背景为半透明(如 50% 透明度),镜厅效果只在背景的透明部分显示
> 如果图片本身有透明通道(如 PNG),镜厅会自动只在透明区域产生拖影。
![镜厅的效果附在了每个方块后面](../images/hallofmirror-trailblock.gif)
### 房间控制
预设特效中的镜厅有两个作用域:
- 四个房间:仅影响关卡内的游戏区域
- 顶部:影响整个屏幕,包括 UI 和边框
#### 顶部镜厅
##### 边框绘制
使用顶部镜厅 + 特定物件移动
拖影会在屏幕边缘形成 "画框" 效果
![用顶部镜厅来画边框](../images/hallofmirror-danmaku.gif)
##### 万花筒
顶部镜厅 + 旋转 / 缩放房间
整个画面产生对称的镜像拖影
![](../images/hallofmirror-kaleidoscope.gif)
#### 房间透明化
直接使用主题 + 镜厅无效果(主题背景不透明)。
设置主题后,在 0.0001 拍时添加其他特效(避免与主题自动设置冲突)
设置透明背景 + 顶部镜厅
或者将主题放在单独房间,将该房间设为半透明,轨道物件叠加在上方
![](../images/hallofmirror-trailinroom.gif)
## 组合
镜厅不是单独使用的特效,而是基础层。真正丰富的效果来自组合。
### 控制维度
维度 | 特效示例 | 作用
---- | -------------------- | -----------------
衰减 | 黑色背景透明度、晕影 | 控制拖尾长度
位移 | 滚屏、海底波浪 | 让拖影流动 / 扭曲
颜色 | 高光、反色、VHS | 改变拖影色彩
遮罩 | 背景透明度、屏幕分隔 | 限制镜厅作用区域
### 经典组合参考
- 拖尾基础:镜厅 + 20% 黑色背景 + 晕影
- 流动拖尾:镜厅 + 海底波浪 (0% 强度) + 20% 黑色背景
- 方块拖影:镜厅 + 屏幕分隔 (2×2) + 晕影
- 蓝色光晕:镜厅 + 蓝色高光 + 晕影
- 复古故障:镜厅 + VHS + 电影噪点
- 雨夜效果:镜厅 + 落雨 (负数强度) + 高光 (负数强度)
### 透明化特例
某些特效会让背景在镜厅下保持透明:
![镜厅 + 负数强度的落雨](../images/hallofmirror-homandrain.gif)
![镜厅 + 负数强度的高光](../images/hallofmirrorhomandhighlight.gif)
![镜厅 + VHS](../images/hallofmirror-hmandvhs.gif)
![镜厅 + 电影噪点](../images/hallofmirror-homandnoise.gif)
某些特效会强制背景不透明:
![镜厅 + 暴风雪(同时有 VHS 效果但并没有透明)](../images/hallofmirror-homandsnowstorm.gif)
![镜厅 + 素描(同时有 VHS 效果但并没有透明)](../images/hallofmirror-homandpaint.gif)
## 一些陈旧的示例
### 镜厅 + 悬浮物
添加诸如矩阵,落雪,落花等不断漂浮移动的特效,它们都会拖出长长的一条轨迹出来,直到屏幕被占满。
![落雪 + 矩阵 + 落花](../images/hallofmirror-homandfloatingthings.gif)
### 镜厅 + 落雨
落雨效果的雨滴是高密度向左下滴落的,如果加上镜厅,雨点会很快将屏幕涂满白色,此时再有其他的物件在屏幕上,也会拖挂一个朝向左下角的尾巴。但是其他物件不会再屏幕上拖尾太长,因为它们马上又会被带镜厅的雨滴给覆盖掉。
![落雨 + 矩阵 + 落花](../images/hallofmirror-homandrainflowersquare.gif)
### 镜厅 + 彩色冲击波
冲击波会在镜厅的影响下变成彩色条带,而且还会随着按拍的次数叠加。
![彩 色 冲 击 波](../images/hallofmirror-shockwave.gif)
### 镜厅 + JPEG失真
画面割裂开并持续向左滚动。
![你 屏 坏 了](../images/hallofmirror-glich.gif)
### 镜厅 + 海底波浪
这种屏幕扭动类的会逐渐变得更加扭曲。
![扭 曲 树 精](../images/hallofmirror-wave.gif)
![影 流 之 主](../images/hallofmirror-waverepeat.gif)
### 镜厅 + 滚屏
直接崩坏。
![巨 硬 报 错](../images/hallofmirror-repeattttttttttt.gif)
### 镜厅 + 屏幕分隔
这个需要配合晕影使用,不然也会直接崩坏。
![千 人 一 面](../images/hallofmirror-screenblock2.gif)
要注意屏幕分隔是可以填写小数的,例如填写`x = 1.05, y = 1`,自定义闪烁透明度`15%~0%`
![](../images/hallofmirror-rush.png)
### 镜厅 + 高光
火光冲天。
![核 反 应 堆](../images/hallofmirror-explode.gif)
但是如果叠加上屏幕滚动和晕影就会出现奇效。
![超 电 磁 炮](../images/hallofmirror-gun.gif)
### 镜厅 + 晕影
晕影效果可以大幅度地减弱镜厅的拖尾,让画面拖动变得柔和很多。
![](../images/hallofmirror-square.gif)
### 镜厅 + 闪烁
添加屏幕闪烁可以把屏幕上所有的滞留画面都暂时清除干净,但如果不关掉镜厅本身,接下来很快屏幕还是会被镜厅填满。但要注意,在自定义闪烁中设置的结束时的颜色,会余留在屏幕背景上。
![分别添加绿,蓝,红,紫的闪烁](../images/hallofmirror-flash.gif)
### 镜厅 + 设置背景
虽然背景的优先级很靠后,但是实际上背景图片会盖住镜厅效果,只有背景图中透明的部分才能看到镜厅所造成的拖尾。
另外,给背景设置一定的透明度也可以有效降低镜厅产生的目害。
### 镜厅 + 移动房间
虽然背景本身不会受镜厅的影响,但是如果把整个房间缩放和移动,那么房间整体就会在最后方的黑屏上开始堆叠起来。
### 镜厅 + 颜色反转
> 罗老师,别这样。
这么做的后果是屏幕会高频率反色闪烁,非常伤眼。