找回密码
 立即注册
搜索
查看: 2156|回复: 12

[多平台] 游戏帧数究竟是怎么影响招式判定的?

[复制链接]
     
发表于 2020-9-14 09:54 | 显示全部楼层 |阅读模式
例如60fps的鬼泣4,解除帧数限制后就可能出现尼禄三红前冲变成七红前冲的夸张情况,多平台游戏上这种情况屡见不鲜,很多游戏的招式尤其是多段判定的动作容易被影响。这是什么原理?反过来低于60帧会不会也有影响?拖慢和丢帧两种类型在判定上又有什么区别?
回复

使用道具 举报

     
发表于 2020-9-14 10:01 | 显示全部楼层
掉帧是游戏显示的时候帧数不够,游戏实际上还是以60帧的标准再计算,有些游戏像生化2re60帧的双倍刀法,伤害计算应该就是按帧来算的,伤害框和受击框接触的每一帧计算一次伤害,那么60帧就会让伤害翻倍
回复

使用道具 举报

     
发表于 2020-9-14 10:49 | 显示全部楼层
可以参考下这篇关于怪物猎人中帧率的测试:bit.ly/MHWEffectsOfFPS
结论部分大概翻译下:对于能适应不同帧率的动作,比如设计的时候是60帧率每3帧判定一下,游戏程序会把其换算成时间单位 3 / 60 = 0.05 秒,然后规定至少要间隔这么久才进行下一次判断。如果在30帧率运行这个程序,跑完1帧需要 1 / 30 = 0.033 秒,还不到 0.05 秒的间隔,所以要每2帧(0.066秒)才判定一下,这个判定间隔就变相拉长了。
对于其它限死帧数的动作,比如不管帧率多少它都是每3帧判定一下,那么游戏程序在120帧率运行下(3 / 120 = 0.025 秒)每次判定的间隔就会是60帧率下(3 / 60 = 0.05 秒)的一半。
回复

使用道具 举报

     
发表于 2020-9-14 11:02 来自手机 | 显示全部楼层
有一种设计是将帧与伤害绑定,即动作运行到某一帧时造成伤害,这种设计在丢帧时可能伴随丢失伤害。

----发送自 STAGE1 App for Android.
回复

使用道具 举报

     
发表于 2020-9-14 11:04 来自手机 | 显示全部楼层
当年低配置跑鬼泣4,整个游戏速度会变慢,我记着好像光荣游戏也有类似情况,不掉帧,直接减速,
应该是帧数直接等于游戏速度,这种制作方式挺老派的,也容易出问题,
回复

使用道具 举报

     
发表于 2020-9-14 11:14 | 显示全部楼层
现在游戏基本都是物理帧和画面帧分开了,各种各种判定和逻辑都放在物理帧处理,画面帧可以调,只要CPU内存没问题游戏不会拖慢,GPU处理不过来只是画面不断跳帧而已。

但历史上不少游戏(街机和主机这种固定帧数不可调的为主)是画面帧和物理帧不分的,并且部分游戏至今也会有分不清的情况(记得原始版血缘30帧锁死,黑客大佬调到60帧就会判定错误),所以讨论格斗游戏、动作游戏的时候很喜欢用"帧"这个概念。
回复

使用道具 举报

     
发表于 2020-9-14 11:14 | 显示全部楼层
现在游戏基本都是物理帧和画面帧分开了,各种各种判定和逻辑都放在物理帧处理,画面帧可以调,只要CPU内存没问题游戏不会拖慢,GPU处理不过来只是画面不断跳帧而已。

但历史上不少游戏(街机和主机这种固定帧数不可调的为主)是画面帧和物理帧不分的,并且部分游戏至今也会有分不清的情况(记得原始版血缘30帧锁死,黑客大佬调到60帧就会判定错误),所以讨论格斗游戏、动作游戏的时候很喜欢用"帧"这个概念。
回复

使用道具 举报

     
 楼主| 发表于 2020-9-14 11:15 | 显示全部楼层
杉田悠一 发表于 2020-9-14 11:04
当年低配置跑鬼泣4,整个游戏速度会变慢,我记着好像光荣游戏也有类似情况,不掉帧,直接减速,
应该是帧数 ...

鬼4优化太好所以我那几台究极废铁笔记本基本都能跑60帧所以没啥印象。经历过拖慢最严重的情况,应该是Xbox360跑忍龙好汉坡,还有破笔记本跑究极风暴3,以及psp模拟真三国无双。都是拖慢到基本没法玩的情况。
回复

使用道具 举报

发表于 2020-9-14 11:17 | 显示全部楼层
生化2重制的小刀伤害吧,我记得pc版帧数上去以后伤害爆炸
回复

使用道具 举报

     
发表于 2020-9-14 13:55 来自手机 | 显示全部楼层
说到底估计还是卡婊技术不到位罢了

—— 来自 Google Pixel 3, Android 11上的 S1Next-鹅版 v2.4.1
回复

使用道具 举报

     
发表于 2020-9-14 14:36 | 显示全部楼层
本帖最后由 垃圾网站上 于 2020-9-14 14:39 编辑

一般来讲游戏引擎的主循环运行时有两套回调用于处理逻辑,一个发生在画面帧渲染前后,另一个发生在物理事件前后。
动作游戏的伤害判定本质就是碰撞盒检测,属于物理事件,如果处理逻辑放在画面帧渲染前那么一旦帧数不在程序员预想的范围内就可能会出问题

典型的我举个有子弹的射击游戏的例子,程序员原本将画面锁定了每秒30帧,在每一帧渲染前根据帧间时间移动子弹(deltaV =speed * deltaT),判定子弹是否打中了敌人,并在同一帧计算伤害。
因为子弹速度比较快程序员觉得在打中后的下一帧子弹移动到的位置必定不会和敌人有物理碰撞(已经穿过了敌人),所以并没有做更多处理,游戏开卖了。
但没想到游戏发售后玩家用破解手段把游戏渲染帧解锁到每秒120,子弹碰撞后下一帧仍在敌人体内,那么双倍伤害就形成了
回复

使用道具 举报

     
发表于 2020-9-14 15:16 | 显示全部楼层
杉田悠一 发表于 2020-9-14 11:04
当年低配置跑鬼泣4,整个游戏速度会变慢,我记着好像光荣游戏也有类似情况,不掉帧,直接减速,
应该是帧数 ...

光荣的游戏可以在设置里选择是帧同步还是时间同步,pc版是两种判定方式都有的
回复

使用道具 举报

     
发表于 2020-9-15 19:14 | 显示全部楼层
本帖最后由 zxlice 于 2020-9-15 19:20 编辑

比如锁定60帧一般指以1/60秒渲染图像,while (elapsed >= frameRate)
但是在进入这个判断后,要先计算这段时间内物理啊逻辑啊多少次,这些都是离散的delta t,比如碰撞检测,你不可能用一个很大的t(1/60)算一次就完事,会穿墙,要分割为片段算完,再用最后的结果更新图像
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-3 17:18 , Processed in 0.028206 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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