艾尔登法环吧 关注:686,114贴子:13,711,459

法环出血/冻伤硬直机制浅析

只看楼主收藏回复

众所周知,法环中触发出血、冻伤这两种异常时,敌人除了受到一次伤害,还可能会产生一个硬直,这一硬直的特殊之处在于其对敌人的霸体具有奇妙的打断能力:恶兆之子的踢腿有着让狮子斩和狩猎巨人都无能为力的霸体,却能被一次出血轻易打断;即使是玛莲妮娅的水鸟乱舞这种连失衡都无法打断的强霸体招式,一个结冰壶扔下去也能让她坠机。但另一些情况下又并非如此:血怪常态只需2号冲击力(大剑轻击)即可打出硬直,但单纯的出血/冻伤却完全无法打断其动作;角战士常态不吃任何冲击力,同时出血/冻伤也拿他毫无办法。
出血/冻伤为什么能造成硬直?又为什么有时能打断无视冲击力的强霸体,有时却连2冲都不如呢?我在网上一直没有找到对这一机制的详细解析,只有零星的模糊猜测,例如“出血/冻伤优先级高”、“出血/冻伤是特殊机制/特殊冲击力”等等。本文就在解包数据和个人理解的基础上,尝试浅析一下出血/冻伤硬直的来源、为什么能打断敌人的霸体,以及哪些霸体是无法被出血/冻伤打断的。
观前提醒:阅读本文可能需要对魂系列的冲击力-硬直系统有一点基础的了解,本文不会再从头介绍一遍该系统。另外本文内容基于法环本作PVE,不一定适用于黑夜君临和PVP。
(叠甲:纯个人解包分析+实测验证,可能有误,欢迎指正。我相信肯定有大佬已经研究过这个机制,只是没有公开发出来或者我没找到,因此就不说什么全网首发之类的了)


IP属地:内蒙古1楼2025-10-08 23:12回复
    一、出血/冻伤硬直的实质
    先说结论:出血/冻伤硬直本质上仍是冲击力造成的硬直,并非绕过冲击力系统的特殊机制。
    要理解出血/冻伤硬直的实质,需要先了解一下“冲击力造成硬直”这一过程的基础框架。简单来说,玩家攻击敌人,造成一定的冲击力(damage_level),敌人的hks文件(主要是c9997.hks)中的特定hks函数(与敌人硬直相关的大部分都在ExecDamage这个函数中)将冲击力作为参数(当然还有其他许多参数,例如攻击方向等,但本文只关心冲击力这一个参数),根据预先设定好的判断规则进行一系列判断,最终触发一个特定事件(或不触发任何事件)并播放相应的动画。从游戏内的实际表现来看,最终结果可能是敌人出现能够打断当前动作的硬直;可能是无硬直,仅有模型的抖动;也可能是连抖都不抖等等。
    画成流程图,大概如下所示:


    IP属地:内蒙古2楼2025-10-08 23:15
    回复
      2026-01-27 04:20:14
      广告
      不感兴趣
      开通SVIP免广告
      (上面的流程图是方便讨论的简化版,实际运行的过程可能会复杂得多)
      知道了这一框架,我们就可以看看出血/冻伤在其中到底扮演什么角色了。
      这是ExecDamage函数中关于出血/冻伤的部分:


      IP属地:内蒙古3楼2025-10-08 23:18
      回复
        可以看到函数在此进行了一系列if/else的条件判断,我们先不管这些具体的条件都是什么,在大部分情况下,这段代码翻译成人话就是:当敌人触发出血/冻伤时,如果冲击力原本为0号,则将其改为2号;如果冲击力原本为1/2/5/8号,则将其改为3号。
        也就是说,出血/冻伤的作用实际是“强化”本次攻击的冲击力,将一些原本比较弱的冲击力替换(或者说重写/覆盖)为中等的冲击力。这段代码在流程图中的位置处于第二步和第三步之间,加入这一步后,新的流程图如下:
        (大家可以额外注意一下0号→2号这一替换,它是出血/冻伤打断能力的关键)


        IP属地:内蒙古4楼2025-10-08 23:19
        收起回复
          这就是出血/冻伤对硬直的全部作用了,仅仅是对特定冲击力进行了一个替换而已,而且只限于较弱的冲击力(举个例子:血质变巨剑用狮子斩攻击失乡骑士,如果恰好造成出血,因为狮子斩的冲击力是6号,不满足此处的替换条件,因此冲击力依然保持6号砸趴不变,而不会出现出血这一下冲击力反而减弱为2或3号无法砸趴的奇葩情况),其余判断全部按照hks函数默认的设置运行。因此说,出血/冻伤硬直本质上仍是冲击力造成的硬直,而非单独的特殊硬直机制。
          到这一步,我们其实已经可以解释一些出血/冻伤打断敌人动作的案例了,例如:女武神常态下受到8号冲击力无硬直,因此匕首轻击无法打断女武神动作,但如果触发出血,这次攻击的冲击力会变为3号,就可以打断女武神动作了。但这种解释能适用的场合实在太过局限,尤其是无法解释那些原本就有2号3号甚至4号冲击力的攻击都无法打断,出血/冻伤却能打断的情况,毕竟经过出血/冻伤强化后的冲击力最多也只有3号而已。要解释这些问题,我们就得从敌对方出发,先了解一下敌人的霸体机制。


          IP属地:内蒙古5楼2025-10-08 23:20
          回复
            二、敌人的霸体机制
            因为不同玩家对“霸体”一词可能有不同理解,为了方便讨论,先下一个仅用于本文的定义:
            我说某敌人在某情况下“对X号冲击力有霸体”(或者说“不吃X号冲击力/不吃X冲”),是指该敌人在该情况下受到X号冲击力不会播放硬直动画。
            (这里的“冲击力”是指上文流程图中第一步的那个冲击力,即玩家攻击的原始冲击力;“硬直动画”则仅限于能打断敌人当前动作的硬直动画,具体是大硬直还是小硬直无所谓,但像0号冲击力造成的那种只抖动不打断动作的动画不在此列。另外本文只关心冲击力造成的硬直,所以其他硬直如失衡硬直、指虫等敌人受到火属性攻击的特殊硬直等等我们都不考虑)
            从解包来看,敌人的霸体机制大致可以分为两种:
            类型一:敌人的动画文件中根本就没有对应某个冲击力的动画(或者文件中有但实际上没使用),自然不吃该冲击力;
            类型二:敌人有对应X号冲击力的动画,但同时敌人身上具有一个BUFF(更准确地说,通常是某种SpEffect),这一BUFF可能是常驻的也可能是临时的,效果为:“将敌人受到的X号冲击力替换成Y号冲击力”。这样一来,即使敌人有对应X冲的动画,可如果没有对应Y冲的动画,就会表现为不吃X号冲击力。(游戏里常用的一种替换是将X冲替换为0冲,因为所有敌人都不吃0冲,这样就可以实现对X冲的霸体)


            IP属地:内蒙古6楼2025-10-08 23:21
            收起回复
              类型一的霸体一目了然无需解释,游戏中大体型的敌人多数都属于这种霸体(当然也有例外,如卢恩熊就是类型二的霸体);类型二的霸体则麻烦一些,这里举几个例子来辅助说明:
              例一:熔炉骑士的动画文件中有对应除8冲之外所有冲击力的动画,因此默认情况下应该吃除0/8冲外的全部冲击力。但熔炉骑士持有一个常驻BUFF,效果为:将4/6/7/9/10/11冲替换为2冲,其余冲击力全部替换为0冲。因此,熔炉骑士常态下实际表现为:不吃除4/6/7/9/10/11号外的冲击力,而受到4/6/7/9/10/11冲全部出现相同的小硬直(实际上是对应2冲的硬直)。而当熔炉骑士失衡时,这一BUFF会暂时被一个新的BUFF覆盖(熔炉骑士失衡动画的前半段和后半段还不是同一个BUFF,这里只以后半段为例),新BUFF将除0冲外所有冲击力都替换成了有对应动画的冲击力,这时用任何冲击力就都能打出熔炉骑士的硬直了,用9冲更是能看到其被击飞上天的场面。
              例二:恶兆之子常态下吃0/1/5/8外全部冲击力,但部分动作(比如踢腿)中会临时获得将所有冲击力替换为0号的BUFF,从而暂时拥有对一切冲击力的霸体。
              例三:常态下对失乡骑士用大剑轻击(2冲)和特大武器轻击(3冲)都能打出硬直,而部分动作(如风暴足)中其会临时获得BUFF,将2冲替换为0冲,但不影响3冲。因此特大武器轻击能够一直压制失乡骑士,大剑轻击则不一定。另外失乡骑士常态下拥有将9冲替换为3冲的BUFF,对6冲则无替换,这就是狮子斩能砸趴,狩猎巨人却不能挑飞的原因。


              IP属地:内蒙古7楼2025-10-08 23:22
              回复
                总而言之,敌人的霸体大概可以分为简单粗暴直接不做动画的类型一和通过BUFF替换冲击力来实现的类型二,其中类型二实现“对某冲击力霸体”的方式通常是将该冲击力替换为0号。
                (其实类型二的霸体内部还有不同的分类,比如女武神的霸体和恶兆之子的霸体,虽然都是不吃任何冲击力,但前者还能无视失衡硬直,后者则不能,不过对本文讨论的内容来说区分出类型一和类型二就已经足够,不需要进一步细分了。另外这两种类型实在不是什么很准确完善的分类,只是我为了讲出血/冻伤硬直机制临时分的,离开本文的环境可能就没什么实用价值了)
                看到这里我们可以发现,类型二的霸体与出血/冻伤的机制其实很像,都是对冲击力进行替换,剩下的唯一一个关键问题是,类型二霸体对冲击力的替换发生在上文流程图的哪一步?答案是第一步与第二步之间。加入这一步骤后的流程图如下所示,大家应该已经能理解出血/冻伤打断霸体的原理了。


                IP属地:内蒙古8楼2025-10-08 23:22
                回复
                  2026-01-27 04:14:14
                  广告
                  不感兴趣
                  开通SVIP免广告
                  三、出血/冻伤打断敌人霸体的原理
                  有了上面的流程图之后要回答这一问题已经很容易了,出血/冻伤打断霸体的原理其实就是由于出血/冻伤对冲击力的替换晚于敌人霸体BUFF的冲击力替换,被霸体BUFF改成0号的冲击力又被出血/冻伤改成2号了,最后的结果就相当于在敌人没有任何霸体BUFF的情况下用2号冲击力打了它一下。(老实说都不知道这是FS有意为之还是只是巧合)
                  原理相当简单,我们直接用经典的结冰壶断水鸟的例子来过一遍整个流程:
                  (注意这里初始冲击力是2号只是因为结冰壶的冲击力恰好是2号,换成其他初始冲击力后续流程也是一样的)


                  IP属地:内蒙古9楼2025-10-08 23:24
                  回复
                    四、无法被出血/冻伤打断的霸体
                    知道出血/冻伤硬直的原理后,哪些霸体不能被打断也呼之欲出了:
                    1.首先就是上文提到的类型一:没有动画的霸体。毕竟我们已经知道出血/冻伤硬直本质上只是个2号/3号冲击力的硬直,如果敌人根本没有对2/3冲的硬直动画,那出血/冻伤肯定也无能为力了。
                    (要注意的是类型一二其实是相对于特定冲击力而言的,一个敌人可能对于一种冲击力是类型一的霸体,对于另一种冲击力又是类型二的霸体,关键还是看有没有对应硬直动画。一个例子是本文开头提到过的角战士,它其实是有硬直动画的,不过只有对4号等强冲击力的硬直动画,没有对2冲的动画,并且常态持有将所有冲击力替换为0号的BUFF。因此角战士对4冲是类型二,对2冲则是类型一,出血/冻伤无法对其造成硬直)


                    IP属地:内蒙古10楼2025-10-08 23:24
                    回复


                      IP属地:江苏来自Android客户端11楼2025-10-08 23:24
                      回复
                        2.其次,部分敌人是具有免疫出血/冻伤硬直的能力的。要解释这点,我们需要回到之前没有细看的代码部分:


                        IP属地:内蒙古12楼2025-10-08 23:25
                        回复
                          这里反复出现的env(1116, XXXX)含义为检测敌人身上是否具有XXXX号SpEffect,其中每段都在检测的5890和5891号SpEffect其实就相当于敌人的“免疫出血/冻伤硬直”BUFF,身上带有这两种BUFF之一的敌人就具有免疫出血/冻伤硬直的能力(实际上游戏中使用的似乎都是5890,5891并未使用)。可以看到对于此类敌人,整段代码都会因为不满足条件被跳过,出血/冻伤因此不会具有任何额外的打断能力,本文开头提到的血怪不吃出血硬直就是因为其具有5890号SpEffect(至此开头所有的例子都能解释了)。
                          游戏中具有5890号SpEffect的敌人大致包括:卢恩熊系列(包括大红熊)、血怪系列(包括血怪之首)、黑夜骑兵系列(包括马)、大龙虾系列、大蚂蚁系列、南瓜头系列、指虫系列、米兰达小花系列、灵珠猎人系列、巨型乌鸦系列、七鳃鳗、老白金之子、老狮子、超大杯神谕使者、结晶人/腐败结晶人、米利耶。(这些敌人中不一定每个个体都有该BUFF,另外其实还有一些别的敌人,但要么是没硬直动画,要么干脆免疫出血/冻伤,就不列举了)


                          IP属地:内蒙古13楼2025-10-08 23:25
                          回复
                            3.除此之外大概就是各种特例了,我也不知道会有哪些,没法一一列举。一个例子是女武神的开花在落地之前可以正常用出血/冻伤打断,但落地后动画中的791号事件(PartDamageAdditiveBlendInvalid)会导致即使是出血/冻伤造成的硬直也无法打断开花,不过像寒气冻雾这种没有伤害只有异常积累的招式依然可以钻hks函数的空子来打断落地后的开花。


                            IP属地:内蒙古14楼2025-10-08 23:26
                            回复
                              2026-01-27 04:08:14
                              广告
                              不感兴趣
                              开通SVIP免广告
                              非常好的科研帖


                              IP属地:山西来自Android客户端15楼2025-10-08 23:33
                              回复