blacksouls吧 关注:72,213贴子:768,062

【BS2攻略】速度机制(ATB)解析及其简单应用

只看楼主收藏回复

好像还没有人做过相关的东西
本攻略主要分为三个部分:前言、结论、应用。
一、前言
本次攻略是通过阅读工程文件脚本结合实际测试撰写而成。限于我对RUBY语法的了解,我并不能很深入地分析这些机制。欢迎任何人的交流讨论,更欢迎大佬对脚本做出更加深入到位的解读。
我在探索的过程中做了非常之多的尝试,花费了许多的时间和精力,提出了、证明了、否定了许许多多的猜想。这更让我体会到了BS2战斗系统的魅力所在,愈发觉得lv1挑战是一件很伟大的事。
由于走了很多弯路,所以实际的研究过程在这里不做展示;只说结论
BS2的速度机制采用ATB系统。ATB战斗系统,即Active Time Battle,最初由日本游戏公司SQUARE(就是做最终幻想的那家)提出并实现,其目的在于丰富传统回合制战斗的玩法。
更为详细的介绍可以看看这篇文章:《Square与它独创的ATB战斗系统》
链接:http://www.vgtime.com/forum/1079165.jhtml
特别感谢@睿智啦啦啦 在研究和撰写过程中提供的帮助!


IP属地:浙江1楼2022-01-24 15:54回复
    二、结论
    单位,指的是玩家、敌人或者队友,这些出现在战斗中并可以行动的东西。
    单位的一个回合(turn),指的是单位可以连续行动的机会。基本情况下,一个单位一个回合只能行动一次。通过道具、状态、装备等增加行动次数,就是增加一个单位在一个回合内能够连续行动的次数。不论一个单位连续行动多少次,依然只经过一个回合。
    游戏中我们看见的绿条槽(gauge),其数值被称作AP,上限固定4000,上限不受其他任何因素影响,数值在游戏中以百分比显示,向下取整。简单来说,AP槽满了就可以进入回合,能动了。

    战斗时,时间流逝,游戏每经过一帧,所有单位的AP都会增加“10+单位速度”的值。直到有单位的AP达到4000,进入属于他的回合。进入某个单位的回合时,时间停止,所有单位的AP停止积攒。这个单位在属于他的回合内下达行动指令,然后依次开始行动、行动结束、他的AP清零、离开他的回合。如果此时没有其他单位的AP是满的(同时存在多个满AP单位的情形之后再讨论),那么时间再度流动,所有单位的AP继续积攒。如此往复。下面给出一个例子。
    (例1)单位X的速度是234,那么每一帧他的AP就增加244。假设场上只有单位X(正常情况这不可能出现,至少有一个玩家和一个敌人),并假设AP从0开始增加,那么经过16+1帧(4000/244=16.393……),X的AP槽就满了,进入X的回合,X可以行动。
    需要注意的是,17*244=4148>4000,但是溢出的AP并不会保留,回合结束后还是从零开始计算。
    由此我们可以看出,理论上速度高于3990时就已经没有意义了,因为在仅仅一帧后AP就能回满。这是玩家在高难度下与敌人角力很重要的优势。


    IP属地:浙江2楼2022-01-24 15:56
    收起回复

      不过,实际情况中,玩家所要接受的条件其实更为宽松。为了减轻计算负担,写脚本的人将AP的刷新频率设定为每3帧一次。我们来看这个例子。
      (例2)场上有两个单位,速度为90的单位X和速度为990的单位Y。假设他们的AP从零开始,那么经过4000/(990+10)=4帧后,Y的AP满了。可是AP只有等到第6帧才会刷新,那么进入属于Y的回合时,X的AP为6*(90+10)=600,即15%。不难看出,在下次进入属于X的回合前,还要进入许多次属于Y的回合,X只能干瞪眼。
      相信读到这里的你已经想到我要说的下一个例子了。
      (例3)场上有两个单位,速度为1300的单位X和速度为9999的单位Y。假设他们的AP从零开始,那么经过1帧后,Y的AP满了。可是AP只有等到第3帧才会刷新,那么进入属于Y的回合时,X的AP就等于1310*3=3930,即98%。
      那么如果要在3帧后AP也达到100%,需要的最低速度是多少呢?答案是1324。也就是说,只要X的速度高于1324,只要双方AP都从零开始,不论Y的速度有多快,X都能和Y同时达到满AP!
      这在高难度dlc3挑战下是巨大的优势。只要玩家的速度高于1324,就能和对面在回合上有来有回!
      但同时也需要注意,不管你有多快,只要敌人的速度达到了1324,他们也能和你“有来有回”。


      IP属地:浙江3楼2022-01-24 15:57
      收起回复

        另外有一点值得注意,是关于初始AP值的。战斗开始,先制攻击时,先制攻击的单位初始AP从40%开始,被先制攻击的单位初始AP在0~10%之间取一个随机值。如果是通常情况,双方的初始AP在30~40%之间取一个随机值。逃跑失败时,下一回合AP在0~10%之间取一个随机值。


        IP属地:浙江4楼2022-01-24 16:02
        收起回复
          三、应用
          速度,在lv1挑战中是非常非常重要的考虑要素。让自己存活,让敌人死去,不论哪一点都离不开速度。事实上,速度并不是越高越好,合理地控制速度,可以衍生出千变万化的战术。接下来给出两个实际的应用场景。


          IP属地:浙江来自iPhone客户端6楼2022-01-24 16:18
          回复
            百度吞我楼


            IP属地:浙江来自iPhone客户端7楼2022-01-24 16:19
            回复
              1.无限镇魂歌
              在BS2中,状态的持续时间有两个计量方式,一个是行动结束型,一个是回合结束型。
              行动结束型,状态持续时间仅在状态持有者的一个回合中的所有行动结束后才会结算。BS2的大部分状态都是这种类型。你会注意到,不管敌人怎么动,你的状态右下角的数字都不会变;只有在你结束了属于你的回合之后,你的状态持续时间才会-1。(注意,在睡眠等控制状态下,你虽然动不了,但还是经过了属于你的回合)


              IP属地:浙江8楼2022-01-24 16:21
              收起回复
                回合结束型,状态持续时间在场上结束任意一个回合(不包括施加该状态的回合)后,不论这个回合属于哪个单位,都会结算。例如领域类的状态就是这样(dlc3中领域效果是通过施加状态来实现的)。在例2中,如果X身上有一个回合结束型的状态,那么在下一次进入属于X的回合时,由于先前已经进入并结束了许多次属于Y的回合,X会发现这个状态的剩余时间已经减少了很多。

                很重要的一点:技能的CD虽然不是状态,但是其计量也是回合结束型。因此,如果你的速度很慢,别人速度很快,你在使用一次技能后,等到下次再进入你的回合时,技能可能已经转好了。


                IP属地:浙江9楼2022-01-24 16:23
                回复
                  吞楼的话就截图发出来吧


                  IP属地:重庆来自Android客户端10楼2022-01-24 16:23
                  回复
                    很重要的一点:技能的CD虽然不是状态,但是其计量也是回合结束型。因此,如果你的速度很慢,别人速度很快,你在使用一次技能后,等到下次再进入你的回合时,技能可能已经转好了。
                    以镇魂歌为例:使用镇魂歌后,在三个属于你的回合期间(包括使用镇魂歌的这个回合)能够免疫【战斗不能】。如果能保证在第二次进入属于我们的回合之前,镇魂歌的就CD已经转好了,我们就可以让镇魂歌覆盖整场战斗!、
                    从这样

                    变成这样


                    IP属地:浙江11楼2022-01-24 16:23
                    收起回复
                      那么在属于我们的两个
                      回合之间,我们得确保多少个敌人的回合被结束呢?答案是4个。也就是说,我的AP要分四次从0增加到4000,每次至多增加4000/3。在敌人速度足够快的情况下(高难度挑战基本符合这一条件),每次增加的是3帧的量,那么就有:
                      3*(速度+10)≤4000/3
                      算得速度最大值为434。
                      这一结论在多场战斗中都能得到运用。在保证自己不眩晕、不被沉默等的前提下,压低自己的速度,利用无限镇魂歌,可以用幽火活活把boss磨死。



                      IP属地:浙江12楼2022-01-24 16:25
                      收起回复
                        下一个应用场景是冬钟之风。我得咕一段时间,因为目前新的lv1挑战档还没打到那里


                        IP属地:浙江来自iPhone客户端13楼2022-01-24 16:31
                        收起回复
                          邦顶


                          IP属地:四川来自Android客户端14楼2022-01-24 16:51
                          收起回复
                            支持一下楼主,这个工作量确实很大。我之前粗略看了下脚本得出了3990就是速度能影响行动条的最大上限的结论,但是实战测量结果完全不是这么回事,原来是因为判定时机不是每一帧啊


                            IP属地:江苏来自Android客户端15楼2022-01-24 16:59
                            收起回复
                              太牛啦


                              IP属地:中国香港16楼2022-01-24 17:02
                              回复