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