2012-08-22 172 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紋理。