游戲設置中的fpa是什麼意思
1. 暗黑破壞神雇傭兵的攻擊頻率計算方法
一直以來pet的攻速表都存在一定的問題,未能真實的反映出pet的攻擊情況。
這里將對以往的PET攻速表做出更新並簡單的介紹下攻速計算的原理。
首先簡單的講一下原理,眾LR若對此沒興趣,便直接跳過看結果吧。
在diabloii中時間的最小單位是幀(frame),即1/25秒,每秒25也就是暗黑的最高刷新率了。
通常情況完成一個動作所需的幀數計算如下:
FPA={HitShift*(FramePerDirection) /[(BaseRate+SI)*AnimationSpeed/100]}-1
[]表示向下取整,{}表示向上取整。
FPA=Frames Per Attack,每次攻擊動作所需幀數。
HitShift為Extra Precision,攻擊精度參數,HitShift=256。
FramePerDirection即在一個方向上一個動作的基礎幀數,通常在別的公式中也寫做(base+1)。隨武器類型及動作類型取值於Animdata.D2。
BaseRate基礎速率,取決於動作類型,絕大多數攻擊BaseRate=100。格檔和打擊回復為50。
SI=Speed Increase,速度增量。SI=EIAS-WSM+SkillIAS-FreezeChillSlow
EIAS=Effective IAS=[120*IAS/(120+IAS)],[]表示向下取整。
WSM=Weapon Speed Modifier,武器基礎速度。
SkillIAS=技能提速,例如fana。
FreezeChillSlow,減速效果,暫不考慮。
BaseRate+SI最大值為175(所以攻擊速度有上限),最小值為BaseRate*15%(暫不考慮)。
AnimationSpeed動作速度,隨武器類型及動作類型取值於Animdata.D2。
最後結果-1是因為,暗黑不顯示上一個動作的最後一幀,而是顯示下個動作的第一幀。
上面談到的是完成一個動作所需的幀數,也就是攻擊速度。那麼具體的攻擊動作發生在哪一幀呢?公式如下:
ActionFrame={HitShift*(FrameDataActionFlag) /[(BaseRate+SI)*AnimationSpeed/100]}
FrameDataActionFlag,動作幀數標志。隨武器類型取值於Animdata.D2。
其他同上。
至於更深層次的游戲幀數的運作原理,可以參考Louis-J 的動作幀數—Dtalon詳解。
如果英文夠好,也可上AB和PK看看Char animation的討論,非常之精彩。老外在對.dll文件的剖析上確實很強。
回到正題,我們來計算PET的攻擊速度。
CODE:
ACT1-Rogue Scout
1.普通攻擊
調用Animdata.D2中的RGA1HTH.
FramePerDirection=15
AnimationSpeed=256
FrameDataActionFlag=6
FPA={256*15/[(100+SI)/100*256]}-1
ActionFrame={256*6/[(100+SI)/100*256]}
計算結果如下:
SI frames ActionFrame
-20 18 8
-16 17 8
-14 17 7
-11 16 7
-6 15 7
0 14 6
8 13 6
16 12 6
21 12 5
25 11 5
41 10 5
50 9 4
67 8 4
沒有技能提速及減速效果下,具體細化到武器基礎速度:
WSM=10
IAS frames ActionFrame
0 16 7
5 15 7
11 14 6
22 13 6
34 12 6
42 12 5
50 11 5
78 10 5
120 9 4
215 8 4
WSM=5
IAS frames ActionFrame
0 15 7
6 14 6
15 13 6
26 12 6
34 12 5
40 11 5
65 10 5
102 9 4
180 8 4
WSM=0
IAS frames ActionFrame
0 14 6
9 13 6
19 12 6
26 12 5
32 11 5
54 10 5
86 9 4
152 8 4
WSM=-10
IAS frames ActionFrame
0 13 6
7 12 6
13 12 5
18 11 5
35 10 5
60 9 4
109 8 4
2.Cold Arrow/Fire Arrow 冰箭/火箭
也是調用Animdata.D2中的RGA1HTH,即攻速同普通攻擊。
3.Inner Sight 技能內視
也是調用Animdata.D2中的RGA1HTH.
所以Inner Sight內視的施法速度與FCR無關,與IAS等有關,完全等同普通攻擊速度。
ACT2-Desert Mercenary Guard
1.普通攻擊
調用Animdata.D2中的GUA1HTH.
FramePerDirection=16
AnimationSpeed=256
FrameDataActionFlag=11
FPA={256*16/[(100+SI)/100*256]}-1
ActionFrame={256*11/[(100+SI)/100*256]}
計算結果如下:
SI frames ActionFrame
-20 20 14
-19 19 14
-15 18 13
-10 17 13
-8 17 12
-5 16 12
0 15 11
8 14 11
11 14 10
15 13 10
23 13 9
24 12 9
34 11 9
38 11 8
46 10 8
58 10 7
61 9 7
沒有技能提速及減速效果下,具體細化到武器基礎速度:
WSM=20
IAS frames ActionFrame
0 20 14
2 19 14
6 18 13
11 17 13
14 17 12
18 16 12
24 15 11
37 14 11
42 14 10
50 13 10
68 13 9
70 12 9
95 12 8
99 11 8
147 10 8
223 10 7
250 9 7
WSM=10
IAS frames ActionFrame
0 17 13
3 17 12
6 16 12
11 15 11
22 14 11
26 14 10
32 13 10
46 13 9
48 12 9
70 11 9
80 11 8
105 10 8
157 10 7
174 9 7
WSM=0
IAS frames ActionFrame
0 15 11
9 14 11
13 14 10
18 13 10
29 13 9
30 12 9
48 11 9
56 11 8
75 10 8
113 10 7
125 9 7
WSM=-10
IAS frames ActionFrame
0 14 11
2 14 10
6 13 10
15 13 9
16 12 9
30 11 9
37 11 8
52 10 8
52 10 7
89 9 7
WSM=-20
IAS frames ActionFrame
0 13 10
4 13 9
5 12 9
16 11 9
22 11 8
34 10 8
56 10 7
63 9 7
2.Jab攻擊
調用MonSeq.txt中的seq_act2guardjab,屬於Sequences攻擊。
Sequences攻擊速度的計算方法略有不同。
FPA={HitShift*(FrameOfSequence) /[(BaseRate+SI)*AnimationSpeed/100]}
注意唯一不同的是Sequences的最後一幀是顯示的,所以沒有-1。
FrameOfSequence=14(Sequences中的總幀數)
AnimationSpeed=256
FrameDataActionFlag=5,9(整個動作攻擊2次,分別在第5,9幀,所以ACT2PET有5.5幀的說法,其實是11幀中攻擊2次)
FPA={256*14/[(100+SI)/100*256]}
ActionFrame={256*5/[(100+SI)/100*256]}
ActionFrame={256*9/[(100+SI)/100*256]}
計算結果如下:
SI frames ActionFrame
-20 18 8,13
-17 17 8,13
-16 17 8,12
-14 17 7,12
-12 16 7,12
-8 16 7,11
-6 15 7,11
0 14 6,10
8 13 6,10
12 13 6,9
17 12 6,9
21 12 5,9
25 12 5,8
28 11 5,8
41 10 5,8
43 10 5,7
50 10 4,7
56 9 4,7
67 9 4,6
75 8 4,6
沒有技能提速及減速效果下,具體細化到武器基礎速度:
WSM=20
IAS frames ActionFrame
0 18 8,13
4 17 8,13
5 17 8,12
7 17 7,12
9 16 7,12
14 16 7,11
16 15 7,11
24 14 6,10
37 13 6,10
44 13 6,9
54 12 6,9
63 12 5,9
72 12 5,8
80 11 5,8
125 10 5,8
133 10 5,7
168 10 4,7
208 9 4,7
317 9 4,6
456 8 4,6
WSM=10
IAS frames ActionFrame
0 16 7,12
3 16 7,11
5 15 7,11
11 14 6,10
22 13 6,10
27 13 6,9
35 12 6,9
42 12 5,9
50 12 5,8
56 11 5,8
89 10 5,8
95 10 5,7
120 10 4,7
147 9 4,7
215 9 4,6
292 8 4,6
WSM=0
IAS frames ActionFrame
0 14 6,10
9 13 6,10
14 13 6,9
20 12 6,9
26 12 5,9
32 12 5,8
37 11 5,8
63 10 5,8
68 10 5,7
86 10 4,7
105 9 4,7
152 9 4,6
200 8 4,6
WSM=-10
IAS frames ActionFrame
0 13 6,10
3 13 6,9
8 12 6,9
13 12 5,9
18 12 5,8
22 11 5,8
42 10 5,8
46 10 5,7
60 10 4,7
75 9 4,7
109 9 4,6
142 8 4,6
WSM=-20
IAS frames ActionFrame
0 12 6,9
2 12 5,9
6 12 5,8
9 11 5,8
26 10 5,8
29 10 5,7
40 10 4,7
52 9 4,7
78 9 4,6
102 8 4,6
ACT3-Eastern Sorceror Iron Wolf
1.普通攻擊(基本上沒有普通攻擊)
調用Animdata.D2中的IWA11HS.
FramePerDirection=15
AnimationSpeed=256
FrameDataActionFlag=6
FPA={256*15/[(100+SI)/100*256]}-1
ActionFrame={256*6/[(100+SI)/100*256]}
參數同ACT1mm普通攻擊,WSM=10,0,-10參考ACT1mm普通攻擊
WSM=20
IAS frames ActionFrame
0 18 8
5 17 8
7 17 7
10 16 7
16 15 7
24 14 6
37 13 6
52 12 6
63 12 5
72 11 5
109 10 5
168 9 4
WSM=-20
IAS frames ActionFrame
0 12 6
2 12 5
6 11 5
20 10 5
40 9 4
78 8 4
WSM=-30
IAS frames ActionFrame
0 11 5
8 10 5
24 9 4
54 8 4
2.法術攻擊
調用Animdata.D2中的IWSC1HS.
FramePerDirection=18
AnimationSpeed=256
FrameDataActionFlag=7
FPC={256*18/[(100+EFCR)/100*256]}-1
計算結果如下:
FCR frames ActionFrame
0 17 7
8 16 7
15 15 7
20 15 6
26 14 6
39 13 6
58 12 6
63 12 5
86 11 5
138 10 5
200 10 4
ACT-5 Barbarian
1.普通攻擊
調用Animdata.D2中的0AA12HS.
FramePerDirection=15
AnimationSpeed=256
FrameDataActionFlag=5,12(一個動作攻擊2次)
FPA={256*15/[(100+SI)/100*256]}-1
ActionFrame={256*5/[(100+SI)/100*256]}
ActionFrame={256*12/[(100+SI)/100*256]}
計算結果如下:
SI frames ActionFrame
-20 20
-19 19
-15 18
-10 17
-5 16
0 15
8 14
15 13
24 12
34 11
46 10
61 9
沒有技能提速及減速效果下,具體細化到武器基礎速度:
WSM=20
IAS frames ActionFrame
0 20
2 19
6 18
11 17
18 16
24 15
37 14
50 13
70 12
99 11
147 10
250 9
WSM=10
IAS frames ActionFrame
0 17
6 16
11 15
22 14
32 13
48 12
70 11
105 10
174 9
WSM=5
IAS frames ActionFrame
0 16
6 15
15 14
24 13
39 12
58 11
89 10
147 9
WSM=0
IAS frames ActionFrame
0 15
9 14
18 13
30 12
48 11
75 10
125 9
WSM=-5
IAS frames ActionFrame
0 15
4 14
11 13
23 12
39 11
63 10
105 9
WSM=-10
IAS frames ActionFrame
0 14
6 13
16 12
30 11
52 10
89 9
WSM=-15
IAS frames ActionFrame
0 13
10 12
23 11
42 10
75 9
WSM=-20
IAS frames ActionFrame
0 13
5 12
16 11
34 10
63 9
WSM=-30
IAS frames ActionFrame
0 12
5 11
19 10
42 9
2.Bash/Stun攻擊
調用Animdata.D2中的0AA22HS.
FramePerDirection=15
AnimationSpeed=256
FrameDataActionFlag=6,12
參考普通攻擊。
[Copy to clipboard]
最後由於PET屬於MONSTER(怪),所以還要受AI的影響,所有PET的AIDELAY為1幀,所以最後結果還要+1。
原國外的pet攻速表除act2 jab外,都是正確的。
最後更新:
實際的測試確實有點困難,PET攻擊時除了aidelay外還會有莫名的delay,而且沒有規律,不知具體原因,所以很難測准。
根據我的測試(以SI=0為例,以下同)
ACT2 PET的普通攻擊為16~17幀,可以感覺到理論上16幀應該是正確的,但實際上更接近17幀,甚至18。反正由於莫名的delay,16幀是肯定達不到的。
ACT2 PET的JAB攻擊為15~16幀,實際上放大樣本量的話,結果更接近17幀。從感覺上理論值更接近15幀。
但是這樣是沒有說服力的,於是我把兩者放在一個屏幕進行比較,這個結果比較容易讓人信服,結果如下:
如果按照國外的說法,兩者都是16幀,速度應該是一樣的。
但是只要你細心一點不難發覺:兩個分別用JAB和普通攻擊的PET,JAB是要快一點的。
結論:普通16幀,JAB15幀應該是ACT2 PET正確的理論攻擊速度。但實際攻擊速度要慢1到2幀。
最後,綜合ACT2 PET的攻擊特點,大致的會有15%~20%的普通攻擊機率。
所以實際的綜合攻擊速度是不太好定義的,大致按照我的JAB攻速表的最後結果再+2幀左右。
參考資料:http://cache..com/c?word=%B0%B5%BA%DA%2C%B9%CD%D3%B6%3B%B1%F8%2C%CB%D9%C2%CA%3B%BC%C6%CB%E3&url=http%3A//www%2Evwill%2Ecn/game/bbs/simple/index%2Ephp%3Ft96455%2Ehtml&p=&user=
2. 坦克世界fpa是什麼意思
游戲運行時每秒所運行的幀數(簡稱FPS,Frames Per Second) 和視頻一樣,FPS越大,在屏幕上的視頻就越來越平滑,直到一個臨界點(大約是100FPS),超過這個臨界點,再高的FPS都只是一個令人驚奇的數值,400FPS和100FPS在人的視覺中幾乎沒有差別。