设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1977|回复: 6
打印 上一主题 下一主题

[讨论] 分享一个“让NPC了解玩家的所作所为”的实现思路

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1399
在线时间
147 小时
注册时间
2015-7-19
帖子
38
跳转到指定楼层
1
发表于 2021-4-8 12:10:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 水舞沨流 于 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!

Lv2.观梦者

梦石
0
星屑
662
在线时间
56 小时
注册时间
2021-1-23
帖子
37
2
发表于 2021-4-10 15:02:36 | 只看该作者
算是加入智能AI吗?

点评

差不多哈哈哈哈  发表于 2021-4-11 13:40
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3118
在线时间
276 小时
注册时间
2019-4-23
帖子
202
3
发表于 2021-4-20 17:15:43 | 只看该作者
这做一个游戏得花多少时间啊~~~~
不过你说的这种变量,可以用二进制优化下,比如 二进制 100 = 8,则表示第一个个事情都做了,011=5则代表后面两件事情做了

点评

cooool!  发表于 2021-4-21 15:00
回复 支持 2 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
394
在线时间
49 小时
注册时间
2021-5-2
帖子
19
4
发表于 2021-5-5 16:20:46 | 只看该作者
我有个想法,就是直接用rmmv自带的角色系统,做一个 玩家的人格,创建为一个角色,取名为人格,玩家的行为比如做好事就增加人格角色的经验,做坏事减他的经验,多吃药就增加人格角色的魔抗,然后后面分支的时候直接调用该人格角色就好了,这个角色平时不用,只在Npc做分支时调用,就是要记住参数间的的对应关系,可以打在角色简介和备注里面,这样方便管理。

点评

那 也不用那么麻烦 直接加几个变量就好啦  发表于 2021-8-3 22:05
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-25 08:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表