1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

为什么这招能打中你,奥妙都在一个框里面(多图)

本帖由 漂亮的石头2015-04-08 发布。版面名称:知乎日报

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    486,020
    赞:
    46
    方块的战争:浅谈格斗游戏的精髓

    [​IMG] xizongbu

    原文地址:机核网

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

    [​IMG]

    不知道有多少朋友听了之前我们录制的“ACT 之难”的专题节目,在节目中我们的嘉宾白夜曾经用了“框”的概念为大家介绍了角色碰撞与攻击的判定是如何运作的,不少玩家也表示对此非常好奇。而今天我们也请到资深格斗游戏爱好者Mashers为大家好好讲讲格斗游戏发展以来的各种“框”,到底有多神秘。

    “框”的奥秘

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

    [​IMG]

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

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

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

    [​IMG]

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

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

    重新认识“判定”

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

    1、攻击判定

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

    [​IMG]

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

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

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

    [​IMG]

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

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

    2、受创判定

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

    [​IMG]

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

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

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

    3、投技判定

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

    [​IMG]

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

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

    [​IMG]

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

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

    [​IMG]

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

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

    4、碰撞判定

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

    [​IMG]

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

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

    [​IMG]

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

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

    [​IMG]

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

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

    5、飞行道具判定

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

    [​IMG]

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

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

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

    方块的战争

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

    [​IMG]

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

    有些朋友可能会问,为什么非要把人物框到一个方块里,我们又不是在玩 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...

    ———————————————

    发自知乎专栏「机核说
     
正在加载...