方块的战争:浅谈格斗游戏的精髓 xizongbu 原文地址:机核网 为什么这招儿能打中你,为什么逆向能有判定,为什么我都跳了还能吃你的必杀,种种奥妙其实都能用一个“框”字来解释。 不知道有多少朋友听了之前我们录制的“ACT 之难”的专题节目,在节目中我们的嘉宾白夜曾经用了“框”的概念为大家介绍了角色碰撞与攻击的判定是如何运作的,不少玩家也表示对此非常好奇。而今天我们也请到资深格斗游戏爱好者Mashers为大家好好讲讲格斗游戏发展以来的各种“框”,到底有多神秘。 “框”的奥秘 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 格斗。为什么不能有圆形,三角形甚至五角星形的判定框呢? 答案其实是可以的,但是开发者需要针对每种形状做不同的碰撞处理计算。如果所有的框框都是长方形或者正方形,那么碰撞计算就会容易很多。所以为了降低开发的复杂程度(也为了保证游戏运行的帧率), 各种外形特异的人物和道具就都被框了起来。 今天 Mashers 的授课暂且先到这里,如果关于格斗游戏您还有什么感兴趣的点,也欢迎经常来留言或者投稿,我们非常欢迎各种朋友的分享,另外大伙儿有空也可以去他的个人主站一逛,回头见。 新浪微博 @Mashers Mashers- 格斗宅们关注的东西 ————————————————————————————————————— 资料引用 [1] https://code.google.com/p/mame-rr/wiki/Hitboxes [2] Improved 3rd Strike hitboxes [3]kof95 through kof2001 hitboxes [4]Hugo / Strong hitboxes display... [5]Hugo / Gigas Breaker hitboxes display... [6]Gouki / Shun Goku Sastu hitboxes display... [7]KOF97 判定框查看方法及判定框颜色定义全解析!!! [8]Hugo / Megaton Press (LK) hitboxes display... ——————————————— 发自知乎专栏「机核说」