《暗黑破壞神 3》公開課:暗黑3「檔位」的由來與發展


聰明的你很快會想到,假如通過裝備算出蛇的攻擊間隔是7Tick,那麼蛇實際上的攻擊間隔是多少呢? 這個時候程式通過計算得到:2>7/6>1,所以蛇的每張攻擊動畫圖都要佔據大於1Tick但是小於等於2Tick的時間間隔,於是系統就向上取整,給蛇的每一張動畫圖都分配了2Tick的時間來。所以6張圖加一起就用掉了12Tick的時間。所以這裡很坑爹,即便你的攻速堆得幾乎快要到更高一層的檔位了,但是由於這個機制,導致你的蛇還是沒能提升一檔,7Tick的攻擊間隔與12Tick的一樣,相比6Tick,都是只有其一半的攻速。所以千萬看清楚你的攻速到底有沒有上檔,小數點後面差一點點,系統也會無情的把你拖下水。

所以最後,現在大家應該能理解,為什麼蛇的攻擊頻率間隔為什麼只能是6的整數倍Tick啦。為了方便寫,下面把Tick簡記為T。所以蛇的攻擊間隔只可能是6T 12T 18T 24T 等等... 箭塔的原理也是一樣。

當然接下來根據攻擊間隔倒過來一下就得到蛇從1檔到8檔的攻擊速度啦,再乘以15s,就是蛇總共的攻擊次數。

三、營地帶來的神奇公式

got666的帖子仲介紹了一個簡潔實用的公式【多頭蛇檔位】,甚至可以精確的計算出各檔位所需求的人物攻速,但是那個48/(f+1)是什麼意思,估計大家並不好理解,在這裡我來簡單的解釋下,一樣不復雜,只要你看懂了上面的幀數理論。

首先要明白一點,人和寵物的攻速是不一樣的!人的面板攻速就是人的實際攻速,而寵物可能比你要快那麼一點點。所以這個公式實際上就是找到了人和寵物攻速之間的換演算法則。下面可以一起來做幾步簡單的運算,推導下這個公式。

現在我們已經知道:寵物因為動畫幀數原因,攻擊間隔的增長並非是連貫的,而是以6T為公差的一個等差數列:(這裡的T就是那個f,都是指1/60秒的時間間隔)

6T, 12T, 18T, 24T, 32T, 48T...

隨後我們通過巔峰的加點和裝備攻速的更改,來不斷地調整我們的人物攻速,企圖找到在寵物攻速發生跳躍的時候,對應的人物攻速是多少。當然為了方便尋找人跟寵物的關係,我們要用的一列資料是人物的攻擊間隔,所以要把測出來的攻速轉換成攻擊間隔就可以了。如下表:


這裡詳細寫一下:實際上就是一個以7.5T為公差的一個等差數列:

8.75T, 16.25T, 23.75T, 31.25T, 38.75T, 46.25T,...

好了,現在的問題是什麼?


找規律題目一道:現在有兩個等差數列:{An}和{Bn},見上表格,公差分別是為6和7.5,請用An把Bn表示出來。

第一步我們先把Bn按比例縮小到和An一樣的公差,乘以6/7.5=0.8即可,得到下面的Bn’,然後觀察一下就發現再減去1就可以正好得到An了。

所以An=Bn*0.8-1,反過來,Bn=(An+1)/0.8。

Bn是什麼,Bn就是人物的攻擊間隔,單位是Tick,所以拿60除以這個數,得到的就是人物的攻擊速度啦。

人物的攻擊速度=60/Bn=48/(An+1)。 An是什麼,就是上文動畫機制部分講解的蛇的攻擊間隔,這就是那個個公式。

多說一句,DH在做這個題目的時候,他們的人物攻速的等差數列測出來是以6.66666T為公差的,所以6/6.66666=0.9,也就是他們為什麼是54的原因(60*0.9=54)。

至此,got666帶來的公式推導就說完啦。找規律填數位,over。

由此也可以明白,理論推導得出來的結論是從遊戲動畫的機制上分析得出的結論,所以某種意義上說,只要遊戲機制搞對了,那麼這個結果就是絕對正確的。這個思路最早來源於營地的這篇文章:【人物攻速與箭塔攻速的關係】 比我推導的要細緻的多,有興趣推薦讀一讀。

四、傲嬌的大火蛇 - 實踐是檢驗真理的唯一標準

按照上面講解的方法,本來應該是沒有任何錯誤的,也確實,對於多頭蛇來說,除了大火蛇之外,別的蛇都非常完美的詮釋了這個公式的正確性。

但是唯獨大火蛇,在每個檔位上需求的攻速都比理論值都大了一點,沒准你的裝備正好卡在大火蛇要求的攻速與理論攻速之間呢,比如1.92攻速,別的蛇都乖乖的上了5檔,但是大火蛇還是停留在四檔;比如好不容易湊夠3.692308攻速,以為終於爬上了7檔,實際上還是不到。[實測視頻]

說來也是,大火蛇從來就沒有跟別的蛇一致過,無論是之前特立獨行的不繼承攻速,還是搞笑的人跑動的時候大火蛇可以提高33%的攻速bug。瞭解法師的朋友都知道,從515以來,法師蛇的bug就沒斷過,什麼殺回回血,攻速不繼承等等。所以這回有bug也見怪不怪了。

這個時候公式搞不定了怎麼辦,沒有別的辦法,只能通過扎實的實踐測量,不斷地提高精確度去逼近大火蛇的檔位。

簡單講講怎麼測:剛才的視頻可看到,就是先把想測試的攻速通過裝備巔峰寵物手等配湊出來,然後找到怪物,放蛇,然後錄影,通過數蛇在15s內攻擊的次數,就可以知道在這個攻速下,蛇的攻速是多少,也就是蛇的檔位是多少了。那麼如何合理的搭配攻速使得結果可以更逼近實際檔位攻速呢。下面這個圖是我做的大表格的一角,講述了枚舉法湊數位的過程。


這個是在嘗試列出逼近1.92003的所有可能攻速組合,武器上的攻速需要附魔來實現。粗體紅色表示可行的方案,不加粗的紅色表示雖然很接近,但是很遺憾湊不出來,因為巔峰的加點導致精確度最多是0.2攻速,不能是奇數。下面還有其他檔位的表格就一一不截圖了。

五、總結

至此,我們通過這個方法,只針對大火蛇,得出了實驗上能做到的最精確的攻速檔位。所以也是遊戲中大家會用到的更真實的結論。所以如果想玩大火蛇,還請按照Arccueid帖中給出的檔位資料。如果有一天大火蛇修復了bug和其他蛇保持一致,那時候就可以用理論的結果了。

所以說實踐是檢驗真理的唯一標準,在物理學實驗中,理論與測量不匹配的情況比比皆是,模型誤差,測量儀器誤差都會導致結果和理論有所偏差,這個時候需要一些經驗參數的修正。我們現在發現大火蛇的模型存在誤差,與別的蛇不同,所以經過測試,給出的大火蛇的檔位值就叫做「模型誤差修正檔位值」。

另外其實想吐槽,7檔蛇聽起來好厲害,實際上算算傷害,兩條蛇一秒的傷害被DH一個箭塔一發集束箭秒殺...然後DH有5個塔。不過,換個角度想想也知足了,總比沒加強好,也不用穿6件套,人人都能放。

想了想不知道結尾怎麼寫了。要不咱就拿仙塞寫在門簾上的話來結尾吧 - 仙塞崇尚科學嚴謹,歡迎百家爭鳴。


資料來源:凱恩之角

如果喜歡我們的文章,請即分享到︰

< 1 2 >
標籤: 暗黑破壞神 3  Diablo 3