Board logo

标题: [攻略&心得] 攻速计算偷懒通俗版 [打印本页]

作者: memoryrain    时间: 2015-12-13 14:16     标题: 攻速计算偷懒通俗版

这服务器有很多新玩意,以前的计算器已经跟不上了,本文教你自己计算所需。资料理论都是前人的,俺只负责讲通俗点。
暗黑的动作系统说白了就是一个视频播放器。各种视频播放器大家都用过了,正常速度播放之外,还有快放/慢进的功能。暗黑里各种加速/减速(提升ias/衰老之类)的结果体现出来就是播放器的快进/慢放。
实际影片播放时间=影片时长/播放倍速
这是视频播放器的最简单的公式了,暗黑一样用,剩下的只是确定影片时长是多少,播放倍速是多少而已。

先来看最基本动作速度计算公式
FPA={HitShift*(FramePerDirection-StartingFrame)/[(BaseRate+SI)*AnimationSpeed/100]}-1
[ ]为向下取整,{ }为向上取整。


不要被公式一堆不知所以的变量吓到了,解释一下就明白了。

名词解释:
FPA  动作的实际帧数。也就是实际影片播放时长。
HitShift 精度参数,数值固定为256 。这个参数代表暗黑把1帧细分成256份,1/256帧就是暗黑里最小的时间单位。至于为什么是256,计算机本身是二进制,加上当年计算机一字节都是8位的,所以就选了2的8次方=256喽。
FramePerDirection 正常情况下完成某动作的所需桢数。也就是影片时长。
StartingFrame  起始帧数,仅仅亚马和女巫有这项。其他角色为0。 这个么,举个例子,男人打人一拳,从手动了就开始算时间。女人打人一耳光,她把手举起的时间不能算,要减掉...女人把手举起来准备扇耳光的时间就是StartingFrame了。
                         至于为啥刺客mm没有这个待遇就不得而知了。
BaseRate 基础速率,数值取决于动作类型。 通常是100。为啥是100,因为后面除了100。。。。其实就是100%拆开了而已,正常的速率。
SI 速度增量。 加速或减速播放的变量,通过ias之类改变。
AnimationSpeed 动作的速率参量,表示你在1帧中内能做多少个 1/256帧内正常人能做的事。正常的人1帧当然就做1帧的事了,所以一般是256。但也有些神阿鬼阿阿猫阿狗之类,1秒钟能做更多或更少的事。也可以理解为有的就是天生动作迅捷,有的就是天生动作迟缓。

都是正常情况(SI=0无加减速,BaseRate=100正常动作,AnimationSpeed=256正常人,StartingFrame=0不是女人)下,公式实际就是 FPA= FramePerDirection-1。-1代表暗黑不播放普通动作的最后一桢。
在BaseRate=100,AnimationSpeed=256,StartingFrame=0情况下,公式简化为  FPA= FramePerDirection/(1+SI%)-1。1+SI%就是播放倍速。

理解了各参数的实际意义,其余看这个http://tieba.baidu.com/p/362588372。还理解不了的自行准备豆腐撞死。俺只有精力写这么多了

[ 本帖最后由 memoryrain 于 2015-12-13 14:53 编辑 ]
作者: jamesskl    时间: 2015-12-13 14:32

老实说我并没看完  大部分人跟我一样吧
作者: 小郭二号    时间: 2015-12-13 14:51

能不能把FramePerDirection做个EXCEL造福人类
作者: memoryrain    时间: 2015-12-13 15:44     标题: 回复 3# 的帖子

这个太简单吧,把贴子里的附表粘到WORD里转换成表格再导入excel就是了
作者: 身体很保守    时间: 2015-12-13 15:49     标题: 回复 2# 的帖子


作者: 春雨    时间: 2015-12-13 16:39

没有 内涵段子 的神评
作者: meyousina    时间: 2015-12-13 17:56

大神是不是要回归呀,呵呵
作者: ctxiao    时间: 2015-12-13 18:21

引用:
原帖由 memoryrain 于 2015-12-13 15:44 发表
这个太简单吧,把贴子里的附表粘到WORD里转换成表格再导入excel就是了
大神回归了?
作者: memoryrain    时间: 2015-12-13 20:04

游戏就没打算回归了。
理解一楼公式的含义是理解D2攻速计算的基础,不理解光靠死记硬背很容易忘掉。理解之后大部分动作攻速计算就明了了,包括变形和回退动作(热诚和炮轰之类)。变形特殊在AnimateSpeed是个变量,回退特殊在处于FramePerDirection参数位置上的变量。假如打人一拳一共要13帧,其中第7帧时拳头已打到人身上。那么这个打拳动作的FramePerDirection为13,FrameDataActionFlag为7。
作者: 心动无错    时间: 2015-12-13 22:15

大神神作通俗易懂啊
作者: wdl    时间: 2015-12-16 08:52

lz是可以考虑回归的




欢迎光临 anhei3战网 (http://test.anhei2.com/) Powered by Discuz! 6.0.0