Project1
标题:
分享一个“让NPC了解玩家的所作所为”的实现思路
[打印本页]
作者:
水舞沨流
时间:
2021-4-8 12:10
标题:
分享一个“让NPC了解玩家的所作所为”的实现思路
本帖最后由 水舞沨流 于 2021-4-8 12:20 编辑
灵感来自小岛秀夫的MGS1,其中一个BOSS心灵螳螂可以读取玩家PS1游戏机里的游戏存档,并且对玩家的游戏口味做出评价,从而表现这个角色心灵感应能力的强大。
不过此处倒不是为了制作那种打破第四面墙的meta要素,而是为了让游戏世界变得更加生动。
适用条件:
1.你的游戏里有各种mini game,或者有着较高的自由度,允许玩家可以进行一些和主线剧情关系不大的游乐项目,那么这个系统应该能派上用场。
2.你的游戏需要有天数系统,或者最起码的旅馆休息系统,用于刷新玩家行为的记录。
实现思路
·给事件赋予一个复杂的变量数值,每一个数值都代表某一具体的事件,且确保
不同数值相加会得到一个独特的数值
。(例:主角吃了拉面,则变量:玩家行为 +322)
-或者不嫌麻烦的话直接给每一种事件都增加一个开关。(例:主角吃了拉面,则 开关:吃了拉面=on)
·每次玩家进入旅店睡觉时,相关变量(或开关)都会清零,
这样NPC眼中的你每天都在做着不同的事
。
·NPC对话条件分歧,当变量=322(或开关:吃了拉面=ON)时,NPC会在他原本的对话里追加一句:“噢,今天在拉面店看到你了,有空一起搓一顿怎么样?”
-看上去似乎用开关更简单方便,
然而,数字变量可以实现一些复合情形的对话
,如下:
-假设
主角吃了拉面,变量+322
;
主角去厕所拉屎,变量+244
;
主角去运动,变量+211
-那么,NPC对话条件分歧,当
变量=566
时,NPC会说:"啊——你肠胃一定很好"(???)而当
变量=533
时,NPC则会说:“哇,刚吃完饭就剧烈运动,会把身体搞坏的哦”。
-而这样的操作只使用开关的话是
效率很低
的,多半会出现条件分歧疯狂套娃的情况,因此用变量反而方便很多。
差不多就是这样一个思路,它可以用在很多神奇的地方,不一定非得是例子中那些无关痛痒的内容,大家如果也有什么想法,或者更有效率的操作也欢迎讨论。
yeah!
作者:
lishang339
时间:
2021-4-10 15:02
算是加入智能AI吗?
作者:
q3226257
时间:
2021-4-20 17:15
这做一个游戏得花多少时间啊~~~~
不过你说的这种变量,可以用二进制优化下,比如 二进制 100 = 8,则表示第一个个事情都做了,011=5则代表后面两件事情做了
作者:
qwer_run
时间:
2021-5-5 16:20
我有个想法,就是直接用rmmv自带的角色系统,做一个 玩家的人格,创建为一个角色,取名为人格,玩家的行为比如做好事就增加人格角色的经验,做坏事减他的经验,多吃药就增加人格角色的魔抗,然后后面分支的时候直接调用该人格角色就好了,这个角色平时不用,只在Npc做分支时调用,就是要记住参数间的的对应关系,可以打在角色简介和备注里面,这样方便管理。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1