游戏设置中的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在人的视觉中几乎没有差别。