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

222 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 镜厅
## 镜厅的本质
正常情况下,游戏每一帧绘制前都会清空屏幕(填充黑色),然后重新绘制所有物件。这保证了上一帧的画面不会残留。
**但是如果不重置呢?**
镜厅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)
### 镜厅 + 设置背景
虽然背景的优先级很靠后,但是实际上背景图片会盖住镜厅效果,只有背景图中透明的部分才能看到镜厅所造成的拖尾。
另外,给背景设置一定的透明度也可以有效降低镜厅产生的目害。
### 镜厅 + 移动房间
虽然背景本身不会受镜厅的影响,但是如果把整个房间缩放和移动,那么房间整体就会在最后方的黑屏上开始堆叠起来。
### 镜厅 + 颜色反转
> 罗老师,别这样。
这么做的后果是屏幕会高频率反色闪烁,非常伤眼。