浆糊论坛-RO小站's Archiver

ysp319 发表于 2009-9-25 22:52

[讨论]关于冰墙性质和魔物AI的部分看法

为什么冰墙放斜了怪物能冲过来?为什么单冰可以卡住怪,为什么有时单冰卡会失败?为什么看似把怪封死了,怎么
一个暴风雪就把它吹出来了?冰墙对远程怪似乎无效?冰墙使用中的诸多疑问促使我开了这帖。




由于许多现象是冰墙特性和魔物AI共同作用的结果,涉及的方面比较多,所以看的时候请联系起来看。如果是因为我
的表达能力问题那不妨多看几遍[*'_']




以下为不完全测试,所以有不完善或者错误的地方,欢迎补充修正。
----------------------------------------------------------------------------------------------------------------------------------------------------------




[img]http://pic.yupoo.com/shenqi319/736208204468/b1rw0pt5.jpg[/img]
1,冰墙对移动以及技能的影响

RO里一共有8个方向,上下左右加4个斜角,经过测试对魔物(BOSS例外)每一格冰墙的右上,上,右3个方向是封闭的,
其余5个方向则是开放的。也就是说误判路径的魔物只能从那5个方向进入冰墙,同样进入冰墙的魔物也只能从那5个方向出
去,进入冰墙的魔物如果打算从右上,上,右出去,会失败,这就是卡怪的现象,以上是对于单格冰墙来说的,实际中冰墙
是一排5格子。

结论:单格冰墙会阻挡一般魔物来自右上,右,上3个方向的进入以及从这3个方向出去,另外测试对冰墙中的玩家来说,
      如果试图从这3个方向出去的话会出现很严重的错位。但是可以走得出去。

    对技能的影响:冰墙内的魔物崩裂打不到。以魔物为中心的九格用冰墙完全封死的话暴风雪也打不到等等。
                  (内容不完全,欢迎补充。)


以下是斜冰墙对误判路径的魔物的阻挡测试

图⑴ 魔物经过冰墙         图⑵魔物经过冰墙缝隙
○○○○○○○○○○○    ○○○○○○○○○○○
○○○◆○○○○○○○    ○○○○◆○○○○○○
○○○○①○○○●○○    ○○○○○①○○●○○
○○○○○②○●○○○    ○○○○○○②●○○○
○○○○○○③○○○○    ○○○○○○●③○○○
○○○○○●○④○○○    ○○○○○●○④○○○
○○○○●○○○★○○    ○○○○●○○○★○○
○○○○○○○○○○○    ○○○○○○○○○○○

◆ 魔物初始位置
★ 玩家位置
● 冰墙
①②③④ 魔物的误判路径(解释在魔物AI分析下面)

经过测试,魔物从左上进攻(如上两张图)两种情况下都能穿过冰墙,就是说冰墙起不到阻挡效果
         
          换成魔物从右下方进攻,结果也和上面一样
         
          再换成魔物从右上方进攻,魔物经过冰墙的情况会挡住魔物并使其丢失目标或者绕墙,而冰墙缝隙的话阻挡不了
         
          最后换成魔物从左下方进攻,魔物经过冰墙的情况会被单冰卡住,而冰墙缝隙的话还是阻挡不了
        
          把以上状况和论述冰墙对移动以及技能的影响起来看,发现与理论正好吻合。而且可以发现冰墙缝隙是可以斜穿行的,
          比如从图⑵中②移动到③
          用一些击退技能也是同样的现象。(可以拿邪恶食人花+冰墙雷鸣测试)





--------------------------------------------------------------------------------------------------------------------------------------------------------





2,主动魔物AI共性部分简单分析
            
          无目标的话是闲置状态,当在视野内发现目标的时候则计算追击路径,符合追击条件后进入追击状态
          不符合的话回到闲置状态,追击状态下目标进入普通攻击射程,则进入攻击。
         
          冰墙阻碍的不是视野,可能是影响路径的计算,当路径距离超过一定值时,魔物不会进入追击状态。
          所以对于远程怪,只要你在视野中,且在射程内,那是阻止不了攻击的。只有场景障碍才会阻挡视野,阻挡攻击。



追击中的路径的误判
         
          魔物追击开始时会先计算追击路径,魔物会按上一次计算的路径走下去直到受外界影响(比如受攻击,被念反
          ,目标玩家进入射程等等)或者到达即定地点。不然不会主动改变路径。在这个时候放冰墙魔物会按照之前算
           好的路径走下去并撞上冰墙,这种情况暂称魔物误判路径。(如果魔物是从下往上,从左往右,从左下往右
     上走会被单冰卡住)而其他情况下魔物判断路径时是会视冰墙为障碍并绕过冰墙。
         
          误判路径的情况下,才会造成单冰卡怪和魔物斜穿冰墙等奇怪现象。单冰卡怪失败被魔物绕过来,那就意味着
          当你放下冰墙后由于外界原因魔物重判路径。于是冰墙被魔物AI考虑到,最后魔物绕墙过来了。
         
          当上面斜冰墙测试的时候如果冰墙能被魔物AI考虑到,那这种情况下就不会出现穿墙的现象。

[[i] 本帖最后由 ysp319 于 2009-9-26 08:20 编辑 [/i]]

坠落の十字星 发表于 2009-9-25 22:53

沙发

flydreamcyx 发表于 2009-9-26 01:13

讲得蛮通俗的
LZ表达很不错啦

关于怪的行动路线
在怪物自己移动前,先要产生算路
先斜线移动到直线走能攻击当时玩家所站格的最近的行/列
再改为直线向能攻击到算路产生时玩家所站点的格行进
到达后如果未发现玩家则重新产生一个算路(这是以前的一般说法了,3秒论我以前似乎没听说过)
不知道LZ是否能证明3秒重判论

我其实挺好奇的是LZ如何准确地画出怪在哪个格
后来我想通了
先把怪卡住不就好了...

[[i] 本帖最后由 flydreamcyx 于 2009-9-26 01:22 编辑 [/i]]

minagetsu 发表于 2009-9-26 04:47

好贴留名慢慢看

ysp319 发表于 2009-9-26 07:36

[quote]原帖由 [i]flydreamcyx[/i] 于 2009-9-26 01:13 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=11068419&ptid=998323][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
讲得蛮通俗的
LZ表达很不错啦

关于怪的行动路线
在怪物自己移动前,先要产生算路
先斜线移动到直线走能攻击当时玩家所站格的最近的行/列
再改为直线向能攻击到算路产生时玩家所站点的格行进
到达后如果未 ... [/quote]
又去测试了一下,看来我的3秒论可能是错误的.魔物应该是按你说的方式移动.
如果能找移动速度足够慢的魔物,那测起来就很方便了,编辑掉.

[[i] 本帖最后由 ysp319 于 2009-9-26 07:53 编辑 [/i]]

flydreamcyx 发表于 2009-9-26 07:55

黑暗捕虫堇+缓速

ysp319 发表于 2009-9-26 09:14

[quote]原帖由 [i]flydreamcyx[/i] 于 2009-9-26 01:13 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=11068419&ptid=998323][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
讲得蛮通俗的
LZ表达很不错啦

关于怪的行动路线
在怪物自己移动前,先要产生算路
先斜线移动到直线走能攻击当时玩家所站格的最近的行/列
再改为直线向能攻击到算路产生时玩家所站点的格行进
到达后如果未 ... [/quote]
测试完看来魔物的重算路径的方法是按你所说的方式来进行的.

不过"再改为直线[color=magenta]向能攻击到算路产生时玩家所站点的格行进[/color]"这点我认为不正确
魔物移动路径的算法应该是一样的.不会因为自身射程而有差异,都是按照射程为1进行计算.
就算是远程怪也是一样,毕竟对程序来说要根据魔物的射程和视野来逐条写AI是很麻烦的
事.至于现实中为什么远程怪不会先走到玩家身边再攻击而是进入射程就攻击,我认为这个
是优先级的问题.攻击优先于算路.一旦玩家进入射程.就会使远程怪进入可攻击射程后就
开始攻击而不是走到底.

[[i] 本帖最后由 ysp319 于 2009-9-26 11:53 编辑 [/i]]

米嘈 发表于 2009-9-26 10:44

看来LZ是冰墙党的新成员,看来巫师还是有不少喜欢玩操作的
1 首先说一下冰墙卡怪的原理和条件
原理:当然是游戏的BUG产生的。
条件(可以不看,因为很难解释):冰墙的其中一部分穿越怪物的“像”并覆盖怪物的“影”。
       关于怪物的“影”。可以这样理解:设A是怪的像,B是影(看不见的。而且有2个)。那么在标准视觉上,怪物应该是这样: 怪物的2个影B永远在像A的左方和下方。只要A穿过冰墙或者被冰墙覆盖,同时冰墙有一格覆盖了其中一个B。那么A就被卡住。所以卡怪叫“锁影”。你会看到怪物能穿过冰墙一格后卡住不动,其实是A穿越墙后,B被冰覆盖了于是被卡住。
      
2  为什么一道冰墙(单冰)只能卡左和下方向的怪?
   只要看了上面,就知道,因为从右或者上来的怪,首先碰到冰墙的并不是A。而是B。那么A无法穿过冰墙,所以导致卡怪失败。怪物会饶过来攻击你。
   所以对付从其他方向来的怪只能用双冰卡。因为要满足上面的条件:“冰墙的其中一部分穿越怪物的“像”并覆盖怪物的“影””。双冰等于强制用2冰墙覆盖怪物的影和像,所以100%能卡住,也能用一道冰墙就能同时锁住怪物的A和B,小心引走怪物就OK

3 关于怪物的移动路线(不多说)

很多贴有讲,只要玩过火墙的人,都会很清楚怪物的移动规律,多实践,不好说。冰墙卡怪必须要很清楚怪物的移动规律。否则会出现有时卡到,有时卡不到。还会问“为什么斜冰能卡”。

4 为什么单冰卡住后怪物走出来?

因为怪物的后面有玩家,怪物被引走了。只要你在怪物后面补一道冰墙就OK,假如双冰后怪都能出来,证明你的网络有问题。检查一下电脑

5 为什么卡住后吹雪怪会走出来?

   因为你没有用双冰卡住(不算是解释哦)   只要补一道墙OK。

6 关于卡怪后,怪物远程攻击

卡怪只是封住怪的路线,并不是封住怪的视线,所以只要你出现在怪物视线范围内。照样攻击你
远程物理攻击的怪,都无视冰墙的视觉阻挡。也就是即使你用100道墙封住了他,他照样打你。
个别魔法型攻击怪物,受冰墙的视线阻挡影响。最典型莫过于女妖。

7 为什么斜冰能穿越?有时候不能?

可能 又是BUG,斜冰是被方向局限得很厉害,一般只能卡住左下放的。所以用单冰卡住5点到11点钟方向的怪只能用平衡、垂直冰。
斜冰穿越的情况一般出现在:1 你卡怪失败的时候(左下,说者可以说从6点到9点钟的方向)。因为你没有掌握怪物的路线。你要怪物进入你以3格为宽,无限长为长的直线范围斜冰才有效  2  太贴近怪物放(其他方向),   假如冰墙是放在离怪几格远的地方,怪物一般不能穿过

ysp319 发表于 2009-9-26 11:47

关于LS的第六点,实际是这样的:
怪物分3种状态.1是闲置.2.是追逐.3是攻击
根据不同怪物的AI.在这3种状态下会释放不同的技能.一般来说被打无法反击会飞的怪都是在闲置中添加了受攻击使用瞬移这条指令.而单冰卡怪打怪不飞的情况实质是被单冰卡住的怪是处于追逐状态的.
因为怪算路的时候不会把自己所处的那格考虑进去.这样会造成怪算好路径开始追击却无法移动的情况
而大部分会飞的怪在追逐和攻击状态都是不飞的.所以可以单冰卡杀.而用冰墙封死的话.怪算路后不满足追逐条件会回到闲置状态.这时候攻击就会触发闲置下的瞬移而使怪飞走.

对于远程怪.其实算法和近程怪一样.都是算路径满足条件后开始追击.[color=Red]最重要的一点:触发攻击状态的唯一条件是目标视野内且进入普通攻击射程[/color].而且这点优先于算路.也就是说.当满足攻击条件就开始攻击.在条件满足的情况下,攻击优先于追逐,追逐优先于闲置.所以远程怪不会傻傻地走到玩家身边才开始攻击.进入射程就开始攻击了

冰墙影响的是算路.不影响视野.这点对所有怪来说都是一样的.
举个例子研3暗神射.如果你进入射程.且在视野内.那必然遭攻击.因为攻击条件已经满足了,而且攻击是最优先选择,那自然冰墙怎么封都是无用的.即便算路失败也不会处于闲置中.所以对远程怪来说冰墙是会影响它算路,不过你一旦进入视野且在射程内.那照样攻击.

就你的举例女妖:女妖是近程怪.被冰墙封死后.,算路条件不满足,由于是近程那么攻击条件也不满足.那自然处于闲置中.而女妖的闲置中无攻击玩家的技能.玩家不会被技能攻击.
再另一种情况.单冰卡的女妖是处于追击中.如果女妖有追击技能.而玩家处在技能锁定范围内.那自然会中招.这就是玩家被怪追.怪会放技能攻击的现象.但是实际上怪物不是处于攻击状态下而是追击状态.
[color=Red]最后强调一下冰墙不影响视野只影响算路.[/color]

[[i] 本帖最后由 ysp319 于 2009-9-26 15:57 编辑 [/i]]

flydreamcyx 发表于 2009-9-26 11:49

关于移动到差一格的行/列
我没使直火烧过史汀之外的怪
所以我就不发言了
这帖很好

.ˊ頽ヾo? 发表于 2009-9-26 13:21

放斜了也能卡住..

ysp319 发表于 2009-9-26 14:44

斜了也能卡.只要怪物是试图往右,上,右上这3个方向都有可能卡住.
一般不会主动放斜的.都是失误直的没放好放斜了

米嘈 发表于 2009-9-26 15:50

LZ真有探索精神
我也学到东西了

黑暗咆哮 发表于 2009-9-26 15:55

关于冰墙阻碍的是算路而不是视野我很赞同,这一点可以预见由于RO1.5的怪物AI更新,冰墙卡怪可能会失效
很长时间没在小站看到如此有钻研精神的帖子了,召唤版主加分……

米嘈 发表于 2009-9-26 16:06

回复 #14 黑暗咆哮 的帖子

AI可能让单冰失效  不过双冰强制上锁应该还能用得上
除非真的把BUG改了。

ysp319 发表于 2009-9-26 16:18

针对冰墙修改怪物AI的案例就是BOSS属性怪的修改了.
1.5版的AI应该不是针对冰墙作的修改.那是否有什么影响就不好说了.

龙魂づ 发表于 2009-9-26 20:11

LZ有才,佩服LZ的钻研精神.

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.