关于镜像与镜面
相关插件
主要插件如下:
◆Drill_LayerReverseReflection 行走图 - 图块倒影镜像
◆Drill_LayerSynchronizedReflection 行走图 - 图块同步镜像
通过该插件,你可以将地图中的玩家、玩家队员、事件都反射出来。
可以去示例中的 镜像管理层 看看效果。
快速区分
镜面: 指能反射出镜像的表面。
镜像: 指镜面反射出的形象。
由于地图中的地板大部分是完全光滑镜面,所以你很可能会忽视镜面的存在。
名词索引
以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:
基本结构 | 镜像 镜面 不反射镜像 透明同步 毛玻璃效果 |
图块倒影镜像 | 倒影镜像 |
图块同步镜像 | 同步镜像 镜像边 等距同步 单行同步 |
其他 | 性能消耗 |
游戏硬性机制
图块倒影镜像
高度反射:
倒影镜像可以反射跳跃高度、花盆高度。
行走图支持:
倒影镜像可以适应 多帧行走图、GIF动画序列,并反射出一致的倒影图像。
新事件镜像:
新复制的事件(炸弹)也能拥有镜像,且默认镜像为开启状态。
支持地图循环边界:
倒影镜像在经过地图循环边界时,能正常反射镜像。
(旧插件的镜像消失bug已在插件v1.9中被修复)
不支持行走图滤镜:
镜像不能反射行走图的滤镜效果。
镜子里的事件:
你可以通过插件指令,设置 事件透明 但是 镜像不透明,看起来像在镜子中一样。
(可见 透明同步 )
毛玻璃效果:
倒影镜像可以开启毛玻璃效果,使得反射的镜像变模糊。
图块同步镜像
镜像边:
同步镜像必须指定地图中的一条反射边。
朝向对称:
朝向镜面时(朝向上或下),反射的行走图朝向是相反的。
(部分静态的物体,其朝向反射后并不会变,需要用 锁定朝向 的功能,防止镜像反射不一致。)
遮挡对称:
镜像的遮挡关系与原行走图 相反。
(这个细节太难发现了,2.0版本的插件才修复)
高度反射:
同步镜像可以反射跳跃高度、花盆高度。
新事件镜像:
新复制的事件(炸弹)也能拥有镜像,且默认镜像为开启状态。
不支持行走图滤镜:
镜像不能反射行走图的滤镜效果。
镜子里的事件:
你可以通过插件指令,设置 事件透明 但是 镜像不透明,看起来像在镜子中一样。
(可见 透明同步 )
毛玻璃效果:
同步镜像可以开启毛玻璃效果,使得反射的镜像变模糊。
镜像
定义
1)基本定义
镜像: 指镜面反射出的行走图形象。
倒影镜像: 指镜面在行走图脚下反射出的倒影。
同步镜像: 指镜面在特定的一条边反射出的垂直对称镜像。
2)同步镜像 与 倒影镜像 组合
两种镜像是可以组合使用的,但是并不会叠加,如下图,同步镜像的脚下没有倒影镜像。
(现实生活中,两个垂直的镜面,能够形成三个镜像。)
镜像开关
1)不反射镜像
不反射镜像 指行走图本体能显示,但是相关的 倒影镜像、同步镜像 不显示。
(可以通过 插件指令 或 事件注释 修改,具体去看插件中的指令。)
如下图,标牌的 倒影镜像 是被关闭的,因为其倒影镜像极其突兀。
2)透明同步
透明同步 指镜像与事件的透明度 始终保持一致 的状态,默认的透明同步是开启的。
注意,“透明同步”与“同步镜像”是两个独立的概念。
你可以关闭 透明同步,使得 事件自己不可见,但是能反射出镜像。
以此看起来像是在镜子中一样。
注意,你需要先 关闭透明同步,再设置事件 透明度0 或 开启透明状态 。
图块同步镜像特点
1)镜像边
镜像边指 同步镜像 中,反射的边线基准。
必须在地图备注中设置基准,也可以使用插件指令修改。
使用 (图块单位) 设置镜像边时,图中第6个图块的下方为反射的线。
像素单位则为 6*48 = 288像素。
注意,整个地图,只能有一条镜像边。
这意味着,镜子的摆放位置限制比较大,比如: 同步镜像的镜子 。
2)反射模式
等距同步: 根据 镜像边 的垂直距离,对称显示镜像。
单行同步: 根据 镜像边 的Y轴位置,所有显示的镜像都被安排在同一行。
性能消耗
1)高消耗
该插件性能消耗较高,会稍微影响游戏速度。
因为设置后,所有事件具有两个的图像,一个标准行走图,一个镜像。
由于镜像的相当于行走图翻倍,显现动作效果等行走图相关插件 的消耗也因此提高了。
2)关闭全部镜像
未开镜像的地图中,镜像是不工作的,所以不会对游戏造成额外消耗。
由于示例中全程开 倒影镜像,消耗占100ms左右,所以显得插件消耗特别高。
而一般的游戏中,你只要留意在特定的地图中才开镜像(通过地图备注开启/关闭镜像),就能比较完美地避免大部分不必要的消耗。
镜面
定义
1)基本定义
镜面: 指能显示反射镜像的表面。
也可以反着理解,地图中未遮挡住镜像的表面部分。
(因为镜像不可见,并不代表镜像不存在。)
2)毛玻璃效果
倒影镜像和同步镜像,可以分别控制毛玻璃效果开关。
毛玻璃本质上是在镜像的基础上额外添加一层模糊滤镜。所以毛玻璃效果会额外造成性能消耗。
如果开了镜像的地图已经很卡了,建议关闭毛玻璃效果,减少系统计算负担。
配置镜面(图块)
1)标记绑定
镜面的基本设置有下面两种,设置图块标记和设置区域标记。
镜像设置中用的图块R区域比较多,你需要用表格分类,不要与其他区域用重了,去看看“关于插件与图块R占用说明.xlsx”。
图块标记对应图块的地形标志,如果标志对应上了,这个地形将会成为镜面。
区域标记对应区域的标记信息,如果区域对应上了,这个区域将会成为镜面。
2)地图绘制
确定图块后,在地图上画图块,即可完成镜面。(下图为同步镜面的设置)
3)图块镜面局限性
示例的图块非常鲜明,都是 正方形 图块。细节不多。
所以看起来镜面很容易做。
然而,比较复杂的场景镜像,用图块画就很突兀了。(陆地部分也反射出了图像。)
同步镜像也存在此问题:(只要一小块镜面的反射,却整个图块都反射了。)
解决方法也是有的,用新图块盖住,比如:设计河流倒影 。
配置镜面(自定义资源)
1)自定义镜面资源
整张地图的镜面可以直接自定义绘制,并配置到相应的地图中。
(资源路径在:/img/Map__reflection)
镜面中,白色 是镜面的反射面,黑色和透明 都为镜面的遮挡面。
需要注意的是,镜面的尺寸,必须与地图的尺寸一致。
比如地图为 20x15 的图块大小,那么你就必须配置足够大的像素图片:
图片宽 20 x 48 = 960像素
图片高 15 x 48 = 720像素
具体设计方法,可以去看看:设计墙镜 。
2)相关扩展
你如果对镜面的模糊程度、形状等有更高的要求,可以直接画一张非常大的遮罩图,用于整个地图的镜面反射深度情况,原理与“如何制作优秀的光影效果”相似。
(关于如何画阴影,这个帖子有详细介绍哦!)
https://rpg.blue/forum.php?mod=viewthread&tid=388527&extra=page%3D1%26filter%3Dtypeid%26typeid%3D483
从零开始设计(DIY)
设计河流倒影
1. 设置一个目标
这里准备绘制一个河流的倒影。
按照简单的图块倒影方法可以配置镜面,见:配置镜面(图块)。
但是,由于示例的图块非常鲜明,都是 正方形 图块。细节不多。
而真实要画河流倒影时,那么情况就比较复杂了。
2. 图块绘制镜面
在考虑更多细节前,先把图块镜面画上。
铺上区域。
陆地部分也反射出了图像,这里本不应该出现图像。
3. 绘制遮挡图块
这个时候,可以用ps将地形截取成图块,使用处在上层的图块来遮挡阴影。
铺上之后就,看不出任何痕迹。而实际上,已经起到遮挡阴影的效果了。
除了倒影镜像,同步镜像也可以通过这个方式,绘制镜子。
设计墙镜
1. 设置一个目标
这里准备绘制一个墙镜的同步镜像。
使用前面的设计方法 设计河流倒影 可以实现,但这里介绍另一个画镜面的方法。
2. 自定义镜面资源
下图的地图中,有两个镜子,图块宽21,高18。
经过计算,需要配一个自定义镜面:
图片宽度 21 x 48 = 1008像素
图片高度 18 x 48 = 864像素
在ps中,建立一个 1008 x 864 的图片。
去掉图片的背景,并把 ps中的网格线(紫红色的网格,48像素)打开。
查看游戏编辑器中,右下角的图块位置标记。
先将背景涂黑,再将两个图块涂白。
(不涂黑也可以,这里只是演示方便)
存储文件,放到 /img/Map__reflection 文件夹下。
在插件中,配置镜面。
然后在地图中,添加地图备注:
=>图块同步镜像:启用
=>图块同步镜像:同步镜像边(图块单位):13
=>图块同步镜面:镜面[1]
注意,地图备注里面“图块同步镜像”和“图块同步镜面”,仔细核对备注指令,不要把文字搞混淆了。
备注设置后,可以看到图中的镜像成功反射了。
3. 镜面资源修正
现在镜面可以完全自定义了,只需要改镜面图片的黑白即可。
将图块中的镜子打开,涂黑周围圈。
设置半透明,然后设置画笔,“清除”模式,黑边。
只留镜子的反射面,其他的全部涂黑。
然后把这个画好的黑框放到 镜面 中,保存。
在游戏中测试,可以正常看到反射出来的镜子效果了。
通过自定义镜面这种方式,可以画很多东西的镜面,比如:地面的积水、寒冰地面、巨大的玻璃镜子、汽车的反射镜子等。
4. 同步镜像的镜像边
这里有一个比较麻烦的地方:** 每个地图的镜像边只有一条**。
如果你的镜子是这样设计的,那么你必须在经过中间位置时,立即修改地图的镜像边,确保上面和下面的镜子都能反射出正常的同步镜像。
常见问题(FAQ)
如何保证一体化事件的镜面反射
问题名称 | 如何保证一体化事件的镜面反射 |
问题图示 | ![]() ![]() |
问题描述 |
|
原理解析 | 此问题与你的事件设计方式有关。> 如果你设计的一体化事件是平躺在图块上,那么最好直接关闭倒影反射。7.行走图 > 关于行走图与图块.docx ”。![]() |
解决方案 | 设置不反射镜像。或者改成单独的大行走图。 |