
本文为该专栏的补充:【【明日方舟】路径/移动系统全解析-哔哩哔哩】 网页链接
在该专栏中,详细描述了明日方舟中的寻路规则。对于某格的路径点,方舟会生成一张寻路地图,每个寻路连通的地块都会记录一个名为nextnode(后文简称为目标)的变量,这个变量将告诉本格之上的敌人,要前往那个路径点应该往哪个方向走。该专栏指出目标应该是能用直线连通的,并尽最大可能拉远。然而实际结果却非如此

如图,对于路径点c5,f8位置最远连通直线应为d5,也就是prts.map的画法。这从直觉上很合理,但是实际情况是大盾在f8以f5为目标,到达f5才转向c5。

如果说这还算“规则”的话,其对称的幽灵路径就更加诡异了,其在f排目标为e7,在e排目标为d7,有兴趣的同学可以去遗尘漫步ex4观察一下幽灵和狗的多段折线。

经过实测,其他方向的所有情况均表现正常,本文将针对性解释该现象。
在【【明日方舟】路径/移动系统全解析-哔哩哔哩】 一文中,有提到在寻路地图创建的最开始阶段,是从路径点开始,以上右下左顺序依次向外推地块并记录“来源”,也就是最开始记录的目标。让我们画图说明一下
如图,路径点从(4,1)开始,第一个推到的地块为(4,2),(4,2)按上右下左顺序推到(4,3),(5,2)(3,2),此后再推(4,3)周围的地块。如此直到所有连通的可通行地块均记录完毕结束,图中数字为地块的顺序

此时,每个地块均记录了自己的来源作为目标

每个地块都试图把目标拉远,其方式为判定自己与自己目标的目标是否直线连通(该方法逻辑需要看那篇专栏),如果是,则将其设置为自己的目标,并重复上述判断直到失败或结束。
举例来讲,(1,2)的目标是(2,2),(2,2)的目标是(3,2)那么判断(1,2)和(3,2),判定成功,下一步(1,2)和(4,2)......直到(1,2)目标为(4,2)时,下一步判断连通(4,1)失败,目标的最终结果就是(4,2)。
上述逻辑表面上没有任何问题,但是,如果a目标为b,b→c,c→d,我们假设a→c,b→d,能成功,且a→d会失败。此时a和b的判定顺序就会影响最终结果,在a先判定时,a目标最终为c;在b先判定时,b目标先改为d,然后a的目标的目标则为d,ad判定不通过,则不做更改。即b先进行判定的情况下,让a的能通过判定的中间地块c消失了。
那么,地块a,b之间如何决定先后?
答案是地块编号顺序,先下排后上排,同排先左后右。
让我们举例分析:在即将进行判定的地块的为(5,3)时,此时各地块的目标如图:

(5,3)目标为(4,3),(4,3)的目标为(4,1)。此时正是触发了刚才讲解的情况,(5,3)和(4,1)判定不通过,中间的(4,2)被吞掉了。因此目标仍为(4,3)。右侧两个地块也同理只能连通(4,3)。
再下一步即将判定(1,4)时地图是这样的

判定路径为(1,4)→(2,4)→(3,4)→(4,4)→(4,3)→(4,1)
则(1,4)的目标的结果是(4,3)
如此递推整张图,我们就能发现奇妙的结果:

右侧的目标都是中间列的同排格,左侧的目标都是中间列且相邻1排的格子。
这就解释了为什么大盾是往左横走再竖走,而幽灵则产生了斜走多段折线的奇妙现象。