浅谈格斗游戏的精髓——方块的战争

为什么这招儿能打中你,为什么逆向能有判定,为什么我都跳了还能吃你的必杀,种种奥妙其实都能用一个“框”字来解释。

“框”的奥秘

2D格斗游戏对于广大玩家来说应该都不陌生。从开创系列的鼻祖街霸到红遍国内大江南北拳皇,都满载着格斗迷们热血和回忆。任何一名硬核格斗玩家对于每届的斗剧和EVO的执着,不亚于球迷们对于世界杯的追捧。

得益于近些年《街霸4》的宣传与官方活动,北美的EVO也成为了每年一度的格斗盛会

作为一名沉迷于2D格斗游戏的玩家,我对于游戏背后运作原理有着浓厚的兴趣。所以希望借着这此机会,为大家浅析一下格斗游戏的运作原理。

2D格斗游戏其实就是一堆方块的碰撞。这听起来可能会让你想起俄罗斯方块,但是为了让大家有个直观的感受,我们用下图来做解释:

图1. 隆和Rose的判定框[1]

在这幅图中,除了左边在发升龙的Ryu,和右边在出对空指令投的Rose外,我们还能看到一些叠在一起的带颜色框框。这些方框就是判定框。它们才是格斗游戏里真正的“主角”。

重新认识“判定”

格斗游戏里常见的判定框分为以下几类:攻击判定、受创判定、投技判定、碰撞判定、飞行道具判定,下面我们来分别介绍。

1、攻击判定

作为格斗游戏里最为重要的判定框,攻击判定直接决定了你的拳脚是否打到了对方

图2. 红色区域为攻击判定框[2]

从上图中我们可以看到,两边的春丽都在用不同的重拳攻击对方,在攻击发生时,会出现红色的判定框围绕在她们的拳头旁。这个就是攻击判定框。当这个方框与对方身体重合时,系统就会认为你打到了对方。

聪明的你一定会想到,这个框越大,在对战中不就越占便宜吗?确实是这样,攻击判定框的大小直接影响到了一款格斗游戏的平衡度:

图3. 如月影二(左)超大的判定框[3]

所以在对战中,有时候你觉得对方明明没碰到你,但还是中招了,那很有可能就是这些看不到的判定框在作怪。

2、受创判定

从名字应该很容易理解,这个判定框所画出的范围如果和攻击判定框重叠,那么你就被打中了:

图4. Hugo站中收招时所出现的深蓝色以及浅蓝色受创判定[4]

上图中出现了两种受创判定框,深蓝色的受创判定是人物在站立时就固有的,在每个姿势中都会出现。但是浅蓝色的判定是只有在招式发出的那几帧才有,并且会在收招后消失。

胖胖的角色受创判定会比较大,所以他们成为了连段视频中最受欢迎的沙袋

3、投技判定

投技判定的原理和攻击判定一样,但是如何判断投技是否命中会因游戏而异。我们这里用《街霸33》来举例

图5. Hugo SA1超杀发动瞬间的橙色绿色判定框[5]

上图中,Hugo近身超杀的瞬间会出现投技判定(橙色判定框)。如果橙色框与对面的绿色被投判定框重叠,则超杀成立。下图是豪鬼瞬狱杀的判定(是的,瞬狱杀是个投技):

图6. 豪鬼瞬狱杀那“短小”的投技判定[6]

我们可以看到街霸33中的地面投技判定都集中在脚部。这是为了防止站在地面的角色把跳在空中的对手给抓下来。当然,某些为了对空所设计的投技除外:

图7. Hugo对空超杀的判定[8]

我们可以看到Hugo自身的投与被投判定(橙色和绿色)的判定都增大了不少。

4、碰撞判定

碰撞判定是指游戏人物自身在场景中所占的面积。试想一下,当两个角色面对面顶着走时,双方是没法穿过对方的。造成两个人顶住的原因就是下图中绿色的碰撞判定(判定框的颜色都是模拟器自己定义的,所以没有某个颜色是固定的):

图8. 豪鬼与春丽撞到一起

不要以为碰撞判定不重要,有时候碰撞判定的错误设定也会导致招式变的极不平衡。最著名的例子就是拳皇97里的八稚女

图9. 八神背上高耸淡蓝色碰撞判定[7]

为什么97里对战时要禁用八稚女对空呢?为什么一个贴着地板滑行的动作可以打到空中跳过来的对手呢?因为当对手跳过来时,会被八神高高的碰撞判定(淡蓝色区域)给挡下来,然后落到他头上的攻击判定框上。所以为了修订这招的BUG,98里做了如下调整:

图10. 经过修订后的淡蓝色碰撞判定[7]

当背上无形的“驼峰”被降低后,八神从此可以顺滑的从对面下方穿过。

5、飞行道具判定

飞行道具就是指游戏里的各种波动。当一个波发出去后,它自身就具有了攻击判定,这个就是飞行道具判定:

图11. Remy的手刀和Urien的镜子[2]

从上图中我们可以看出,每个飞行道具都有一个粉色的框框,这个就是飞行道具的判定框。判定框本身的大小并不一定要符合视觉上的大小。比如Remy扔出的手刀,判定大小并不是一个扁平长方形。Urien的镜子也不像画中那样形成一个斜面,而是一个竖长条的判定。

注:图11中各种白色的十字代表了各个物品以及人物的中心。

方块的战争

形形色色的格斗游戏中存在着各种判定框,本文只总结了格斗游戏中最常见的判定框。通过图解,我们了解了2D格斗游戏最基础的构成。就像文章开头所说的,在精美的像素画背后,其实是各种“方块的战争”。

直到今天,格斗游戏依旧沿用传统而有效的判定框

有些朋友可能会问,为什么非要把人物框到一个方块里,我们又不是在玩Minecraft格斗。为什么不能有圆形三角形甚至五角星形的判定框呢? 答案其实是可以的,但是开发者需要针对每种形状做不同的碰撞处理计算。如果所有的框框都是长方形或者正方形,那么碰撞计算就会容易很多。所以为了降低开发的复杂程度(也为了保证游戏运行的帧率), 各种外形特异的人物和道具就都被框了起来。

来源:机核网 /xizongbu