Project1

标题: 求实现星露谷物语那样NPC自由行动的方法 [打印本页]

作者: 正在放风筝    时间: 2019-5-6 22:02
标题: 求实现星露谷物语那样NPC自由行动的方法
问题包括玩家不在时NPC跨地图移动,玩家切换地图NPC位置怎么不重置等等……
苦恼了半天了
最后想出了一个办法,就是把之前画好的地图拼成一个大地图,然后设置事件的自主移动
但是这样拼合成的地图不会太大了么?
而且进入室内怎么办?
所以我又想,可不可以设置多个图层,进入室内时显示室内那张图层,而其他的图层关闭……?
但是这样的话玩家倒好办,NPC进入室内后,室外的图层中是不会显示的吧
如果不是《牧场物语:橙色季节》也用的MV,我都绝望了

请问,大佬们有没有什么办法实现牧场物语,星露谷物语那样按规律走路的NPC?

作者: 中华国哥    时间: 2019-5-7 09:29
这个以前有人订制过这种插件,确实也可以实现你的要求,但是插件作者开价要3000RMB呦,还是自己事件写吧,根据时间系统自己做一套NPC的行动,早上8点会出门,晚上8点会回家就好了,出地图进房间的就在其他地图写咯。
作者: guoxiaomi    时间: 2019-5-7 11:27
实际上问题的难度不在于如何记录、还原NPC的位置。而是你需要有一个合理的NPC行动模型,比如上午几点大概出现在XX地点,接下来应该移动到XX地点……不同职业的人一天是怎么度过的呢……这个需要丰富的生活经历才行……
作者: 正在放风筝    时间: 2019-5-7 18:29
中华国哥 发表于 2019-5-7 09:29
这个以前有人订制过这种插件,确实也可以实现你的要求,但是插件作者开价要3000RMB呦,还是自己事件写吧, ...

3000的话就算了,我打算做免费的同人游戏,纯为爱发电,如果花3000买这个也太划不来了……
我原先也想过用公共事件条件判定8点出门,九点到学校等等,可是如果玩家一直和NPC对话,导致NPC九点到不了学校,那玩家就可能看见两个相同的NPC,所以我就把公共事件改掉了,改成多米诺骨牌式开关了
作者: 正在放风筝    时间: 2019-5-7 18:30
guoxiaomi 发表于 2019-5-7 11:27
实际上问题的难度不在于如何记录、还原NPC的位置。而是你需要有一个合理的NPC行动模型,比如上午几点大概出 ...

因为我做的是同人游戏嘛,所以NPC的行动模型大概都可以脑补出来
作者: 正在放风筝    时间: 2019-5-7 18:35
刚刚我又想到了一个构思
把所有的地图都拼到一张地图上,就没有现在遇到的麻烦了
但新的问题是哪怕玩家在同张地图上场所移动,NPC事件的位置也会重置
我在想能不能通过指令改变玩家的坐标代替场所移动
作者: 芯☆淡茹水    时间: 2019-5-7 18:51
全 npc 随时自由行动,按照MV这个模板,估计实现太难。
确切的说,不是难 ,而是MV这个系统能不能运行得了的问题。
默认地图是只读取当前地图数据,转换地图时再对应读取转换的地图。
非本地图的NPC活动,需要一开始就读取全部游戏地图,读取全部地图占用的内存嘛~,就看你游戏有多少地图。
还有每张地图事件都刷新,就单张地图而言,事件一多,配置不太好的电脑都开始卡,何况是全部游戏地图。
作者: 正在放风筝    时间: 2019-5-8 14:55
芯☆淡茹水 发表于 2019-5-7 18:51
全 npc 随时自由行动,按照MV这个模板,估计实现太难。
确切的说,不是难 ,而是MV这个系统能不能运行得了 ...

嗯嗯,谢谢大佬认真回复我
我想问一下,如果我把所有的地图都拼在一张上呢?包括室内室外的都拼在一张上
然后造成一种玩家跨地图的假象
我就是担心mv能容纳的下多大的地图?
还有个问题,事件的坐标改变可以由脚本来
但是玩家的坐标改变是不是只能用‘场景转换’来?
场景转换的话哪怕是同地图转换也要重新读取数据,这个有点不好办……

作者: 正在放风筝    时间: 2019-5-8 15:36
芯☆淡茹水 发表于 2019-5-7 18:51
全 npc 随时自由行动,按照MV这个模板,估计实现太难。
确切的说,不是难 ,而是MV这个系统能不能运行得了 ...

刚刚搜记忆事件位置的脚本居然搜到了大佬的
然后我按照我的思路把两张地图拼起来,已经实现了NPC看起来在自由行动那样
只是不知道把所有的地图所有的事件放一起去会不会出问题
我大概移动的NPC有不到三十个,用到的地图都很小,但是几十张的话拼在一起估计也很大了
可能到时候会很卡……
还有就是现在的地图边缘会出现很大个的黑边,可能还要用到调整游戏镜头的那个脚本?
作者: 正在放风筝    时间: 2019-5-8 20:51
正在放风筝 发表于 2019-5-8 14:55
嗯嗯,谢谢大佬认真回复我
我想问一下,如果我把所有的地图都拼在一张上呢?包括室内室外的都拼在一张上
...

我刚刚试了一下,因为有图块,室外的地图和室内不能拼到一张去,所以我用了远景图当地图
结果远景图太大读入系统立刻就崩溃了
这条路又堵死了
作者: tseyik    时间: 2019-5-8 22:08
其實你要做的是管理好NPC的出現規侓
作者: lvhantang17    时间: 2019-8-14 11:53
我突然想到个问题   如果做多个一样的npc呢  就比如 某个npc 如果需要跨地图 夸几个图块就做几个一模一样的npc  然后功能属性是一模一样的

在固定时间 固定地点消失  然后另一个图块固定时间固定地点生成这个npc 生成的条件是判断之前的那个消失没有 就给人一种是夸图移动的感觉
作者: 加洛斯L    时间: 2019-9-15 01:34
用并行事件实时记录npc坐标,切换回地图时自动把npc移回当时的位置
作者: RMVXA    时间: 2019-9-15 07:51
一句话,不要做引擎不擅长的东西。
要把现有东西的优点发扬光大才是制作人该做的事情。
作者: sakurashs    时间: 2020-2-29 23:20
正在放风筝 发表于 2019-5-7 18:29
3000的话就算了,我打算做免费的同人游戏,纯为爱发电,如果花3000买这个也太划不来了……
我原先也想过 ...

作为一个小萌新,虽然不知道大佬解决没解决 但我还是想回复一下 因为刚好刷B站的时候看到一个时间插件 可以在对话的时候暂停时间流动  https://www.bilibili.com/video/av82301918?from=search&seid=4340585530682742265  这个是B站链接
作者: Andy_Clone    时间: 2020-3-1 00:13
标题: buguo
本帖最后由 Andy_Clone 于 2020-3-1 00:15 编辑

实现了这个功能(至少看起来是实现了)的RM游戏,我知道的只有一个小黄油
不过那个游戏实际上也只是实现了NPC的位置随时间的改变而改变,并不会看到NPC从一个地图走到另一个地图
作者: 无终    时间: 2020-3-1 21:31
可以实现的吧,需要Chronus插件,这个插件会把游戏内时间精确到分钟填入变量里。
然后比如,我一个人物,在房间内,酒馆,广场三个地图往返。
24点到6点室内关门,然后6点钟出门,在广场待到晚上16点后去酒馆,18点返回家中。
然后就是大量的重复设定工作了,你必须固定这个人物的行动路线,知道他什么时间必须走到什么位置。
在三个场景内建立三个事件,并行处理,不断的判断当前的时间。比如广场的事件,早上6点的时候,让代表人物的事件出现,然后设定其行动路线和行动速度,让它在10分钟后到达广场。
到16点后,再次设定人物的移动路线,到酒馆门口,然后让事件消失,这个可以用开关控制。
人物和判断时间的事件是两个。一个用来不断判断时间,另一个是被控制的人物,这样人物才可以相应玩家的对话。
其他两个场景同理。




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