淺談街霸的幀資料 (一):frame data

遊資網發表於2019-07-05
淺談街霸的幀資料 (一):frame data

作者:gougou槐巨集文,曾參與《戰神》與《光環6》的開發。

引言

其實我玩格鬥遊戲20多年了。

很小的時候就在街機廳玩各種各樣的格鬥遊戲:《侍魂》系列,《月華劍士》系列等等,當然還有在國內最出名的《拳皇》系列,所以也算一個比較核心的格鬥遊戲老玩家了。《街霸》系列小時候一直沒有深入玩,但是自從十年前開始深入接觸之後也算得上一個合格的《街霸》玩家了。

我一直覺得深入研究格鬥遊戲對動作遊戲的開發是很有幫助的,直到後來自己參與了動作遊戲的開發,我這個感悟更加深刻了。格鬥遊戲基本上是對動作要求最高的遊戲,雖然自己作為格鬥遊戲老玩家,對很多概念和系統都耳熟能詳了,但是我從來都沒有系統性的全面剖析過裡面的每一個系統,這是作為一個動作遊戲開發者我一直想做而比較慚愧沒有做好的。

這幾天我花了一些時間,細緻的總結和分析了《街霸》系列的frame data,這篇文章就作為自己的一個總結,可能格鬥遊戲老玩家已經很熟悉了,但是其中也摻雜了一些我個人的思考,分享給大家。

frame data

我今天想分析的就是《街霸》系列的frame data,相信很多人都聽說過的。frame data簡單來說就是一個攻擊動畫每一幀的詳細資料。一個簡單的背景,一般的格鬥遊戲都是穩定的60幀每秒,也就是說每一幀是1/60秒,也就是約等於0.0167秒。讀者朋友們可以想象一下格鬥遊戲對輸入精度的要求有多麼高了,雖然一般的格鬥遊戲都有一個幾幀的input buffer,但是類似《街霸4》這種對輸入要求極高的遊戲還是有不少one frame link這種很難的操作的,input buffer我們以後再詳細介紹把。

一般來說frame data會包含很多詳細的資料,其中比較重要的就是:start up frames,active frames,recovery frames,hit stun,block stun,on hit,on block,i-frames,cancelling frames,傷害,暈值等等,今天我就稍微介紹一下我認為比較基礎也比較重要的幾個。首先給出解釋frame data最經典的一張gif圖:

淺談街霸的幀資料 (一):frame data


《街霸3rd》隆的light punch

無論是輕,中,還是重攻擊,甚至是一些special move,基本都可以拆解成start up,active和recovery三個部分。

start up frames:這是一個攻擊動畫的起手部分,也就是圖中綠色的第1-2幀。在這個階段,一般的格鬥遊戲中,角色都沒有攻擊判定,但是《街霸》系列是有一點點不同的,《街霸》系列的攻擊判定在起手部分的最後一幀已經形成了。

active frames:這是一個攻擊動畫的持續部分,也就是圖中紅色的第2-3幀。在這個階段,如果攻擊方的攻擊判定碰到防禦方的受傷判定,那麼我們稱這個攻擊connect到了。connect到了有兩種結果,第一種是防禦方被打到了,我們稱為on hit,防禦方會播放一個受傷動畫。第二種是防禦方格擋住了,我們稱為on block,防禦方會播放一個格擋動畫。

recovery frames:無論你的攻擊是否connect到了,在active frames之後,攻擊方都會進入一個收招階段,也就是圖中藍色的第4-5幀。在這個階段,你沒有辦法輸入,有些動作遊戲可以讓你cancel到另外一些動作去,但是一般的格鬥遊戲都不會這樣做,因為這是你試探進攻的同時需要付出的代價,對pvp的遊戲來說是非常重要的,可以防止玩家無責任的進攻。

一般來說,對一個攻擊動畫來說,輕的攻擊起手,持續和收招都比較短,重的攻擊起手,持續和收招都比較長。我們也可以很容易的理解,如果一個攻擊起手很短,持續很長,收招很短,那麼這個攻擊一般屬於很強的攻擊。

格鬥遊戲的frame advantage/disadvantage

其實格鬥遊戲的系統核心是一個數字遊戲,更確切的說是一個加減法遊戲。要深入理解為什麼,我們從hit stun和on hit來解釋一下什麼是格鬥遊戲的+和-。

hit stun通俗來說,就是防禦方在被打到之後播放的受傷動畫的長度(一般來說是這樣,實際上還有一些細節,我就不打算在這裡解釋了)。從圖中可以看出,在第2幀,右邊的隆受到了攻擊,從第3幀開始,右邊的隆播放了一個長度為7幀的受傷動畫。這時候我們就說左邊的隆的light punch的hit stun是7幀。

那麼什麼是on hit呢?我先告訴大家結果,左邊的隆的light punch的on hit是+4幀。我們第一次看到了這個讓很多玩家都頭大的加號,其實非常容易理解:左邊的隆從第1幀起手,到第2幀connect到,到第5幀收招,一共用了5幀的時間。右邊的隆從第3幀開始播放了一個長達7幀的受傷動畫。關鍵就在圖中白色的6-9這4幀中:這4幀中左邊的隆是可以行動的,但是右邊的不行,因為右邊的隆還在播放受傷動畫剩下的4幀。這時候我們就說左邊的隆的light punch有+4幀的優勢,因為左邊的隆比對手快4幀。

我們再來看另一種情況,比如作為設計師,我要大大削弱這個light punch的強度,可以如何做呢?我可以極端的把右邊的隆的受傷動畫長度減少到只有1幀。這時候從第3幀開始,右邊的隆播放一個長度僅為1幀的受傷動畫,結果就是第4-5幀這2幀中右邊的隆可以行動了,但是左邊的隆還在收招,這時候我們就說左邊的隆的light punch有-2幀的劣勢,因為左邊的隆比對手慢2幀。

block stun和on block只不過是同樣的道理應用在對手格擋的情況。

結論

今天總結和分享的都是比較基礎的知識,我自己一直以來都沒有認真思考和總結過,在這個系統基礎上,實際上可以變化出很多更精細的系統和玩法,這也就是類似《街霸》系列這種格鬥遊戲的深度所在了。舉幾個簡單的例子,比如counter hit和存在的意義,比如frame trap,meaty attack等等,以後我們有機會再說了。還有有意思的就是i-frames和cancelling frames相關的,我們也以後再分析吧。

從玩家的角度來說,frame data可以讓你提高自己的格鬥遊戲的水平,從開發者的角度來說呢?實際上它可以很好地幫助你理解格鬥遊戲的設計思路和設計細節,也可以讓我們看到格鬥遊戲通過對每一幀的精度控制基本達到了動作遊戲的最高要求,這裡很多知識和思路我們都可以吸收然後應用到動作遊戲中去。

來源:indienova
原地址:https://indienova.com/indie-game-development/street-fighter-frame-data-1/

相關文章