Board logo

标题: [技术]关于变速溢出的极限简述 [打印本页]

作者: CRS    时间: 2009-10-28 23:23     标题: [技术]关于变速溢出的极限简述

关于变速溢出的极限简述

大家在做变速的时候可能会遇到一个问题,就是如果哪个作品中变速如果用得过多了,会导致MANIA无法正常播放。这个问题我很久之前就遇到过,也在很久之前也就找到了原因,最近有不少人问我这个问题,我在这里还是正式回答一下结论吧:


在BMS制作中,我们通过在变速栏里写入不同的数值而得到变速效果,而写入的数值可以是小数或者是整数。在一个BMS中,我们设写入的整数的数量为Z,设小数的数量为X。研究表明,Z可以很大,(暂时不确定其极限),不影响mania对于变速的正常播放;而X的最大极限为255,即X<=255时,mania播放正常,否则会导致变速溢出。另外要说明的是,X只是指在变速栏写入的小数数量,与歌曲本身BPM数值与否是小数并无关联,与Z的数量也不相干,与小数的有效数字及小数点后的位数也无关。所以影响变速溢出的关键值就是X,也就是小数数量X不能超过255就可以了。



[ 本帖最后由 CRS 于 2010-5-23 01:34 编辑 ]
作者: ★弥勒★    时间: 2009-10-28 23:54

好文,为你重新编辑一下,突出重点
作者: CRS    时间: 2009-10-28 23:55

弥勒出现啦。。。。。不是吧
作者: Bombtrack    时间: 2009-10-29 12:11

你看,沙发不见了
作者: 天Y来客    时间: 2009-10-29 12:43

就算是进地下室也得顶
作者: Freefire1943    时间: 2009-10-29 20:18

恩,早就该出来了
作者: wangzb89    时间: 2009-10-30 16:02

也就是说,它的整型的内存分配是自由的,但实型的就不行了。
作者: kwjcool321    时间: 2009-11-1 12:16

你的意思是
         《避免有小数点的变速》
                              是吧?
我明白了。
作者: 旎娜莹    时间: 2009-11-2 13:35

提示: 作者被禁止或删除 内容自动屏蔽
作者: kwjcool321    时间: 2009-11-3 14:38

我说明一下: (CRS,如果我说错请指正我)

Z类变速:255以内整数的变速没有数量的限制。例:150,10,1,255 你想放多少个都行。请参考CRS的《梦中的婚礼》
X类变速:小数变速,255以上变速等不能超过255个。例:155.5,0.0001,50000,256 放太多就会溢出。

这里有两个255,第一个是指(BPM数值)不超过255,第二个是指(变速的数量)不超过255,请别搞错。

PS:这是跟2进制和16进制有关。在MAIN DATA FIELD里,Z类变速写入为2进制。
       BPM32=0010 0000;BPM255=1111 1111。Z类变速不会被储存在HEADER里。
       X类变速的数量为16进制,并储存在HEADER里。第十二个变速为#BPM 0C
       第100个变速为#BPM 64,第200个是#BPM C8,第255个为#BPM FF。
       第256就会变成#BPM 100 (溢出),3位数就溢出了。Mania解读失败。

         2进制是 0,1,10,11,100,101,110,111,1000,1001,1010,1011..............
       10进制是 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18..........
       16进制是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13..........

结论:少过FF者则存,超过FF者则亡。(本人意见与实际人物名称无关)
作者: 上海神手古古    时间: 2009-11-3 16:10

OTL  进来拜一下,我都不会用变速了……
作者: CRS    时间: 2009-11-4 02:56

说的不对哦,应该是这样,我举例说明吧
1,首先跟歌曲原BPM不相干
2,写入的bpm数值可以是整数:如120,70,96,2560,3,7等等,这样的话,你可以写N个都没关系
3,写入的bpm数值可以是小数,但是最多只能是255个:如120.5,785.554,0.579,999.45121475,小数的有效数字和小数点后面多少位都没有关系

作者: Freefire1943    时间: 2009-11-13 22:15

在BMSE没改进之前,就只能先根据这个来做了

另外一个很囧的地方,就是节拍,似乎BMSE本身是支持的,但是mania不支持。比如,如果一个曲子的节拍一直有变化,从7拍变到3拍,再变到10等等,但听起来曲子速度并没变化(我手头就有个这样的),这就很难办




欢迎光临 浆糊论坛-RO小站 (http://bbs.rohome.cn/) Powered by Discuz! 7.2