游戏开发论坛

 找回密码
 立即注册
搜索
查看: 29005|回复: 32

[分享] 方块的战争:浅谈格斗游戏的攻击判定方法

  [复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2015-4-9 11:47:19 | 显示全部楼层 |阅读模式
文 / Mashers 授权GameRes游资网发布。

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

1.jpg

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

  “框”的奥秘

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

2.jpg

  得益于近些年《街霸4》的宣传与官方活动,北美的EVO也成为了每年一度的格斗盛会
作为一名沉迷于2D格斗游戏的玩家,我对于游戏背后运作的原理有着浓厚的兴趣。所以希望借着这此机会,为大家浅析一下格斗游戏的运作原理。

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

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

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

  重新认识“判定”

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

  1、攻击判定

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

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

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

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

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

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

  2、受创判定

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

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

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

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

  3、投技判定

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

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

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

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

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

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

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

  4、碰撞判定

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

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

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

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

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

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

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

  5、飞行道具判定

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

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

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

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

  方块的战争

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

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

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

  相关阅读:游戏中常见的资源获得与资源转换机制

  新浪微博 @Mashers

  Mashers-格斗宅们关注的东西

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
发表于 2015-4-9 12:24:18 | 显示全部楼层
本帖最后由 herosone 于 2015-4-9 21:44 编辑

想当年我第一次看到这类帖子还是97年。
——————————————————————————
自己查论坛里“判定框”关键词,可以看到我的那些回复,再看看发表和修改日期。
http://bbs.gameres.com/thread_309374_1_1.html
http://www.gameres.com/thread_312375_1_1.html

这些都有提到。
————————————————————————————
http://blog.csdn.net/linking530/article/details/16880945
找到了一个关于拉框错误的帖子,希望大家看看,事实上楼上这个如月影二的拉框就过大的,将军的那个脚的拉框又有被击中的判定。

17

主题

1629

帖子

5980

积分

论坛元老

Rank: 8Rank: 8

积分
5980
QQ
发表于 2015-4-9 12:50:33 | 显示全部楼层
这就精髓了?

0

主题

62

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
发表于 2015-4-9 13:06:53 | 显示全部楼层
下个mugen引擎来自己做做就什么都懂了

8360

主题

9283

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29940
发表于 2015-4-9 13:17:04 | 显示全部楼层
__BlueGuy__ 发表于 2015-4-9 12:50
这就精髓了?

0

主题

285

帖子

1380

积分

金牌会员

Rank: 6Rank: 6

积分
1380
发表于 2015-4-9 13:46:33 | 显示全部楼层
很有意思啊,以前玩格斗的时候只是大概明白一点,这么清晰的图示还是第一次见

4

主题

726

帖子

3422

积分

论坛元老

Rank: 8Rank: 8

积分
3422
发表于 2015-4-9 13:55:50 | 显示全部楼层
__BlueGuy__ 发表于 2015-4-9 12:50
这就精髓了?

那你给来点精的?

17

主题

1629

帖子

5980

积分

论坛元老

Rank: 8Rank: 8

积分
5980
QQ
发表于 2015-4-9 14:08:23 | 显示全部楼层
danmo5 发表于 2015-4-9 13:55
那你给来点精的?

没时间写文章啊,

4

主题

726

帖子

3422

积分

论坛元老

Rank: 8Rank: 8

积分
3422
发表于 2015-4-9 14:11:04 | 显示全部楼层
__BlueGuy__ 发表于 2015-4-9 14:08
没时间写文章啊,

有时间看论坛喷那么多句 没时间来点 “精” 的是吗
也是屌

26

主题

607

帖子

2276

积分

金牌会员

Rank: 6Rank: 6

积分
2276
发表于 2015-4-9 14:12:54 | 显示全部楼层
__BlueGuy__ 发表于 2015-4-9 12:50
这就精髓了?

来吧,秀出你的“高见”?
别当嘴炮
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-7-27 14:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表