Project1

标题: 【插件】无缝地图转场,制作宝可梦式地图【版本:1.0.6】 [打印本页]

作者: chyj4747    时间: 2020-6-30 15:55
标题: 【插件】无缝地图转场,制作宝可梦式地图【版本:1.0.6】
本帖最后由 chyj4747 于 2020-8-10 13:34 编辑

之前用的另一个账号发的,那个是我刚来P1时随便乱填的,当时没想发帖,现在改成常用账号了
之前的帖子:https://rpg.blue/thread-480785-1-1.html
此帖内容跟之前的帖子一样,以后版本在这里更新
[line]1[/line]
类似口袋妖怪那种大地图移动,各城市和道路都是分开的小地图,但角色移动时感觉像在一张地图里

上图很明显使用了不同的地图以及图块集,地图1自动事件下雨,地图4自动事件下雪,另外还使用了常规的转场到地图2
[line]1[/line]
也许还会有人问我这个跟日本那个FTKR_ConnectingMapGenerator,用于把N张地图拼成一张的插件,有什么不同,回复请看老帖10楼
[line]1[/line]
首先感谢一下Lanza Schneider大神,帮我解决了同时渲染两张图卡顿的问题

用法什么的写插件帮助里了,这里还是提一下:
一共两个脚本,C47_SeamlessMap.js 和 pixi-tilemap2.js,前者依赖后者,因此pixi-tilemap2.js要放在C47_SeamlessMap.js上面,配置参数应该不需要去动
地图备注的格式:<cmap:方位1 地图ID X Y 方位2 地图ID X Y 方位3...>
比如上面动图中,下方地图1写的是<cmap:u 2 7 0>,上方地图2写的是<cmap:d 1 6 12>
<cmap:u 2 7 0>意思是跟上方(u)地图ID为(2)的地图拼接,地图1用来对准的点是(7,0)
<cmap:d 1 6 12>意思是跟下方(d)地图ID为(1)的地图拼接,地图2用来对准的点是(6,12)
最终效果是地图1的(7,0)会跟地图2的(6,12)黏在一起,其它点就各自对应了
[line]1[/line]
下载
C47_SeamlessMap_v1.0.6.rar (17.84 KB, 下载次数: 438)
注:此插件有个小bug,刚进地图加载时,人物会立刻显示,但地图显示不出来,过了几帧后地图才会显示出来,个人认为这不是什么很严重的问题,并且要修改特别耗时耗力,所以先不修这bug了
另外,本插件的功能只为满足我自己的游戏,没有处理远景图和交通工具,需要这些功能的话你得自己加,要等我更新那起码也得等到我游戏做完,如果到时候还有兴趣弄这个插件的话。。

日志:
v1.0.6 修复bug,移动到相邻地图时会重置动画帧,比如默认左脚右脚走路,切换地图前正好迈出左脚,切换后应该迈出右脚,但因为被重置了,所以仍然迈出左脚
v1.0.5 修复bug,1. 单击地图二之后,角色走到地图二点击的地方后还会继续行走,直到无路可走
                         2. 两侧都有相邻图时,比如右边和下面,角色站在主地图右下角,显示右侧地图,向下走会走到右侧地图的最上方,此问题未修复,仅阻止角色向未显示的地图行走
v1.0.4 修复bug,切换地图后主地图的备注没有解析,导致除本插件之外的备注失效
v1.0.3 修复bug,从主地图进入相邻地图时会报一个错误,虽然不影响使用
v1.0.2 修复bug,从地图退到标题界面再进入地图会崩溃
v1.0.1 修复bug,显示相邻地图的算法有点问题
v1.0.0 初始版本
作者: 白嫩白嫩的    时间: 2020-7-1 02:03
人物立刻显示这个不算什么大问题,因为有时候我发现做转场的时候会出现ui之类插件的瞬间显示,所以针对这个问题,我都是转场之前开一个黑色图片渐出,到新场景后停顿1秒后渐隐,这样转场也显得流畅一些,还能避免突然显示某些元素的问题,总之感谢楼主分享插件,爱您~
作者: chyj4747    时间: 2020-7-1 15:54
又更了一个版本,修了个bug,从主地图进入相邻地图时会报一个错误,嘛……虽然这bug在的时候也不影响使用,完全感知不到,不过bug能少一个是一个
作者: 574656549    时间: 2020-7-2 08:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: chyj4747    时间: 2020-7-2 10:29
574656549 发表于 2020-7-2 08:51
r怎么没有啊,我right都没有r

啥?右边连接没显示出来吗?把你左右两张地图的备注发上来一下?
作者: chyj4747    时间: 2020-7-2 21:06
本帖最后由 chyj4747 于 2020-7-2 21:09 编辑
574656549 发表于 2020-7-2 08:51
r怎么没有啊,我right都没有r


点评不好引用回复啊。。

你地图ID写错了,你的写法是地图3左连地图1,地图4右连地图1
地图3备注:<cmap:l 4 0 4>
地图4备注:<cmap:r 3 7 2>

另外目测你这相邻的点也有问题,你想把地图3的(0, 4)跟地图4的(7, 2)连在一起
作者: drunkloong    时间: 2020-7-29 18:48
很强大的插件,不过交通工具好像不能像事件一样在隔壁地图显示出来
作者: drunkloong    时间: 2020-7-29 19:49
发现了一个小问题,在地图角落的地方,如果主角所在图块邻近的两个方向都链接了地图,比如右边和下边都链接了地图,现在显示的下面的地图,那如果我现在往右走,我会出现在下面的那个地图里
作者: chyj4747    时间: 2020-7-30 08:06
本帖最后由 chyj4747 于 2020-7-30 11:54 编辑
drunkloong 发表于 2020-7-29 19:49
发现了一个小问题,在地图角落的地方,如果主角所在图块邻近的两个方向都链接了地图,比如右边和下边都链接 ...

所以你为啥会让主角能走到角落去?按理就不应该能让主角同时看见多侧的地图,因为毕竟只能显示一个方向的相邻图,我原本的设计中就没考虑过让主角能走到角落这种情况,在我的游戏中也不存在,这是要在地图设计上就避免的问题,不然玩家就能看出地图的连贯性问题

当然你非得要玩家这么走的话,那我只能说抽空修下吧,毕竟对我来说不是个重要bug


bug的原因是直接拿显示出来的地图判断可通行,显示了右侧地图,你向下走,相当于进入了右侧地图的最上方
然而这个bug要修还挺麻烦,因为地图不止是相接,还可能重叠,因此上述例子中的向下走不一定面对的是黑边,还可能真的是右侧地图,当然即便是这种的情况,目测进入右侧地图后的位置依然会出错,总之要修这个bug需要4个方向做额外的计算和判断,短期内肯定是没空修的,我自己游戏都忙不过来。。
作者: chyj4747    时间: 2020-7-30 10:53
更新了
v1.0.4 修复bug,切换地图后主地图的备注没有解析,导致除本插件之外的备注失效
作者: 守望凰华    时间: 2020-7-30 11:33
厉害了资瓷资瓷
作者: drunkloong    时间: 2020-7-30 15:39
20200730-113546325_2.mp4.zip (1.33 MB, 下载次数: 47)


作者: chyj4747    时间: 2020-7-30 16:49
本帖最后由 chyj4747 于 2020-7-30 16:51 编辑
drunkloong 发表于 2020-7-30 15:39


一般来说地图之间都是道路衔接的,道路不会在角落,所以先避免角色能走到角落的情况吧
如果要正常处理角落的情况最佳方案是刷4张地图,但是MV应该效率跟不上,虽然只是凭感觉没测过,而且以目前的实现方案两张地图都很麻烦了
作者: drunkloong    时间: 2020-7-31 22:19
用鼠标移动的时候,如果目标点在地图外的话,比如左右两个地图,站在右边地图点左边的地图,是移动到右边地图的负x坐标的一个点,但是当切换地图以后,这个目标点没有更新,还是负的x坐标,也就是角色会继续往左边地图的左边继续移动,如果再左边还有地图的话,会一直移动,虽然我自己是习惯用键盘和手柄的(mv的鼠标交互实在捉急),不过还是反馈一下
作者: chyj4747    时间: 2020-8-1 22:26
更新 v1.0.5
修复bug,1. 单击地图二之后,角色走到地图二点击的地方后还会继续行走,直到无路可走;2. 两侧都有相邻图时,比如右边和下面,角色站在主地图右下角,显示右侧地图,向下走会走到右侧地图的最上方,此问题未修复,仅阻止角色向未显示的地图行走
作者: chyj4747    时间: 2020-8-1 22:26
drunkloong 发表于 2020-7-31 22:19
用鼠标移动的时候,如果目标点在地图外的话,比如左右两个地图,站在右边地图点左边的地图,是移动到右边地 ...

你前面说的两个问题都修了,看v1.0.5的更新说明
作者: chyj4747    时间: 2020-8-10 13:34
v1.0.6
修复bug,移动到相邻地图时会重置动画帧,比如默认左脚右脚走路,切换地图前正好迈出左脚,切换后应该迈出右脚,但因为被重置了,所以仍然迈出左脚
作者: 猛男粗大黑    时间: 2020-9-24 17:02
大佬有没有MZ版本的?
作者: wxh811211    时间: 2020-9-24 18:40
虽然我是新人,不过这个插件一定要支持。
作者: cqxk    时间: 2020-10-19 08:42
很强大的感觉,虽然我暂时用不到~~~~
作者: a1121751    时间: 2020-12-5 20:49
大佬你好,请问一下一个地图能在同一个方向链接不同的地图吗?
作者: chyj4747    时间: 2020-12-5 21:50
a1121751 发表于 2020-12-5 20:49
大佬你好,请问一下一个地图能在同一个方向链接不同的地图吗?

不行,一张地图最多连4张地图,各个方向各一张

但是如果同方向上有两张或三张地图可以用其它方向代替
比如你的地图A往下走有3条路,分别是下、左下、右下,那么左下和右下可以用“左”和“右”代替“下”来连接,只不过左右的连接点一定在左右侧,而不是上下侧,这个要注意
所以设计地图的时候要多想想细节处理,比如本来是向下然后向左形成左下,现在得把向下走这部分从地图A移到其左下连接地图上,即对于地图A来说,左下就变成纯左边了

另外同方向上有多个地图时,由于同时只能显示两张地图,所以角落里可能会有黑边,画地图时要注意,你游戏窗口或者分辨率越大,地图要填充的部分就越多
作者: 1553866533    时间: 2021-1-3 12:32
那是不是,只要我在屏幕层周围一圈用图片、动画显示 黑夜、迷雾效果,把黑边遮住,就不存在黑边了,比如那种黑夜里打灯,只能看到人物周围的那种。
或者,在屏幕四条边上贴上界面,什么状态栏、生命条啊什么的,只要黑边看不到,那就不存在黑边
作者: chyj4747    时间: 2021-1-4 11:36
1553866533 发表于 2021-1-3 12:32
那是不是,只要我在屏幕层周围一圈用图片、动画显示 黑夜、迷雾效果,把黑边遮住,就不存在黑边了,比如那 ...

不是你这么理解的,首先这种地图,镜头肯定是跟随角色的,角色始终处于中心,所以如果能走到地图边界的话,相当于当前地图边界就会在屏幕的中心位置,如果边界的另一边没有地图,那么就会有一半的屏幕是黑色
作者: 1553866533    时间: 2021-1-4 19:13
chyj4747 发表于 2021-1-4 11:36
不是你这么理解的,首先这种地图,镜头肯定是跟随角色的,角色始终处于中心,所以如果能走到地图边界的话 ...

对哦,如果站在地图边角上的话,就得有半个界面的黑边了
作者: 1553866533    时间: 2021-1-4 21:07
等一下,如果滚动地图呢。比如我往左走,快到此地图边界的时候,地图会向右移动,那我滚动地图向左,保持黑边在显示框之外,是不是能避免黑边的出现。不过这样的话,主角就像是走到地图边界一样,可能会误导,或者与你的程序冲突,没试过,不知道具体效果怎么样
作者: chyj4747    时间: 2021-1-5 08:45
1553866533 发表于 2021-1-4 21:07
等一下,如果滚动地图呢。比如我往左走,快到此地图边界的时候,地图会向右移动,那我滚动地图向左,保持黑 ...

较好的方式还是地图设计的时候不让玩家走到边界,也就是多画半个屏幕的地图,可以弄简单点,比如树、山啥的,至于你说的滚动,大概会跟镜头跟随冲突
作者: rog123    时间: 2025-6-1 01:06
感覺能用上先下載再說 感謝大大提供分享




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1