左右分栏
战网首页
封禁账号自查
注册游戏账号
游戏密码找回
社区服务
银行
道具中心
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
角色技能模拟器
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
网站首页
战网论坛
暗黑2下载
战网注册表
增值服务办理
战网交易集市
战网聊天室
暗黑2资料库
帖子
用户
版块
帖子
搜索
91D2战网官方QQ群: 〖 一群:907473582 〗 〖 二群:289990050 〗 〖 三群:6713328 〗
91D2战网-暗黑破坏神2-暗黑2战网
>
『 暗黑资料库 』
>
Animation Frame—Dtalon Fpa Specific
发帖
回复
返回列表
新帖
2742
阅读
2
回复
Animation Frame—Dtalon Fpa Specific
[复制链接]
上一主题
下一主题
离线
铃铛
UID:83661
注册时间
2009-08-31
最后登录
2021-02-27
在线时间
3431小时
发帖
59624
搜Ta的帖子
精华
4
金钱
6311
91币
0
信誉
0
访问TA的空间
加好友
用道具
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
发帖
59624
金钱
6311
91币
0
信誉
0
资产
0 IST
在线时间
3431 小时
注册时间
2009-08-31
最后登录
2021-02-27
加关注
发消息
只看楼主
倒序阅读
使用道具
楼主
发表于: 2010-12-09 18:38:04
Animation Frame—Dtalon Fpa Specific
Animation Frame
—Dtalon Fpa Specific
动作帧数—Dtalon详解
BY Louis-J
本帖出自:HOLY Clan和
暗黑
品网
感谢:
jrichard 对Fpa原理和Dtalon攻击特性的详尽论述,本贴许多资料和理论来自他
Brianc84 对C/C WSM公式的计算推导及提出Dtalon的极限为7/3/3/3……而非7/2/2/2……
Ruvanal 提出Rollback概念及对其的
精彩
论述
写这个帖子前后花费了4天的时间,期间查阅论证了许多资料数据并做了多次测试。本帖虽然主要是说Dtalon这个技能的攻击帧数,但其实是对D2所有动作运行帧数的一个剖析。
由于我个人对D2这个游戏的认识有效,难免有错误纰漏的地方,请LRs多多指正。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
完成一个动作所需的帧数公式
Frames Per Attack={HitShift*(FramePerDirection) / [AnimationSpeed*(BaseRate+SpeedIncrease)/100]}-1
Fpa=Frames Per Attack 每次攻击帧数
HitShift=256
FramePerDirection 动作长度
AnimationSpeed 动作速度
BaseRate 基础效率
SI=SpeedIncrease=Skill EIAS-100*Slow%-WSM+EIAS
SpeedIncrease 速度增量
Skill EIAS 技能提供的EIAS:包括Asn的BoS(速度爆发),Pal的Fanaticism(狂热光环)
Slow% 减速效果:包括Slows Target(使目标减速),Clay Golem(土魔),Freeze(各种冰冻效果),Slow Missiles(缓慢攻击),Decrepify(衰老)等等。
WSM=Weapon Speed Modifier 武器基础速度
EIAS=Effective Increase Attack Speed = [120*IAS/(120+IAS)] 有效IAS
IAS=Increased Attack Speed=(120*EIAS)/(120-EIAS) 装备提速属性之和
{ } 向上取整
[ ] 向下取整
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Animation:动作
Animation types:动作类型
Weapon types:武器类型
FramePerDirection:动作长度
AnimationSpeed:动作速度
在游戏中,无论角色什么时候做什么动作,包括走、跑、格挡、攻击,甚至站立不动,游戏都会有记录。在这个过程中,首先游戏确定其为什么动作,这取决于角色使用何种动作类型和武器类型;确定后,游戏就会运做这个动作直到下一个动作;再确定下一个为什么动作,运做这个动作到再下一个动作,周而复始。
与动作相关的参量是动作长度和动作速度。大多数动作的动作速度是256,但也不全是。
动作类型不同,动作长度和动作速度也会不同。
同一种动作类型,武器类型不同,动作长度和动作速度也会不同;至于Asn的踢击技能,用的都是鞋子-o-(确切的说不划分在武器类型之内),所以踢击技能的动作长度和动作速度都是一样的;一些动作类型的动作长度和动作速度不受武器类型的影响,比如打击恢复、施法动作,但还是受角色类型的影响(最直观的例子就是Nec的Human形态和Vampire形态其施法动作的速度就不同)。
当然,如果角色类型不同,即使动作类型和武器类型都相同,其动作长度也可能会有差异,比如Asn/Pal、Ama、Sor、Dru/Nec、Bar使用1HS的武器类型做Zeal的攻击,其动作长度就各不相同。
(说的有些拗口,希望大家能听懂-o-)
Animation types:动作类型
(From PlrMode.txt)
A1 – Attack 1
A2 – Attack 2
BL – Blocking
DD - Death
DT – Death Throe
GH – Get hit(hit recovery)
KK - Kick
NU – Neutral(outside of town)
RN - Run
S1 – Skill 1
S2 – Skill 2
S3 – Skill 3
S4 – Skill 4
SC – Spell casting
TH – Get Hit(in town)
TN – Neutral(in town)
TW – Walk(in town)
WL – Walk(outside of town)
Weapon types:武器类型
(From Weapons.txt)
1HS - One Handed Swinging (axes, swords, flails, maces, hammers, clubs and wands)
1HT - One Handed Thrusting/Throwing* (Daggers, javelins, potions)
2HS - Two Handed Swords (swords)
2HT - Two Handed Thrusting (All Spear class weapons)
BOW – Bows (All Bow class weapons)
HT1 - Single wielded katars (Katar, Claw, Scissors type assassin class weapons)
HT2 - Dual wielded katars (Katar, claw, scissors type assassin class weapons)
HTH - Hand to Hand (Bare fists)
STF - Two handed Swinging (Staves, polearms, axes, mauls)
XBW – Crossbows (All Crossbow class weapons)
*注:throwing axes不属于1HT(One Handed Throwing)类型, 而属于1HS(one handed swinging)类型。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
BaseRate:基础效率
SpeedIncrease:速度增量
Skill EIAS:技能提供的EIAS
WSM:武器基础速度
EIAS:有效IAS
IAS:装备提速属性之和
BaseRate:基础效率
BaseRate只取决于角色使用何种动作类型,不受装备的影响,大多数的BaseRate为100。Asn的所有BaseRate除了格挡和打击恢复为50及一些顺序攻击如(FoF/CoT/BoI/DC 为70,其实是个攻击速度惩罚-30,即100-30=70);DTail为60(攻击速度惩罚为-40,即100-40=60);其他都是100 。
(BaseRate+SpeedIncrease)
上限为175,这也是为什么攻击动作有急速封顶Fpa的原因。
关于下限,由于角色攻击时基本不考虑减速效果,则SpeedIncrease=Skill EIAS-WSM+EIAS=0-30+0=-30(武器的最慢WSM为30,关于C/C 的WSM在下面论述)。所以SI的下限为-30,所以基本上(BaseRate+SpeedIncrease)下限为100-30=70。
如果考虑减速效果,则(BaseRate+SpeedIncrease)=BaseRate+Skill EIAS-100*Slow%-WSM+EIAS,很显然能达到0甚至是负数的下限,但是当(BaseRate+SpeedIncrease) < BaseRate*15%,(BaseRate+SpeedIncrease)=BaseRate*15%,则基本上(BaseRate+SpeedIncrease)下限为100*15%=15。
SI=SpeedIncrease:速度增量
=Skill EIAS-100*Slow%-WSM+EIAS
比如9级的BOS(Attack Speed +44),20%的减速效果,WSM=-10,EIAS=20
则SI=44-100*20%-(-10)+20=54
Skill EIAS:技能提供的EIAS
Skill EIAS = ((110*lvl) * (b-a))/(100 * (lvl+6)) + a
b=60,a=15(BoS速度爆发),
b=40,a=10(Fanaticism狂热光环)
(from skillcalc.txt and skills.txt)
这个公式算出的EIAS和游戏中我们看到的数值个别级别有些出入,比如1级的BOS(Attack Speed +21),但用这个公式的话
Skill EIAS = ((110*lvl) * (b-a))/(100 * (lvl+6)) + a
SLVL 1 BOS EIAS=((110*1) * (60-15))/(100 * (1+6)) + 15=110*45 / 100*7 + (15)=22
其实稍微懂些java方面的语言就很好理解了
javascript:
function dm(l,a,b){
return a+dec((b-a)*dec(110*l/(l+6),0)/100,0)
}
其中a,b即相当于上面公式中的a,b;l 即相当于上面公式中的技能等级 Skill Lvl。
没学过也不要紧,看下面这个公式吧
IF LEVEL>0
Skill EIAS = a + ROUNDDOWN( (b-a)*ROUNDDOWN( 110*LEVEL / (LEVEL+6) ) /100)
b=60,a=15,Level=1代入
=15 + ROUNDDOWN( 45*ROUNDDOWN(110*1/7) /100)
=15 + ROUNDDOWN( 45*ROUNDDOWN(15.xxx) /100)
=15 + ROUNDDOWN(45*15/100)
=15 + ROUNDDOWN(45*15/100)
=15 + ROUNDDOWN(6.75)
=15 + 6
=21
搞定。
(Skill EIAS只要看游戏中直接显示的数值就可以了,这个公式有兴趣的当消遣看吧- - !)
WSM:武器基础速度
当装备武器/盾牌或双手武器,没什么说的,就是我们在许多资料上常看到的那样,是该武器的WSM,如-10啊,0啊,30啊什么的。
当用双爪时
<1>先放屏幕左边装备槽,再放屏幕右边装备槽
WSMs=(right_WSM + left_WSM)/2
例:两把爪的WSM分别为10和-30,则最终WSMs为-10
<2>先放屏幕右边,再放屏幕左边(EIAS C/C Bug)
WSMs = (right_WSM + left_WSM)/2 + (right_WSM - left_WSM)
例:先把WSM为-30的放在屏幕右边,再把WSM为10的放在屏幕左边
WSMs = (-30+10)/2 +(-30–10)
= (-20)/2 + (-40)
= (-10) + (-40)
= -50
先把WSM为10的放在屏幕右边,再把WSM为-30的放在屏幕左边
WSMs = (10+(-30))/2 + (10-(-30))
= (-20)/2 + (40)
= (-10) + 40
= 30
当把WSM快的爪先放在屏幕右边时,就可以利用这个EIAS Bug了。
但是当角色在游戏中切换武器后,WSMs将变回<1>的状态- -!。
注:C/C bug对踢击有效。
EIAS:有效IAS
=Effective Increase Attack Speed = [120*IAS/(120+IAS)]
比如装备提供20IAS,则EIAS=[120*20/(120+20)] =17
EIAS/IAS 换算表格
+----+----+ +----+----+ +----+----+ +----+----+
|EIAS| IAS| |EIAS| IAS| |EIAS| IAS| |EIAS| IAS|
+----+----+ +----+----+ +----+----+ +----+----+
| 1| 2| | 31| 42| | 61| 125| | 91| 377|
| 2| 3| | 32| 44| | 62| 129| | 92| 395|
| 3| 4| | 33| 46| | 63| 133| | 93| 414|
| 4| 5| | 34| 48| | 64| 138| | 94| 434|
| 5| 6| | 35| 50| | 65| 142| | 95| 456|
| 6| 7| | 36| 52| | 66| 147| | 96| 480|
| 7| 8| | 37| 54| | 67| 152| | 97| 507|
| 8| 9| | 38| 56| | 68| 157| | 98| 535|
| 9| 10| | 39| 58| | 69| 163| | 99| 566|
| 10| 11| | 40| 60| | 70| 168| | 100| 600|
| 11| 13| | 41| 63| | 71| 174| | 101| 638|
| 12| 14| | 42| 65| | 72| 180| | 102| 680|
| 13| 15| | 43| 68| | 73| 187| | 103| 728|
| 14| 16| | 44| 70| | 74| 194| | 104| 780|
| 15| 18| | 45| 72| | 75| 200| | 105| 840|
| 16| 19| | 46| 75| | 76| 208| | 106| 909|
| 17| 20| | 47| 78| | 77| 215| | 107| 988|
| 18| 22| | 48| 80| | 78| 223| | 108|1080|
| 19| 23| | 49| 83| | 79| 232| | 109|1190|
| 20| 24| | 50| 86| | 80| 240| | 110|1320|
| 21| 26| | 51| 89| | 81| 250| | 111|1480|
| 22| 27| | 52| 92| | 82| 259| | 112|1680|
| 23| 29| | 53| 95| | 83| 270| | 113|1938|
| 24| 30| | 54| 99| | 84| 280| | 114|2280|
| 25| 32| | 55| 102| | 85| 292| | 115|2760|
| 26| 34| | 56| 105| | 86| 304| | 116|3480|
| 27| 35| | 57| 109| | 87| 317| | 117|4680|
| 28| 37| | 58| 113| | 88| 330| | 118|7080|
| 29| 39| | 59| 117| | 89| 345| | 119|14280
| 30| 40| | 60| 120| | 90| 360| | 120|inf |
+----+----+ +----+----+ +----+----+ +----+----+
注:这个换算表同样适用于EFCR/FCR、EFHR/FHR、EFBR/FBR的相互换算。
IAS:装备提速属性之和
=Increased Attack Speed=(120*EIAS)/(120-EIAS) 这个是和EIAS的换算公式
很简单,装备上所有的IAS叠加起来。
如果是双爪,只算先装备的爪上的IAS(如果切换后,则只算屏幕左方即手套上面爪的IAS,也是大家常说的主爪位置):这个只相对使用主爪攻击如TS、CS、PS和踢击技能及陷阱放置而言。
一些双爪轮流击打如normal attack、FoF、CoT、BoI包括WW,则只算当前攻击爪的IAS。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
共
条评分
回复
举报
离线
铃铛
UID:83661
注册时间
2009-08-31
最后登录
2021-02-27
在线时间
3431小时
发帖
59624
搜Ta的帖子
精华
4
金钱
6311
91币
0
信誉
0
访问TA的空间
加好友
用道具
发帖
59624
金钱
6311
91币
0
信誉
0
资产
0 IST
在线时间
3431 小时
注册时间
2009-08-31
最后登录
2021-02-27
加关注
发消息
只看该作者
沙发
发表于: 2010-12-09 18:38:31
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Frame:帧数
Fpa:每次攻击帧数
Increment:增量
Terminating_value:终止值
AFrame:计数范围
Counter:计数值
ticks:计数
Frame:帧数
D2 每秒运行25Frames。意思是指游戏每秒刷新你的屏幕画面25次,即每0.04秒刷新一次屏幕画面。如果你在游戏里用/fps的命令(frames per second 每秒运行帧数),你会看见每秒的Frames会超过25(这个越高越好啦-o-)。这只是指你的系统可以超过25fps,不是指D2这个游戏能超过25fps。每秒运行25帧是D2这个游戏的程序设定,是不能改变的。
Fpa(Frames per attack):(完成)一次攻击(所需)帧数
比如说一种攻击的速度是7Fpa,意思是指完成这个动作需要7帧。
Increment:增量
= [AnimationSpeed * (BaseRate + SpeedIncrease) / 100]
数值越大,则攻击速度越快。如前面所说的,由于(BaseRate + SpeedIncrease)有上下限, 所以Increment也有上下限。
Terminating_value:终止值
Terminating_value= 256*FramePerDirection
比如动作长度为5,则终止值为1280。
把这个终止值按256分解成5个计数范围
0-255
256-511
512-767
768-1023
1023-1279
即到1279时,整个动作完成。之所以没有1280,是因为从0开始计数。
AFrame:计数范围
Counter:计数值
AFrame表示一个计数范围, 如0 - 255表示AFrame为00,256-511表示AFrame为01。
如果一个计数值为4000,则/256后为15.625,舍去小数,此时的AFrame为15。
Counter/AFrame 对照图表
Counter value AFrame displayed Counter value AFrame displayed
0 - 255 00 3328 - 3583 13
256 - 511 01 3584 - 3839 14
512 - 767 02 3840 - 4095 15
768 - 1023 03 4096 - 4351 16
1024 - 1279 04 4352 - 4607 17
1280 - 1535 05 4608 - 4863 18
1536 - 1791 06 4864 - 5119 19
1792 - 2047 07 5120 - 5375 20
2048 - 2303 08 5376 - 5631 21
2304 - 2559 09 5632 - 5887 22
2560 - 2815 10 5888 - 6143 23
2816 - 3071 11 6144 - 6399 24
3072 - 3327 12
ticks:计数
许多资料和帖子在解析游戏中的Animation(动作)信息的时候都会提到这个词。这个计数有什么用?让游戏知道一个动作什么时候结束?不是,这只是为了让大家比较直观的了解一个攻击动作的完成所需Fpa而引入的一个游戏程序计数器。
下面举个例子,还是以上面的动作长度5为例,假设某个动作的动作速度为256,基础效率为100,速度增量为0。
这个动作的各项参量:
AnimationSpeed = 256
FramePerDirection = 5 ( Aframe从00到04,共5个Aframe)
BaseRate = 100
SpeedIncrease = 0
Terminating_value = 256* FramePerDirection = 256*5 = 1280
Increment = [AnimationSpeed * (BaseRate + SpeedIncrease) / 100] = 256*(100 + 0) / 100=256*100/100 = 256
代码:
从0开始计数,动作开始
Game tick 1
counter增加, counter=256
counter < 1280 动作继续
Aframe = 01(看上面的对照表counter=256时,Aframe = 01)
Game tick 2
counter增加, counter=512
counter < 1280
Aframe = 02
Game tick 3
counter增加, counter=768
counter < 1280
Aframe = 03
Game tick 4
counter增加, counter=1024
counter < 1280
Aframe = 04
Game tick 5
counter增加, counter=1280
counter>=1280
动作结束,寻找下一个动作,counter重新计数,下一个动作从这个tick开始。
由于1279时动作就结束,所以Game tick 5将作为下一个动作的Game tick 1(
下一个动作从这个tick开始
)。而不算在这个假设的动作中。即从tick 1到tick 4共4ticks整个动作完成。就是说这个假设的动作速度增量SI为0时,可达到4Fpa(完成这个动作需4帧)。
上面是个很简单的例子,下面我们再考虑SI分别为-1、24、25这3种状态。其他参量都不变。
SI=-1,Increment = [256*(100-1) / 100]=[256*99/100] = 253
SI=24,Increment = [256*(100+24) / 100]=[256*124/100] = 317
SI=25,Increment = [256*(100+25) / 100]=[256*125/100] = 320
代码:
动作开始
Game tick 1
SI=-1,counter=253 Aframe=00
SI=24,counter=317 Aframe=01
SI=25,counter=320 Aframe=01
Game tick 2
SI=-1,counter=506 Aframe=01
SI=24,counter=634 Aframe=02
SI=25,counter=640 Aframe=02
Game tick 3
SI=-1,counter=751 Aframe=02
SI=24,counter=951 Aframe=03
SI=25,counter=960 Aframe=03
Game tick 4
SI=-1,counter=1012 Aframe=03
SI=24,counter=1268 Aframe=04
SI=25,counter=1280 动作结束
Game tick 5
SI=-1,counter=1265 Aframe=04
SI=24,counter=1585 动作结束
Game tick 6
SI=-1,counter=1518 动作结束
可见,SI=0时,动作在tick 4就完成;而SI=-1时,动作在tick 5完成。
SI=25时,动作在tick 3就完成;而SI=24时,动作在tick 4完成。
-1-,0,25就代表了这个动作Fpa所需SI的3个档次。
一般情况不考虑Slow影响,SI=Skill EIAS-WSM+EIAS,Skill EIAS和WSM都是已知的,只要知道EIAS的数值,就能知道一个动作的Fpa是多少了。而这个EIAS就取决于你装备上提供的IAS。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Dtalon:龙爪
Rollback:回退特性
Initial Kicks:最初踢击
Follow-Up Kicks:后续踢击
FrameDataActionFlag:发生回退特性标记点
Rollback这个概念的解释最早是由Ruvanal在lurkerlounge上给出的,简单的说,就是相对角色完成一个完整动作,具有Rollback特性的只完成其中的某些部分。一些拥有Rollback特性的技能有Fend(Ama的击退技能)、Strafe(Ama的炮轰技能)、Jab(Ama的戳刺技能)、Zeal(Pal的热诚技能)、Fury(Dru的狂怒技能)和Dragon Talon(Asn的龙爪技能),它们共有的特征就是在一次攻击中包括多重打击。这些技能的% Rollback各有不同,比如Zeal/Dtalon为100%,Strafe为50%。
Dtalon的整个踢击动作包括最后1次踢击(Dtalon只有1 kick的这次踢击也算在最后1次踢击范畴内)和前面的几次多重踢击。通常我们把这最后1次踢击称为Initial Kicks(最初踢击),反而把前面的几次多重踢击称为Follow-Up Kicks(后续踢击),这是一个叫法的习惯问题。比如我们说7/3/3/3,如果按踢击顺序的话应该是3/3/3/7;这样会让许多人认为第1次踢击是7Fpa,其实正确的认识是第1次→第3次这3次多重踢击为3Fpa,最后一次踢击为7Fpa。
下面就用Counter/AFrame理论来说说DTalon的Rollback。为了完成Dtalon的多重踢击,Counter将回退,也就是AFrame值将会重复,由于Dtalon是个100% Rollback技能,所以发生Rollback时Counter将回退到0然后开始对多重踢击进行计数。一个关于Rollback的参量是FrameDataActionFlag,如果到达这个标记点,表示一次多重踢击结束。Dtalon的FrameDataActionFlag=04。
举个简单的2 kicks的例子。
Dtalon的各项参量数值
AnimationSpeed = 256
FramePerDirection = 13 (Aframe从00到12)
FrameDataActionFlag = 04
BaseRate = 100
假设其SI = 0
其增量和终止值分别为
Increment = [AnimationSpeed * (BaseRate + SpeedIncrease) / 100] = [256*100 / 100] = 256
Initial Kicks的终止值Terminating_value = 256* FramePerDirection = 256*13 = 3328
Follow-Up Kicks的终止值Terminating_value = 256* FrameDataActionFlag = 256*4 = 1024
代码:
动作开始
Game tick 1
counter增加, counter=256
counter<3328
Aframe=01
counter<1024
Game tick 2
counter增加,counter=512
counter<3328
Aframe=02
counter<1024
Game tick 3
counter增加, counter=768
is counter<3328
Aframe=03
counter<1024
Game tick 4
counter增加, counter=1024
counter<3328
Aframe=04
counter>=1024
第1次(多重)踢击结束,寻找下一个动作
counter回复到0
Game tick 5
counter增加, counter=256
counter<3328
Aframe=01
counter<1024
第2次踢击开始
Game tick 6
counter增加, counter=512
counter<3328
Aframe=02
counter<1024
Game tick 7
counter增加, counter=768
counter<3328
Aframe=03
counter<1024
Game tick 8
counter增加, counter=1024
counter<3328
Aframe=04
counter>=1024
Game tick 9
counter增加, counter=1280
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击在 tick 4已完成,counter不需要rolled back到0
第2次踢击继续
.
.
.
.
Game tick 16
counter增加, counter=3072
counter<3328
Aframe=12
counter>=1024
第1次(多重)踢击在 tick 4已完成,counter不需要rolled back到0
第2次踢击继续
Game tick 17
counter增加, counter=3328
counter>=3328
整个踢击结束
从这里我们可以看出,第1次踢击从tick 1 到 tick 4完成共4ticks,第2次踢击从tick 5 to tick 16完成共12ticks,整个过程一共是16ticks,即第1次踢击为4Fpa,第2次踢击为12Fpa,整个踢击共16Fpa。 按习惯,我们会说这次踢击的Fpa为12/4。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
共
条评分
回复
举报
离线
铃铛
UID:83661
注册时间
2009-08-31
最后登录
2021-02-27
在线时间
3431小时
发帖
59624
搜Ta的帖子
精华
4
金钱
6311
91币
0
信誉
0
访问TA的空间
加好友
用道具
发帖
59624
金钱
6311
91币
0
信誉
0
资产
0 IST
在线时间
3431 小时
注册时间
2009-08-31
最后登录
2021-02-27
加关注
发消息
只看该作者
板凳
发表于: 2010-12-09 18:40:42
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
DTalon Fpa公式
Initial Kick Frames={256*(FramePerDirection) / [AnimationSpeed*(BaseRate+SpeedIncrease)/100]}-1
Follow-Up Kick Frames={256*(FrameDataActionFlag) / [AnimationSpeed*(BaseRate+Speed_Increase)/100]}
Follow-Up Kicks的Fpa极速上下限
Initial Kicks的Fpa极速上下限
DTalon Follow-Up Kicks的Fpa极速上限
前面说过(BaseRate + SpeedIncrease)的上限为175
Increment = [AnimationSpeed * (BaseRate + SpeedIncrease) / 100]
= [256 * 175 / 100] = 448
增量Increment的上限就是448
Initial Kicks的终止值Terminating_value = 256* FramePerDirection = 256*13 = 3328
Follow-Up Kicks的终止值Terminating_value = 256* FrameDataActionFlag = 256*4 = 1024
以2 Kicks为例
代码:
动作开始
Game tick 1
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
Game tick 2
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 3
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
? ? ? ? ? ? ?
暂且在这里停止。从tick 1到tick 3共 3 ticks,counter在哪里回复到0?第1次踢击从tick 1到tick 几?下次踢击从哪个tick开始?能达到tick 2 (2Fpa)吗?其实这个问题前面已经有答案了。
前面最早的那个例子有这么一句话:
下一个动作从这个tick开始
即终止值不算在一次动作内,反映在帧数公式上就是最后的“ - 1 ”
Fpa={256*(FramePerDirection) / [AnimationSpeed*(BaseRate+SI)/100]}-1
如果这个公式也适用于DTalon的Follow-Up多重踢击的话,那么显然,Follow-Up Kicks是能达到2Fpa的。
啊啊啊~````不要急不要急 - -!
看看刚开始说Dtalon的那个简单的2 kicks例子
Game tick 4
counter增加, counter=1024
counter<3328
Aframe=04
counter>=1024
第1次(多重)踢击结束,寻找下一个动作
counter回复到0
Game tick 5
counter增加, counter=256
counter<3328
Aframe=01
counter<1024
第2次踢击开始
虽然counter在这个tick 4将回复到0,但是新的动作将从下一个tick开始而不是从这个tick开始。因而,不需要“ - 1 ”。
所以第1次踢击是从tick 1到tick 3共 3 ticks,下一个动作从tick 4开始,即
Follow-Up Kicks的极速上限Fpa为3
,HOHO,大功告成 -o- 。
DTalon Initial Kicks的Fpa极速上限
继续上面的增量上限448的例子
代码:
动作开始
Game tick 1
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
Game tick 2
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 3
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击结束,寻找下一个动作
counter回复到0
Game tick 4
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
第2次踢击开始
Game tick 5
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 6
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击在 tick 4已完成,counter不需要rolled back到0
第2次踢击继续
.
.
.
.
Game tick 10
counter增加,counter=3136
counter<3328
Aframe=12
counter>=1024
第1次(多重)踢击在 tick 4已完成,counter不需要rolled back到0
第2次踢击继续
Game tick 11
counter增加,counter=3584
counter>=3328
Aframe=14
counter>=1024
整个踢击结束,寻找新的动作,counter重新计数,下一个动作从这个tick开始。
可见Initial Kicks从tick 4到tick 10共7ticks,即7Fpa。
所以Dtalon的极速上限为7/3/3/3/3/3 Fpa。
如果你是从头开始看到这里的话,应该有些明白了吧:)。
要是连续2次Dtalon 2kick,这2次之间的
下一个动作从这个tick开始
怎么理解呢?看下面这个例子。
连续2次Dtalon 2kick 极速3/7
代码:
动作开始
Game tick 1
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
Game tick 2
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 3
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击结束,寻找下一个动作
counter回复到0
Game tick 4
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
第2次踢击开始
Game tick 5
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 6
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击在 tick 4已完成,counter不需要rolled back到0
第2次踢击继续
.
.
.
.
Game tick 10
counter增加,counter=3136
counter<3328
Aframe=12
counter>=1024
第1次(多重)踢击在 tick 4已完成,counter不需要rolled back到0
第2次踢击继续
Game tick 11
counter增加,counter=3584
counter>=3328
Aframe=14
counter>=1024
第1次Dtalon结束,找到第2次Dtalon的动作,counter重新计数回复到0,第2次Dtalon从这个tick开始。
Game tick 11
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
Game tick 12
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 13
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击结束,寻找下一个动作
counter回复到0
Game tick 14
counter增加,counter=448
counter<3328
Aframe=01
counter<1024
第2次踢击开始
Game tick 15
counter增加,counter=896
counter<3328
Aframe=03
counter<1024
Game tick 16
counter增加,counter=1344
counter<3328
Aframe=05
counter>=1024
第1次(多重)踢击在 tick 13已完成,counter不需要rolled back到0
第2次踢击继续
.
.
.
.
Game tick 20
counter增加,counter=3136
counter<3328
Aframe=12
counter>=1024
第1次(多重)踢击在 tick 13已完成,counter不需要rolled back到0
第2次踢击继续
Game tick 21
counter增加,counter=3584
counter>=3328
Aframe=14
counter>=1024
第2次Dtalon结束,寻找下一个动作,counter重新计数,下一个动作从这个tick开始。
即第1次Dtalon
从tick 1到tick 3,共3ticks 即3fpa。
从tick 4到tick 10,共7ticks 即7fpa。
第2次Dtalon
从tick 11到tick 13,共3ticks 即3fpa。
从tick 14到tick 20,共7ticks 即7fpa。
至于
下限
的问题,前面说过基本不考虑Slow的因素,SI的下限为-30,(BaseRate+SI)下限为100-30=70。
就由Dtalon的Fpa公式直接计算了,
18/6/6/6/6/6。
Initial Kick Frames={256*(FramePerDirection) / [AnimationSpeed*(BaseRate+SpeedIncrease)/100]}-1
Follow-Up Kick Frames={256*(FrameDataActionFlag) / [AnimationSpeed*(BaseRate+Speed_Increase)/100]}
AnimationSpeed = 256
FramePerDirection = 13
FrameDataActionFlag = 4
BaseRate = 100
DTalon Initial Kick SI Table:
+------+-----+
| SI | Fpa |
+------+-----+
| -30 | 18 |
| -27 | 17 |
| -23 | 16 |
| -18 | 15 |
| -13 | 14 |
| -7 | 13 |
| 0 | 12 |
| 9 | 11 |
| 19 | 10 |
| 31 | 9 |
| 45 | 8 |
| 63 | 7 |
+------+-----+
DTalon Follow-Up Kick SI Table:
+------+-----+
| SI | Fpa |
+------+-----+
| -30 | 6 |
| -19 | 5 |
| 0 | 4 |
| 34 | 3 |
+------+-----+
顺便举个例子:1级Bos(Attack Speed +21),拿双爪:主爪巨鹰爪(-30WSM/0IAS),副爪绿爪(0WSM/40IAS),其他装备提供20IAS,Dtalon能达到多少Fpa?
<1>不考虑C/C bug
SI=Skill EIAS-WSM+EIAS
= 21 - (-30+0)/2 + [120*20 / (120+20)]
= 21 + 15 + 17
= 53
能达到8/3/3/3/3……。(绿爪的IAS怎么不算在内?啊啊啊,什么?踢击技能只算主爪的IAS?答对-o-)
<2>考虑C/C bug
SI=Skill EIAS-WSM+EIAS
= 21 -[(-30+0)/2 +(-30-0)] + [120*20 / (120+20)]
= 21 + 45 + 17
= 83
能达到7/3/3/3……急速。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
到这里这个帖子算是结束了,其实举一反三的话,我们还可以计算其他动作的帧数。
Spell Casting:施法动作
Asn的施法动作有Psychic Hammer(心灵战锤),Cloak of Shadows(魔影斗篷)和Mindblast(精神爆震),IAS, WSM和BoS对他们的速度都没有影响,FCR决定了施展他们的快慢。
一个非常有趣的技能就是Dragon Flight(飞龙在天),FCR决定了它的初始cast速度,传送到目标面前后的踢击动作则取决于Asn的IAS、WSM和BOS等这些EIAS特性(即SI),HOHO,完美的结合。
再顺便说说Teleport(瞬移)吧,现在已经不是Sor的专利了。假设Asn的Cast Rate Frames为9帧,从A点TP到B点,那这9帧的动作是在哪里完成?A点全部、B点全部、A→B整个过程?
答案是A→B整个过程(上面的DF也是如此),以前一直有存疑,这次终于了解了,施法动作和攻击动作的原理是一样的,算是拨乱反正吧。
EFCR=Effective Faster Cast Rate:有效FCR
FCR=Faster Cast Rate:快速施法速度
EFCR = [(120 * FCR)/(120 + FCR)]
相应的,EFCR也可转换为FCR:FCR = (120 * EFCR)/(120-EFCR)
Asn施法动作的各项参量及公式
Cast Rate Frames = {256*(FramePerDirection) / [AnimationSpeed*(BaseRate+EFCR)/100]}-1
AnimationSpeed = 256
FramePerDirection = 17
BaseRate = 100
+-----+------+
| FCR |Frames|
+-----+------+
| 0 | 16 |
| 8 | 15 |
| 16 | 14 |
| 27 | 13 |
| 42 | 12 |
| 65 | 11 |
| 102 | 10 |
| 174 | 9 |
+-----+------+
Hit Recovery(打击恢复)和Blocking(格挡动作)
和施法动作类似。
EFCR=Effective Faster Hit Recovery:有效FHR
FHR=Faster Hit Recovery:快速打击恢复
EFHR = [(120 * FHR)/(120 + FHR)]
Asn打击恢复的各项参量及公式
Hit Recovery Frames = {256*(FramePerDirection) / [AnimationSpeed*(BaseRate+EFHR)/100]}-1
AnimationSpeed = 256
FramePerDirection = 5
Base = 50
+-----+------+
| FHR |Frames|
+-----+------+
| 0 | 9 |
| 7 | 8 |
| 15 | 7 |
| 27 | 6 |
| 48 | 5 |
| 86 | 4 |
| 200 | 3 |
+-----+------+
EFBR=Effective Faster Block Rate:有效FBR
FBR=Faster Block Rate:快速格挡速度
EFBR = [(120 * FBR)/(120 + FBR)]+ Skill Bonus
Asn快速格挡的各项参量及公式
Block Rate Frames = {256*(FramePerDirection) / [AnimationSpeed*(BaseRate+EFBR)/100]}-1
AnimationSpeed = 256
FramePerDirection = 3
Base = 50
+-----+------+
| FBR |Frames|
+-----+------+
| 0 | 5 |
| 13 | 4 |
| 32 | 3 |
| 86 | 2 |
| 600 | 1 |
+-----+------+
共
条评分
回复
举报
发帖
回复
返回列表
https://bbs.91d2.cn
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
隐藏
快速跳转
〖 暗黑破坏神综合讨论大区 〗
『 暗黑综合讨论区 』
『 新人培训区 』
『 增值服务/特色系统专区 』
『 技术资源区 』
〖 暗黑破坏神FZ/HC/PVP区 〗
『 非资料片讨论区 』
『 非资料片物品交易/拍卖区 』
『 PVP专区 』
『 专家模式讨论区 』
〖 暗黑破坏神物品交易大区 〗
『 物品估价区 』
『 物品交易区 』
『 物品拍卖区 』
『 极品博物馆 』
〖 暗黑资料/活动/技术大区 〗
『 赛事活动专区 』
『 天使辅助专区 』
『 暗黑文化专区 』
『 暗黑资料库 』
『 人物角色区 』
『 凭水相逢 』
〖 暗黑破坏神2重制版:狱火重生专区 〗
『 暗黑2重制版讨论区 』
『 暗黑2重制版交易区 』
『 暗黑2重制版拍货区 』
〖 战队/部落/联盟 〗
『 TOP战队 』
『 BT战队 』
『 IF战队 』
『 DX弟兄联盟军团 』
『 部落级战队联盟专区 』
『 战队综合管理区 』
〖 暗黑战网管理办公室 〗
『 战网游戏事务/投诉专区 』
『 论坛(BBS)人事/投诉专区 』
『 论坛管理办公室 』
关闭
关闭
选中
1
篇
全选