查看: 145|回复: 11

[技巧教程] 【无限可能】基于僵尸AI的检测器CBUD介绍

[复制链接]

8

主题

20

帖子

36

积分

攻略组-见习

UID
2442
小麦
22
钻石
136
下界之星
0
发表于 2017-5-13 17:06:48 | 显示全部楼层 |阅读模式
本帖最后由 mackler 于 2017-5-13 17:16 编辑
僵尸镇楼!




========我是华丽的分割线=========

僵尸的AI是算游戏里常见怪物中最复杂的了,僵尸要攻击玩家和村民,其寻路算法非常复杂,可以找到各种神奇的路线以走到村民身边。U2B玩家goohz发现可以利用僵尸的AI机制来做一些非常强力的方块检测!这里给大家系统的介绍一下。

僵尸首先肯定可以找到的路是大平地,有一条通往村民的路僵尸就能走过去。
2017-05-13_15.06.16.png


早期版本中僵尸没有更高级的算法,1.9版本之后,僵尸AI大大增强,各种情况都可以很好的处理,里如会通过斜边相连的路径
2017-05-13_15.10.24.png
甚至在有墙挡住的斜边也可以通过
2017-05-13_15.12.53.png
即使无法通过,也会在不能通过的地方静候着,挣扎着,里如有墙壁完全挡住了斜边时,想必玩家造的村民工程周围的墙角里经常有这样一窝嗷嗷待哺的僵尸吧!
2017-05-13_15.15.50.png
并且僵尸已经会爬梯子,会尝试爬梯子上去来攻击到村民
2017-05-13_15.16.52.png
这时候重点来了,一定区域内的方块更新都会引起僵尸的AI重新搜索路径!而在重新搜索路径之时,原来在梯子上努力向上爬的僵尸会放弃原来的路径,不在努力向上爬而从梯子上滑下来,直到算好新的路径之后再开始努力爬,如果寻找到的路径没变化,会继续在恢复梯子上悬空站着的状态。

下图用绿色玻璃标记了所有可能引起僵尸AI重置路径的区域。可以看出基本是一个球形,而球心大致位于僵尸和村民中点,也就是当前路径的出发点与目的地的中心。
2017-05-13_15.30.06.png

下面这张图也可以看出来球心大致位于路径起始点和终点连线的中点,但半径与垂直爬升的高度没有关系。
2017-05-13_15.43.40.png

换一个扭曲的路可以越发看出规律来,球心与路径形状无关,在起点终点连线的中点处,但球的直径又是又路径的长度决定的,路越扭曲,半径越大。
2017-05-13_15.51.25.png

可以通过扭曲的路径做出巨大的检测范围,最大范围貌似是32格,超过范围就找不到了,下图中这么远的距离的栅栏门开合就会引起僵尸重新搜索路径。
2017-05-13_15.59.58.png

检测内容与BUD、CUD和侦测器的范围不太一样,几乎所有引起碰撞箱改变的都会检测到,比如所有具有碰撞箱的方块放置和移除、门、栅栏的状态改变、包括中继器、地毯等放置也会引起变化,但红石线的熄灭和变亮等更新并不会触发。但最大的特点还是检测范围巨大!

那么,如何检测僵尸AI的变化呢?僵尸在有更新之后会从梯子上滑下来,落到地面上,可以通过压力板来检测这一行为,如下图,石栅栏下面有一个压力板,更新产生之后,僵尸会踩到压力板上,从而触发红石信号。
2017-05-13_16.13.35.png

当然,为了提高检测的灵敏度,我们希望僵尸只往上爬一点点,刚好不踩着压力板就好。这需要在僵尸头顶上面放一个不完整方块来实现。可以用凋灵头颅。
2017-05-13_16.19.03.png

不过凋灵头颅在生存模式下还是比较贵的,更便宜的方式是用激活状态的活塞体卡住,效果和头颅是完全一样的。
2017-05-13_16.21.22.png

利用这个机制可以做很多非常有意思的东西,由于检测范围巨大,而且绝大多数方块的放置和破坏都会触发,如果做成陷阱几乎防不胜防,比如在地下铺上一堆TNT,上面盖上一层土,然后地下埋一个这样的装置用来点燃TNT,那么进入这个区域的玩家只要开个门或者是放个方块,甚至想挖掉一块地下的土方块看看有没有陷阱,都会瞬间被炸飞,几乎没有可能逃脱。
制作这个装置的时候,不要忘记给僵尸装备或者命名,不然僵尸刷没了就gg了。

==========我是华丽的分割线=========

你以为这就完了?别走,这个装置还有一个作用!区块加载检测!
由于僵尸计算的路径在我们关闭游戏或者走远了区块卸载的时候,是不会保存在存档里的,所以当我们重新打开游戏或者走到这个装置附近的时候,僵尸会失去路径而从梯子上滑下来触发红石信号,然后重新搜索路径。

仔细一想似乎很坑,如果你直接在游戏里做了上面提到的这么一个陷阱,但是没有在你关闭游戏之前触发,那么下次启动游戏的时候,陷阱直接触发然后爆炸了,不会等到有人来就挂掉了。

但是!!!既然可以在游戏启动的时候触发,我们是可以用这个装置来检测区块加载的!

想必很多人都会问,检测区块的加载有什么用?其实对于技术生存来说,可能性本身就是最重要的,当然为了满足大家的疑问,我还拿上面的例子来说。

既然我们可以检测区块加载,那么我们就可以利用区块加载的信号来屏蔽掉陷阱的误触发。
2017-05-13_16.50.23.png
右侧的僵尸路径更长,检测面积巨大,可以用来检测玩家活动触发TNT爆炸。左侧僵尸路径很短,覆盖范围小,检测不到玩家的活动,用来检测区块加载,把右侧僵尸因为区块加载而误触发的信号屏蔽掉,用了一个信号延长器来保证屏蔽干净。此外,左侧僵尸用活塞卡位,响应更快,右边僵尸往上爬了一格,响应会慢一些,这样可以保证屏蔽信号先触发,然后误触信号才被激活。TNT的后面是一个指向TNT的中继器,另外,两个僵尸一定要在同一个区块里。
于是,当我们重新进入游戏的时候,如下图,成功屏蔽了信号,TNT没有爆炸。
2017-05-13_16.54.30.png

但当我们在右侧僵尸可以检测的范围内放方块或者打开门的时候。
2017-05-13_16.58.56.png
ssssss......Boom!

所以说,其实有时候看起来是坑的东西,实际反过来就可以非常有用的。

==========我是华丽的分割线===========

区块加载检测和区域更新检测都是非常有用的东西,希望这篇教程能给大家带来不少乐趣和惊喜。当然不要忘记了发现这个机制的玩家goohz!

64

主题

1910

帖子

661

积分

Lv.6 附魔大师

UID
444
小麦
117
钻石
1160
下界之星
0
发表于 2017-5-14 09:16:04 | 显示全部楼层
这是个好东西,不过限制也比较大。。。。

8

主题

20

帖子

36

积分

攻略组-见习

UID
2442
小麦
22
钻石
136
下界之星
0
 楼主| 发表于 2017-5-14 09:42:29 | 显示全部楼层
史蒂夫·冥王 发表于 2017-5-14 09:16
这是个好东西,不过限制也比较大。。。。

有什么限制么?具体说说?

64

主题

1910

帖子

661

积分

Lv.6 附魔大师

UID
444
小麦
117
钻石
1160
下界之星
0
发表于 2017-5-14 10:08:28 | 显示全部楼层
mackler 发表于 2017-5-14 09:42
有什么限制么?具体说说?

我的意思在生存模式下,不太好搞。。

8

主题

20

帖子

36

积分

攻略组-见习

UID
2442
小麦
22
钻石
136
下界之星
0
 楼主| 发表于 2017-5-14 10:59:51 | 显示全部楼层
史蒂夫·冥王 发表于 2017-5-14 10:08
我的意思在生存模式下,不太好搞。。

这个耗资已经很小了吧,只需要一个村民和一个僵尸,红石需求都小得不行。你不会说捉不到僵尸或者弄不到村民吧。。。

64

主题

1910

帖子

661

积分

Lv.6 附魔大师

UID
444
小麦
117
钻石
1160
下界之星
0
发表于 2017-5-14 11:02:30 | 显示全部楼层
mackler 发表于 2017-5-14 10:59
这个耗资已经很小了吧,只需要一个村民和一个僵尸,红石需求都小得不行。你不会说捉不到僵尸或者弄不到村 ...

呃。。。。。今天天气不错。。。。

0

主题

3

帖子

1

积分

Lv.1 新手木匠

UID
3047
小麦
0
钻石
6
下界之星
0
发表于 2017-5-15 23:11:11 | 显示全部楼层
买可乐大触6666

1

主题

93

帖子

33

积分

Lv.2 石器学徒

UID
8616
小麦
9
钻石
131
下界之星
0
发表于 2017-5-17 17:27:50 | 显示全部楼层
真的非常有用可以想象一个大型农场,地下埋着僵尸和村民,地上种着西瓜南瓜。(笑)

24

主题

1061

帖子

350

积分

Lv.5 农牧专家

UID
1030
小麦
60
钻石
706
下界之星
0
发表于 2017-5-17 22:04:22 | 显示全部楼层
是个好东西,但是又有什么用呢
我的图片无法正常使用,但我照样能眼熟。

16

主题

271

帖子

188

积分

玩家版主

x+(y-√x)=1

UID
308
小麦
102
钻石
641
下界之星
0
发表于 2017-5-18 15:47:50 | 显示全部楼层
好厉害这个。。不过生存怎么抓僵尸。。。

( ° ▽、° ) 来一只兔叽吗

0

主题

1

帖子

0

积分

Lv.1 新手木匠

UID
10018
小麦
0
钻石
5
下界之星
0
发表于 昨天 21:30 | 显示全部楼层
墨鱼服还开着吗?

14

主题

677

帖子

265

积分

Lv.5 农牧专家

UID
3326
小麦
81
钻石
964
下界之星
0
发表于 昨天 22:56 | 显示全部楼层
那僵尸离远了不是会被刷掉吗,这样的话应该还要用到命名牌这种不可合成物品吧233
七月,等着与你再次相逢(づ ̄3 ̄)づ╭❤MC中国版~
送小麦不会扣除自己的的小麦哦!快来给我送几个小麦吧2333
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部