人工智能大数据,工作效率生产力
Ctrl + D 收藏本站,更多好用AI工具
当前位置:首页 » AI资讯

《幽港迷城怪物AI机制详解》

2024-05-25 46

《幽港迷城怪物AI机制详解》

记住大原则:不具备飞行等特殊能力的怪物,非必要不踩陷阱、危险地形,除非那是针对目标的唯一路径。

一、怪物确定首要攻击目标(Primary Focus)

无论怪物是要执行攻击,或者移动,它都需要确定一个对象目标,英文简称Focus,以此明确怪物要向谁移动、攻击谁。为了更符合中文语境下的理解,我这里将其命名为“首要攻击目标”,官方FAQ中使用的词语为“Primary Focus”。

怪物要筛选出自己的首要攻击目标,遵循的是“Focus规则”,简要概括依次是:可达、最短、最近、最先。具体来看:

1、可达。即怪物和目标之间,是否存在畅通无阻的路径,不管这路径有多长,只要中途没有墙壁、障碍物、敌人的阻挡就行。这里不用考虑怪物能走多少步,直接假设怪物可以走无限步。假如怪物连一个可达的目标都没有,那怪物就不会移动,但怪物卡牌上的其他行动依然要执行。好了,假如现在场上的都是可达的目标,接着看下一步。

2、最短。即怪物到达攻击位置的距离最短(六边形格子数最少)。怪物攻击某个目标时,一般都会存在多个攻击位置,特别是远程攻击时,攻击位置会更多。这时,你要判定怪物到哪个攻击位置的距离最短,该攻击位置所指向的目标就是怪物的攻击目标。如果此时存在多个这样的攻击目标,那看下一步。

这里插个题外话:最短,并非指怪物和其攻击目标的距离最短。阿杰在B站视频中讲解到“最短”时,用的是近战攻击的怪物举例,且阿杰使用了极其精炼的语言,这很容易导致新手误解“最短”二字的概念,进而在实际游戏中误判,特别是对于远程攻击的怪物,误判率更高。不仅中文环境下如此,就是在BGG上也有一大堆看着英文规则书、英文FAQ的玩家误解“最短”二字,这个问题在BGG那个《怪物AI自测贴》的第15个问题上,得到了爆发性体现。

3、最近。即怪物和目标在真实空间上最贴近。实践操作中,你可以在怪物和目标间划一条直线,看该直线经过了多少个六边形格子,经过的越少就越贴近。或者,你可以像BGG网友说的“by the crow flies”,想象一只鸟儿从怪物飞向目标,飞经格子数越少的就越贴近。注意,该直线不能穿越墙壁,该鸟儿也不能飞越墙壁。如果此时依然存在多个攻击目标,那往下看。

4、最先。即哪个目标时序值最小、最先动。时序值最小的那个目标,最终被确定为怪物的首要攻击目标,怪物接下来的移动、攻击都要围绕该目标展开。

二、怪物确定一个最佳攻击位置(Final destination hex)

怪物确定了自己的首要攻击目标后,就要想方设法移动到该目标身旁进行攻击。同时,能攻击多目标的怪物,还会尽最大努力让自己的攻击效果最大化。但是,问题来了。正如上面所说,即使现在明确了唯一一个首要攻击目标,但场上依然会存在多个能打到该首要攻击目标的攻击位置(destination hex)。这么多攻击位置,怪物要向哪个攻击位置移动?站在哪个攻击位置上面发起攻击?如何确定这么多攻击位置中,哪个才算是“最佳攻击位置”?

你可以依次按照下面的优先级,从这些攻击位置中,筛选出最佳攻击位置:

1、能打到首要攻击目标。

怪物在该位置必须能打到首要攻击目标,特别是怪物具有多目标攻击能力时,更要注意这点。

同时,注意以下几点:

① 计算攻击距离时,不能穿过墙壁。(见《怪物AI自测贴》Q28示例)

② 敌人和英雄分别站在墙壁左右两边、紧贴墙壁时,两者并不视作相邻。假如他们使用远程武器互相攻击,不算劣势攻击。

③ 远程攻击,需要视线和攻击距离:视线用任意角对角连线法确定,注意该连线不能触碰到墙壁的任何一部分,否则当作无视线。(见《怪物AI自测贴》Q29示例)

2、该位置不是负面地形。

该位置不能是负面地形(陷阱、危险地形),除非场上只剩下负面地形可选。另外,怪物飞行时可以忽略这点。

3、对首要攻击目标不是劣势攻击。

怪物在该位置对首要攻击目标发起攻击时,不会陷入劣势攻击。当怪物被混乱,以及场上只剩下劣势攻击位置时,可以忽略这点。

4、怪物具有多目标攻击能力时,能攻击到尽可能多的额外目标。

怪物可以攻击到多个目标时,站在该位置上,除了能打到首要攻击目标,还要能打到尽可能多的额外目标。比如,怪物能攻击3个目标,那其中1个必须是首要攻击目标,另外2个则定义为“额外目标”。

根据上述四点,初步筛选出符合条件的攻击位置,接着:

A、这样的位置依然有多处,那就从怪物的原始位置计算,按照Focus规则(可达、使用最少的移动点数到达该位置、与该位置的额外目标最接近、该位置额外目标的时序值最小),确定哪处才是最佳攻击位置。之后仍有多处位置的话,就看哪处攻击位置不会对额外目标造成劣势攻击。最后还有多处位置的话,就由玩家自己决定哪处是最佳攻击位置。

B、怪物具有多目标攻击能力时,没有这样的位置,那就试着把上面第4点的“尽可能多的额外目标”数值减少1人,再看看有无此位置。

C、怪物具有多目标攻击能力时,筛选出最佳攻击位置后,就接着从怪物的原始位置计算(注意不是从最佳攻击位置计算),按照Focus规则(可达、使用最少的移动点数到达额外目标的攻击位置、与哪个额外目标最接近、哪个额外目标的时序值最小),确定额外目标中谁是二级攻击目标(secondary target)。以此类推,确定后续攻击目标。

三、怪物移动

怪物可能无法马上发起攻击,这种情形,怪物需要向最佳攻击位置移动。移动遵循以下原则:

1、最佳攻击位置不能被占据。

2、找出到达最佳攻击位置的最短路径。

注意以下几点:

① 在计算最短路径时,以怪物本回合具备的能力状态来计算,不用考虑该能力下回合是否依然具备。

② 在计算最短路径时,怪物同伴所在格可以穿过,不影响计算。

③ 负面地形(陷阱、危险地形)、障碍物所在格则要绕开,不计入路径,除非它们是必经之路或者怪物具备穿越它们的能力如跳跃、飞行。墙壁不能跳过或飞过。

3、判定上述最短路径,能否让怪物在本回合到达最佳攻击位置:

A、能,那就沿着该最短路径移动。

B、不能,那怪物就会重新选筛选“移动后,最接近最佳攻击位置”的路径进行移动。

本步骤大多数时候可以简化为:3、怪物沿上述最短路径移动,向最佳攻击位置不断靠近。因为大多数时候,AB两选项指向的都是同一条路径。但某些极端情况,这样简化会出错,特例可见《怪物AI自测贴》Q26、Q27对比。为避免人脑计算量过大,建议可按简化方式“村规”。

4、如果本回合怪物移动后无法缩短与最佳攻击位置的距离,则怪物不移动。

原文链接:https://tieba.baidu.com/p/7798208439

相关推荐

阅读榜

hellenandjeckett@outlook.com

加入QQ群:849112589

回顶部