爱玩网百万稿费活动投稿,编译 涂之录,未经授权请勿转载
数据总能让你直观地去判断一个游戏的好坏。销量,售价,评分,这些数字总能引起我们的购买欲望。但是还有一组特殊数据,要是它达不到要求,估计你会连玩游戏的欲望也没有了。我们都知道《最后生还者》是一款把PS3机能发挥到极致的游戏,其精美的画面总是让我们流连忘返,但你一定不希望它卡成精美的PPT吧?所以在谈论众多游戏数据时,我们永远绕不开一个老生常谈的话题——那就是游戏的帧率。
你不会想玩只有10帧的《最后生还者》吧?
首先我必须澄清一点,就是在我们口头讨论游戏流畅度的时候,总是把“帧数”(Frame)和“帧率”(Frame rate)混为一谈。其实在评测游戏流畅度的时候,帧率才是那个重要的指标,而不是帧数。关于这一点我会在下文中展开讲。
那么为什么帧率那么重要呢?所有的老玩家应该都知道帧率是游戏体验的基石,它的高低与稳定与否直接决定了游戏的流畅性与可玩度。是的,帧率几乎是游戏流畅的全部。那我们就自然而然地引出下一个问题:帧率是不是越高越好呢?其实不然,具体原因《游戏帧数:并非越高越好,稳定更重要》这篇文章已经说的很清楚了。但这里我想补充的是:除了帧率,帧生成时间与单帧画面(不撕裂)对游戏体验来说也很重要。
说到这里,有些玩家可能已经有点晕了。所以在正片开始之前呢,我提议以小时候经常玩的翻页动画为切入点,让我们先对几个关于帧的重要概念做一个大致的回顾。
小时候常玩的翻页动画
帧(Frame):一幅字画叫一帧,这是字典上对帧的解释。其实在游戏中大致也是如此,帧就是影像动画中最小单位的单幅影像画面。简单地来说,一帧就是一副静止的画面,连续的帧就形成了流畅的动画。拿翻页动画举例的话,其中的一页就代表着一帧。其实游戏也是这么动起来的,只不过在这里“翻”的这个过程是由计算机来完成的。
帧数(Frames)/帧率(Frame Rate):普通玩家平时很容易混淆这两个概念。帧数指一般指单位时间内帧的生成数量,而帧率指的则是单位时间内显示的帧数(一般以FPS为单位)。先举个简单的例子:就像翻页动画,帧数代表着你翻到的那一页的页数,而帧率则代表你翻页的速度。
再举一个不算复杂的例子:如果一个动画在一秒钟内的帧数为60帧,两秒钟内的帧数为120帧,那么它的帧率则为60FPS。如果平均帧率越高,那么画面越流畅。值得一提的是:在主机上,30FPS一般是游戏流畅运行的最低标准,而60FPS则被认为是比较完美的。
帧生成时间(Frame Time):顾名思义,帧生成时间指的就是渲染单独一帧所需的时间。也就是在翻页动画中翻一页所需的时间,所以生成帧的时间一般非常短,通常以毫秒为单位。那这和游戏流畅度又有什么关系呢?让我们先来做一点小小的计算:如某秒的帧数为30帧,那么已知每秒30帧是流畅游戏的最低标准,1s又等于1000ms,所以平均每帧的生成时间为1000/30=33ms。也就是说只要每帧的生成时间小于33ms,那么我们是难以察觉到游戏中的卡顿的。如果帧生成时间忽上忽下,就算平均下来的FPS为30以上,整个游戏流程下来也不会太流畅。如果你不是很理解这个概念,下面这个帧生成时间图能更好地帮助你更好地来理解这个概念(绿色代表流畅,红色代表不流畅)。
33ms以下游戏就基本流畅了
说完了这么多,我想我们已经对帧率分析的基本概念有了一个了解。在PC平台上,我们可以轻松地借助第三方软件(Fraps),或游戏自带的跑分程序来对游戏里的帧率表现有一个了解;而在主机平台上,我们没有现成的工具去衡量,靠肉眼去判断又不准确客观,但游戏里的掉帧我们又是有目共睹的。那应该怎么办呢。外媒Digital Foundry告诉我们主机的帧率分析一般分三步走:采集——分析——对比。下面就让我们一步一步地进行解析吧:
准备工作
就像我之前讲的,PC上有很多现成的工具(如Fraps)来测试游戏的帧率,但由于主机系统相对封闭,我们并不能在游戏主机上直接测试游戏的帧率表现。在这里,我们选择“曲线救国”的方式:即先把主机的画面搬到PC上,然后再对画面里的帧率进行分析。在整个过程中,“搬”这个至关重要的步骤就由采集卡负责。我们都知道,一块采集卡能把来自主机的信号转换为电脑视频文件,而这些可打开的视频便为游戏日后的分析埋下了基础。不过在这里,我想强调的是:这块采集卡必须足够贵,足够高端(1080P 60FPS起步),也只有这样,搬运自主机的视频文件才能做到足够“无损”。如果搬运来的视频与游戏实机画面有出入,那么测试结果准确也无从谈起。
这块采集卡就要6000多RMB了
拿到这些无损视频文件以后,我们以游戏《命运》为例,把它导入到DF自家的分析软件FPS GUI中。
在这张图的左边中,从上到下我们可以依次清楚地看到当前帧率,帧生成时间表,和帧率变化表。
而在右边的这些设置看似复杂,实际上与帧率测试没有什么太大关系。这些设置一般决定了图表的显示位置,显示范围,以及内部的颜色,字体等等。
FPS GUI软件概览
由于是初次导入,我们可以看到目前这些图表的设置并不合理(显示当前帧率的地方遮住了游戏的HUD),在经过一些快速修正后,我们来看看成果。
修正后的画面
然后我们再来看看喜闻乐见的跨平台对比,我们分别导入两个平台的重复片段视频,并设置成分屏显示,在图中我们可以清楚地看到左边为PS4的帧率情况,右边为XBOX的帧率情况,而图表中不同颜色的线则代表不同平台。
跨平台对比
数据分析
我们已经大致了解了这款软件的工作方法,那就让我们再次深入,一探帧率测评的究竟。这次我们从Composite(合成)选项卡转到Video(视频)选项卡。现在,我们可以从右边的information(信息)栏中一目了然地看到关于帧的详细信息,下面我就对此栏做一个简单的汉化。
右边有各项详细信息
视频信息 帧信息
总帧数:3224 帧数:第2840帧
总撕裂帧数:3(0.09%) 是否属于重复帧:否
总重复帧数:1613(50.03%) 是否属于撕裂帧:否
平均帧率:29.98 撕裂帧位置:无
最低帧率:29FPS 当前帧率:30FPS
最高帧率:31.03FPS 渲染帧时间:33.33ms
最高正常帧数:1到2621帧共2620帧
最高撕裂帧数:2621帧到2623帧共2帧
有了上表,我们就大致上了解游戏的运行状况,比如画面撕裂是否常见,帧数是否稳定,以及当前帧生成时间(渲染帧时间)。那么这些信息是否一定准确呢?有了这些信息是否就够了呢?让我们带着这些疑问,进入下一个环节。
画面对比
要说游戏帧率评测的基本原则是什么,其实很简单,就是找到两帧之间的不同。计算机直接导出的结果可能有误,但逐帧对比一定没问题,不过有时候它们之间的差别又很难用肉眼直接对比出来。这时候,这款软件的热点图功能(heat map)就派上了用场。
用于逐帧对比的热点图
如图所示,这就是该帧的热点图。热点功能把对比定位在了像素级层面上:如果图中的颜色越亮,代表着与前一帧的区别越大,黑色则代表没有任何区别。
而当我们把画面移到下一帧时,我们发现整个图像是暗的,这代表着这一帧与上一帧的画面没有任何区别。重复试验,我们发现几乎整个游戏流程都是这样的排布。
全黑代表没有区别
其实在60帧格式下录制的视频中,像命运这样锁30帧的游戏就应该有着一帧是重复帧,一帧是全新帧这样的排布。而上述现象则刚好验证了命运帧率为30帧的事实。
我们再看另一组对比,这次我们依次导入PS版与XO版的《蝙蝠侠阿卡姆骑士》,与《命运》不同,《阿卡姆骑士》对主机的机能要求更高,所以我们在两个平台上都找到了掉帧与画面撕裂。
因为掉帧很容易在帧率变化表中找到,而画面撕裂则不然。所以找到画面撕裂的时空位置又是游戏帧率评测的一大重点。现在先让我们切换到一帧有撕裂的地方。如图所示,在PS4画面的上部我们可以看到一个非常明显的撕裂。这处撕裂实际上是由程序的算法计算而来,并由短横红线标在画面上,而图片的下方红竖线则表示撕裂的持续时间与撕裂的大致位置。
左边的画面撕裂非常明显
前面这组图片展示的可能不太清楚,那么让我们换张对比图再做仔细讲解
这里画面撕裂非常频繁
如图所示,首先我们要明白蓝色代表XOS,绿色代表XO,在下方的帧率表当中,以横中线为界(上为XOS的情况,下为XO的情况),表中竖中线代表当前帧。红色所占该线区域则为撕裂位置(所以我们看到XO的画面上并没有撕裂),而红色区域则代表撕裂时间(两个平台不分伯仲)。
尽管这种红线算法省时省力,不过算法总归算法,也会有出错的时候。当我们觉得这帧撕裂的状况不确定时,我们可以再次利用热点图进行像素级别上的对比。
用热点图找撕裂位置
就像我之前所说,如果图中的颜色越亮,则代表着与前一帧的区别越大,纯黑色则代表与前一帧没有任何区别。从图上我们可以看出上一帧的部分画面在这一帧的上部出现了滞留(黑色部分)。因此我们看到了画面撕裂。如果我们想让这些区别显得更加明显一些,我们可以切换为黑白模式,在这种模式下,只有相同(黑)与不同(白)两种表示方式,因此我们可以更加直观地找出区别。注:上图与下图不为同一帧。
用黑白模式找撕裂更明显
既然说到手动检查,那么我们不得不再提一下左下角的帧生成时间表。这里的帧产生时间表不仅可视化了游戏过程的流畅程度,而且我们还可以通过这个图表来判断帧率的测量是否准确。通过开头的计算我们已经知道30fps对应的帧生成时间为33ms,如果在视频的某个区间内出现了大量的掉帧情况,而帧生成时间还是维持在33ms左右,那么测量数据里一定有一个不准确,所以这里的帧生成时间就给整个测试上了一层保险。
十分有用的帧生成时间表
写在最后
最后其实我想说,对于玩家而言,测试主机帧率的实际意义与可行性并不大(光采集卡可能就已经比主机贵了),但是从侧面来说,这也给了我们一个了解主机游戏测评的机会,满足了我们的好奇心。
其实对大众来说,做这种测试的最大意义还在于其输出结果。通过帧率测试的数据,我们可以很直观地看出一款游戏的优化是否良心,或者该在哪个平台上购买该游戏,这给玩家和厂商都是一个巨大的参考。
来源:Digital Foundry
编译:涂之录