浅谈街霸的帧数据 (一):frame data
作者:gougou槐宏文,曾參與《戰(zhàn)神》與《光環(huán)6》的開發(fā)。
引言
其實(shí)我玩格斗游戲20多年了。
很小的時(shí)候就在街機(jī)廳玩各種各樣的格斗游戲:《侍魂》系列,《月華劍士》系列等等,當(dāng)然還有在國(guó)內(nèi)最出名的《拳皇》系列,所以也算一個(gè)比較核心的格斗游戲老玩家了。《街霸》系列小時(shí)候一直沒(méi)有深入玩,但是自從十年前開始深入接觸之后也算得上一個(gè)合格的《街霸》玩家了。
我一直覺得深入研究格斗游戲?qū)?dòng)作游戲的開發(fā)是很有幫助的,直到后來(lái)自己參與了動(dòng)作游戲的開發(fā),我這個(gè)感悟更加深刻了。格斗游戲基本上是對(duì)動(dòng)作要求最高的游戲,雖然自己作為格斗游戲老玩家,對(duì)很多概念和系統(tǒng)都耳熟能詳了,但是我從來(lái)都沒(méi)有系統(tǒng)性的全面剖析過(guò)里面的每一個(gè)系統(tǒng),這是作為一個(gè)動(dòng)作游戲開發(fā)者我一直想做而比較慚愧沒(méi)有做好的。
這幾天我花了一些時(shí)間,細(xì)致的總結(jié)和分析了《街霸》系列的frame data,這篇文章就作為自己的一個(gè)總結(jié),可能格斗游戲老玩家已經(jīng)很熟悉了,但是其中也摻雜了一些我個(gè)人的思考,分享給大家。
frame data
我今天想分析的就是《街霸》系列的frame data,相信很多人都聽說(shuō)過(guò)的。frame data簡(jiǎn)單來(lái)說(shuō)就是一個(gè)攻擊動(dòng)畫每一幀的詳細(xì)數(shù)據(jù)。一個(gè)簡(jiǎn)單的背景,一般的格斗游戲都是穩(wěn)定的60幀每秒,也就是說(shuō)每一幀是1/60秒,也就是約等于0.0167秒。讀者朋友們可以想象一下格斗游戲?qū)斎刖鹊囊笥卸嗝锤吡?#xff0c;雖然一般的格斗游戲都有一個(gè)幾幀的input buffer,但是類似《街霸4》這種對(duì)輸入要求極高的游戲還是有不少one frame link這種很難的操作的,input buffer我們以后再詳細(xì)介紹把。
一般來(lái)說(shuō)frame data會(huì)包含很多詳細(xì)的數(shù)據(jù),其中比較重要的就是:start up frames,active frames,recovery frames,hit stun,block stun,on hit,on block,i-frames,cancelling frames,傷害,暈值等等,今天我就稍微介紹一下我認(rèn)為比較基礎(chǔ)也比較重要的幾個(gè)。首先給出解釋frame data最經(jīng)典的一張gif圖:
?
《街霸3rd》隆的light punch
無(wú)論是輕,中,還是重攻擊,甚至是一些special move,基本都可以拆解成start up,active和recovery三個(gè)部分。
start up frames:這是一個(gè)攻擊動(dòng)畫的起手部分,也就是圖中綠色的第1-2幀。在這個(gè)階段,一般的格斗游戲中,角色都沒(méi)有攻擊判定,但是《街霸》系列是有一點(diǎn)點(diǎn)不同的,《街霸》系列的攻擊判定在起手部分的最后一幀已經(jīng)形成了。
active frames:這是一個(gè)攻擊動(dòng)畫的持續(xù)部分,也就是圖中紅色的第2-3幀。在這個(gè)階段,如果攻擊方的攻擊判定碰到防御方的受傷判定,那么我們稱這個(gè)攻擊connect到了。connect到了有兩種結(jié)果,第一種是防御方被打到了,我們稱為on hit,防御方會(huì)播放一個(gè)受傷動(dòng)畫。第二種是防御方格擋住了,我們稱為on block,防御方會(huì)播放一個(gè)格擋動(dòng)畫。
recovery frames:無(wú)論你的攻擊是否connect到了,在active frames之后,攻擊方都會(huì)進(jìn)入一個(gè)收招階段,也就是圖中藍(lán)色的第4-5幀。在這個(gè)階段,你沒(méi)有辦法輸入,有些動(dòng)作游戲可以讓你cancel到另外一些動(dòng)作去,但是一般的格斗游戲都不會(huì)這樣做,因?yàn)檫@是你試探進(jìn)攻的同時(shí)需要付出的代價(jià),對(duì)pvp的游戲來(lái)說(shuō)是非常重要的,可以防止玩家無(wú)責(zé)任的進(jìn)攻。
一般來(lái)說(shuō),對(duì)一個(gè)攻擊動(dòng)畫來(lái)說(shuō),輕的攻擊起手,持續(xù)和收招都比較短,重的攻擊起手,持續(xù)和收招都比較長(zhǎng)。我們也可以很容易的理解,如果一個(gè)攻擊起手很短,持續(xù)很長(zhǎng),收招很短,那么這個(gè)攻擊一般屬于很強(qiáng)的攻擊。
格斗游戲的frame advantage/disadvantage
其實(shí)格斗游戲的系統(tǒng)內(nèi)核是一個(gè)數(shù)字游戲,更確切的說(shuō)是一個(gè)加減法游戲。要深入理解為什么,我們從hit stun和on hit來(lái)解釋一下什么是格斗游戲的+和-。
hit stun通俗來(lái)說(shuō),手機(jī)靚號(hào)轉(zhuǎn)讓就是防御方在被打到之后播放的受傷動(dòng)畫的長(zhǎng)度(一般來(lái)說(shuō)是這樣,實(shí)際上還有一些細(xì)節(jié),我就不打算在這里解釋了)。從圖中可以看出,在第2幀,右邊的隆受到了攻擊,從第3幀開始,右邊的隆播放了一個(gè)長(zhǎng)度為7幀的受傷動(dòng)畫。這時(shí)候我們就說(shuō)左邊的隆的light punch的hit stun是7幀。
那么什么是on hit呢?我先告訴大家結(jié)果,左邊的隆的light punch的on hit是+4幀。我們第一次看到了這個(gè)讓很多玩家都頭大的加號(hào),其實(shí)非常容易理解:左邊的隆從第1幀起手,到第2幀connect到,到第5幀收招,一共用了5幀的時(shí)間。右邊的隆從第3幀開始播放了一個(gè)長(zhǎng)達(dá)7幀的受傷動(dòng)畫。關(guān)鍵就在圖中白色的6-9這4幀中:這4幀中左邊的隆是可以行動(dòng)的,但是右邊的不行,因?yàn)橛疫叺穆∵€在播放受傷動(dòng)畫剩下的4幀。這時(shí)候我們就說(shuō)左邊的隆的light punch有+4幀的優(yōu)勢(shì),因?yàn)樽筮叺穆”葘?duì)手快4幀。
我們?cè)賮?lái)看另一種情況,比如作為設(shè)計(jì)師,我要大大削弱這個(gè)light punch的強(qiáng)度,可以如何做呢?我可以極端的把右邊的隆的受傷動(dòng)畫長(zhǎng)度減少到只有1幀。這時(shí)候從第3幀開始,右邊的隆播放一個(gè)長(zhǎng)度僅為1幀的受傷動(dòng)畫,結(jié)果就是第4-5幀這2幀中右邊的隆可以行動(dòng)了,但是左邊的隆還在收招,這時(shí)候我們就說(shuō)左邊的隆的light punch有-2幀的劣勢(shì),因?yàn)樽筮叺穆”葘?duì)手慢2幀。
block stun和on block只不過(guò)是同樣的道理應(yīng)用在對(duì)手格擋的情況。
結(jié)論
今天總結(jié)和分享的都是比較基礎(chǔ)的知識(shí),我自己一直以來(lái)都沒(méi)有認(rèn)真思考和總結(jié)過(guò),在這個(gè)系統(tǒng)基礎(chǔ)上,實(shí)際上可以變化出很多更精細(xì)的系統(tǒng)和玩法,這也就是類似《街霸》系列這種格斗游戲的深度所在了。舉幾個(gè)簡(jiǎn)單的例子,比如counter hit和存在的意義,比如frame trap,meaty attack等等,以后我們有機(jī)會(huì)再說(shuō)了。還有有意思的就是i-frames和cancelling frames相關(guān)的,我們也以后再分析吧。
從玩家的角度來(lái)說(shuō),frame data可以讓你提高自己的格斗游戲的水平,從開發(fā)者的角度來(lái)說(shuō)呢?實(shí)際上它可以很好地幫助你理解格斗游戲的設(shè)計(jì)思路和設(shè)計(jì)細(xì)節(jié),也可以讓我們看到格斗游戲通過(guò)對(duì)每一幀的精度控制基本達(dá)到了動(dòng)作游戲的最高要求,這里很多知識(shí)和思路我們都可以吸收然后應(yīng)用到動(dòng)作游戲中去。
總結(jié)
以上是生活随笔為你收集整理的浅谈街霸的帧数据 (一):frame data的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 故事工程学:人工智能和程序化叙事生成
- 下一篇: Serekh塞拉赫资源包背后的创作过程