2012-08-22 83 views
1

我正在用“cocos2d”制作“又一款iOS”游戏,我现在想知道每秒可接受的精灵动画数量足以满足哪些要求?iOS Sprite动画帧速率

这更多的是一个理论问题,我必须画出多少个动画帧才能使游戏看起来很好。例如:动画专家会喜欢为一秒钟的动画画出32帧,而我认为4帧就足够了。我不想牺牲任何人都不会注意的内存。那么对于第二个精灵动画来说画什么最好的帧数呢? 4,6,8,12,16,20,24,32?

更新:如果我为新的iPad创建高分辨率图形,那么24帧的单个精灵动画不适合2048x2048像素的纹理图集:(我不想有很多这些出于RAM的外观。或者我在这里首先想到的是非常错误的东西?

回答

3

人眼和它的大脑界面,人类视觉系统每秒可以处理10到12个独立的图像,感知他们单独。

[Source]

所以我会考虑比这更高的东西,以确保您的动画顺利进行。

至于原因,我真的不知道,我想建议这些数字的倍数,所以我一般去24fps的角色动画,往往要少得多,倒或许6fps的一火球(例如)

然而,当它回到它,我还没有真正注意到在较高的速度运行动画放缓。您可能会很好地衡量以不同帧率更新所花费的时间。


+0

那么,如果我为新的iPad创建高分辨率图形,那么24帧的单个精灵动画不适合2048x2048像素的纹理地图集:(我不想有很多这些出来或者我在这里首先想到了一些非常错误的东西? – clops

+1

我设计了一种通过重复使用艺术来大幅减少动画所需的图形的方法,例如只有一个头,并在每个帧的不同位置之间移动它例如,看看[这个问题](http://stackoverflow.com/questions/7936003/converting-flash-animation-to-cocos2d)以获得更多信息。我没有使用* flash *作为动画,但是如果你能为你的情况找到类似的东西,那么概念应该是一样的 –

1

它不一定归结为许多帧,而是平滑。人眼的帧率并不像它易受变化那样大,甚至很快。

詹姆斯的答案是正确的,即每秒少于12帧的东西通常被认为是不连贯的。与其试图通过瞄准足够多的数字来避免颠簸,不如尝试几种不同的速率,并选择大多数人认为仍然平滑但符合预算的帧频。 (很明显,你还必须考虑例如角色动作的起搏。)

此外,装饰性或不重要的事物不必具有更多的帧。为帧速率选择一个好的最低公分母可以避免奇怪。

2

在我看来在这里说的最重要的事情是:

这件事不会为你的游戏的成功

无论帧率人眼可以看到或不必需的,如果你正在制作一款适合iOS的2D游戏,最重要的是该游戏玩起来很有趣,看起来很酷并且运行顺畅。专注于此。

从一系列动画开始,使您可以简单方便地开发(即不需要太多的工作,不用担心大小)如果看起来不错,您会看到当您玩游戏时或不,不要担心。如果不这样做,问题可能不是框架的数量,而是框架在特定运动中说明了什么内容。

至于实际的讨论,24 fps是为电影选择的格式,因为它被认为眼睛无法区分,因为它每秒捕捉大约12帧。然而事实证明,可以看出以24fps显示的视频素材和以更高的帧率显示的素材之间的差异。其原因是人脑聪明,不能被幻觉欺骗。

但是我认为这个讨论是针对电影制作者而不是2D游戏制作者。动画24fps很可能是一个巨大的矫枉过正。人们对在小屏幕上玩的游戏的期望几乎没有。他们将专注于可玩性,平滑度和一般感觉以及令人敬畏。如果你正在制作3D游戏,动画是由3D引擎通过动态插值来计算的,因此动画可以(理论上)高达60fps(或者任何游戏的fps)。在2D中,我永远不会期望任何超出开发过程的意义。

2

就FPS而言,我在自己的iPhone应用程序中使用了15FPS,它工作得很好,看起来不错,而且不占用太多CPU时间或磁盘空间。只需为您的需求找到合适的价值,然后再不用担心。为您的动画需求使用Texture Atlas是一个真正的问题。如果使用大量非常小的纹理,并且动画循环非常小(表示一个图集包含整个动画循环),那么您将从Atlas中受益(请参见optimizing-texture-atlases)。但是,一旦您的动画达到一定的大小(宽度x高度或持续时间),那么只需使用支持alpha通道的视频格式就更好了(例如,请参阅displaying-animations-in-opengl)。如果您想了解我建议的方法,请参阅Load OpenGL textures with alpha channel on iOS以获取Xcode项目的源代码,该项目实现了从具有Alpha通道支持的电影文件中加载OpenGL纹理。