木星劲乐团

标题: 【备份】bmsosu格式解析 [打印本页]

作者: Fate﹏贝里奇娜    时间: 2015-1-23 19:29
标题: 【备份】bmsosu格式解析
bms文件:

*---------------------- HEADER FIELD

#PLAYER 1(若为2或3,则ibmsc中会显示D1~D8,bms转ojn时1或者2或者3没区别,D1~D8可以无视)
#GENRE (曲风)
#TITLE (歌名)
#ARTIST (作曲家)
#BPM (bpm)
#PLAYLEVEL (等级)
#RANK 3 (ibmsc中显示的是判定难度,不知道有啥用,未测试)


#LNTYPE 1 (bmse中没有这句话会没面条好像,ibmsc经测试,这句话可有可无)

#WAV02 (bgm出处)
#BPM01 (见下文)

*---------------------- MAIN DATA FIELD
下面的东西

注:一切位置以0为始,即0/4是在小节线上,不存在4/4,因为4/4即为下一个小节的小节线上了。

例:#00803:0000000000000042

左边,#XXXYY:

XXX为XXX小节,YZ=03或者08为变速,YZ=01为bgm轨(注意bgm轨无论在什么位置,YZ恒等于01),Y=1为小米,Y=5为面条,Z为1234567个轨,6为1轨,1为2轨,2为3轨,3为4轨,4为5轨,5为6轨,8为7轨,(9为8轨),那么#11111就是111小节的第二根轨上有小米,具体小米的位置下面说。

03变速方案:0~255的整数转为16进制,即00~FF。含小数或者大于等于256数,一律标在“MAIN DATA FIELD”的上面,即#BPM01 256。

08变速方案:在bpm不为0~255的整数下,则在MAIN DATA FIELD上方显示#BPM01 ???,同时,假设001小节的4分线上的4个变速,分别为1000,2000,3000,4000,则在“MAIN DATA FIELD”的上面会有#BPM01 1000,#BPM01 2000,#BPM01 3000,#BPM01 4000,同时,#00108:01020304,即08变速下,这里01020304是与上面的bpm0?相对应的。

右边:若为4分音符,则总共4个00,若其中一个note标签为01,且是这个note在小节的最后一个4分音符,即为00000001,若只有小节线上有note,则只有01,没有01000000这些东西。
关于面条,只计开头末尾的note,即若面条占小节的一半从1/4~3/4,那么为#00151:00010001。若跨越小节,则假如是001小节的1/4位置到002小节的1/4位置,那么#00151:00010000,#00251:00010000即可。
另外当然也是有5分音符这种奇葩note的,比如神威就有,一个小节平均下来5个note,因此0101010101是存在的。不过osu里这种note应该很少,但也不能忽视。

左边#00101:bgm轨不存在6123458的排序,若bgm轨有note,则在bms中一行一行排下来,

例:
#00101:00
#00101:01010000
#00101:0101
#00101:01000001
#00101:01

#00201:00
#00201:00010000
#00201:00
#00201:00
#00201:01

bgm1轨1~2小节皆为空
bgm2轨1小节小节线上一个小米,1小节1/4线~2小节1/4线为面条
bgm3轨1小节小节线上一个小米,一半位置一个小米
bgm4轨1小节小节线上一个小米,3/4位置一个小米
bgm5轨1小节小节线上一个小米,2小节小节线上一个小米

以此类推。

(可无视:bms转ojn,bms转osu,osu转bms都用不到的地方,ibmsc中的D1~D8)

Y=2为小米,Y=6为面条。
1~8轨分别为12345896

完毕。

---------------分割线,下面说osu----------------



osu文件

[General]
AudioFilename: Intersect Thunderbolt.mp3(bgm)
AudioLeadIn: 1500(无视)
PreviewTime: 9800(无视)
Countdown: 0(无视)
SampleSet: Soft(无视)
StackLeniency: 0.7(无视)
Mode: 3(无视)
LetterboxInBreaks: 0(无视)
SpecialStyle: 0(无视)
WidescreenStoryboard: 1(无视)

[Editor]
Bookmarks: 210,9810,25170,40530,106050(无视)
DistanceSpacing: 1.5(无视)
BeatDivisor: 4(无视)
GridSize: 4(无视)
TimelineZoom: 1(无视)

[Metadata]
Title:Intersect Thunderbolt-Remix(歌名)
TitleUnicode:Intersect Thunderbolt-Remix(无视)
Artist:S.S.H.(作曲家)
ArtistUnicode:S.S.H.(无视)
Creator:ljqandylee(noter)
Version:7K Exceed(无视)
Source:eXceed3rd-JADE PENETRATE-BLACK PACKAGE(无视)
Tags:Rain Lindwurm Celestia Itou Shizuka victorica_db M_o_m_o(无视)
BeatmapID:323070(无视)
BeatmapSetID:127305(无视)

[Difficulty](无视)
HPDrainRate:8(无视)
CircleSize:7(无视)
OverallDifficulty:8(无视)
ApproachRate:9(无视)
SliderMultiplier:2.1(无视)
SliderTickRate:1(无视)

[Events](bgm部分/key部分,见下文)
//Background and Video events
0,0,"Background.jpg",0,0
//Break Periods
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Fail)
//Storyboard Layer 2 (Pass)
//Storyboard Layer 3 (Foreground)
//Storyboard Sound Samples
Sample,97520,0,"soft-hitfinish.wav",40
Sample,97520,0,"soft-hitclap.wav",40
Sample,105200,0,"soft-hitfinish.wav",40
Sample,105200,0,"soft-hitclap.wav",40
//Background Colour Transformations
3,100,163,162,255(无视)

[TimingPoints](变速,详见下文)
200.581127504251,240,4,2,1,40,1,0(变速,详见下文)
90440,-100,4,2,1,40,0,1(变速,详见下文)
105560,-100,4,2,1,40,0,0(变速,详见下文)
105800,-100,4,2,1,40,0,1(变速,详见下文)
123080,-100,4,2,1,40,0,0(变速,详见下文)


[Colours](无视)
Combo1 : 234,0,0(无视)
Combo2 : 234,117,0(无视)
Combo3 : 234,234,0(无视)

[HitObjects](note,详见下文)
36,192,200,5,8,0:0:0:17:(note,详见下文)
329,192,200,1,8,0:0:0:17:(note,详见下文)
256,192,200,1,8,0:0:0:17:(note,详见下文)
182,192,260,1,0,0:0:0:53:(note,详见下文)
109,192,320,1,0,0:0:0:53:(note,详见下文)
475,192,380,1,0,0:0:0:53:(note,详见下文)
182,192,440,1,0,0:0:0:53:(note,详见下文)
402,192,440,1,0,0:0:0:53:(note,详见下文)
109,192,500,1,0,0:0:0:0:(note,详见下文)
256,192,560,1,8,0:0:0:17:(note,详见下文)



首先说【note】,也就是[HitObjects]

注:从左到右共9个数为小米,10个数为面条

第一个数字:

7K:1~7轨顺序

36,109,182,256,329,402,475 适用osu自制谱
32, 96,160,224,288,352,416 适用bms转osz的谱

8K:1~8轨顺序

32, 96,160,224,288,352,416,480

6K:1~6轨顺序

42,128,213,298,384,469

5K:1~5轨顺序

51,153,256,358,460

4K:1~4轨顺序

64,192,320,448

第二个数字:

osu原谱恒定192,bms转ojn的谱,192为米,0为面条

第三个数字:

0~2000为第0小节,2000~4000为第1小节
1000为中间,500为1/4,250为1/8,125为1/16,1/32为625(注意这里125/2,得到的是625,即原来4位数为变成5位数,若5位数则会变成6位数)

第四个数字:

1为小米,128为面条,若为1则总共9个数,若为128则总共10个数

第五个数字到最后:

不知道啥用


详解:

7K:

36,192,2000,1,0,0:0:0:0:

第一小节小节线上1轨一个小米

36,192,2000,128,0,4000,0,0:0:0:0:

第一小节小节线~第二小节小节线1轨一根面条

36,192,2000,1,0,0:0:0:0:key.wav

第一小节小节线上1轨一个小米,同时有key.wav的key音

【变速】

0,413.79310345,4,2,2,100,1,0

第一个数字是位置,类前面的0~2000
第二个数字是变速,用60000除以这个数字即可得到bpm值,如果这数字是120,那么60000/120=500,那么bpm=500
后面的数字看不懂

54620,-100,4,2,2,100,0,1
89172,-100,4,2,2,100,0,0

直接无视,在osu里这叫高潮段/副歌段

【bgm】[Events]

Sample,97520,0,"soft-hitfinish.wav",40

第一个单词无视
第二个数字位置
第三个数字0(未测试)
第四个就是bgm的文件名
第五个数字40(未测试)

--------------分割线----------------


应该说完了。

备注:

1、osu转bms转出来的bms可能会很大,十几兆很正常,六神做完的转换器转出来的bms就有几十兆,不过ibmsc打开再保存就会缩小到几十K,应该还是最大格线原因。

2、六神那个转换器里的格线设置为可选,意思就是暂时没想到完美方案,那个bit我始终选择的960,其他测试情况:

20000bit,出错
15000bit,出错
12500bit,看上去似乎比10000要好一点
10000bit,155bpm的1分半的歌导出来40M左右,基本问题不大,但是仍需从头看到尾
2000bit,跟500差不多
500bit,大小,和容错,比较兼顾,错误不多,大概20个左右,但依然需要细查
16bit,偏到家都不认识的程度

详见此贴http://bbs.o2jam.cc/thread-8496-1-1.html第三条

3、做完之后还得慢慢测试。


作者: liuhe    时间: 2015-1-23 20:24
好叼的样子!




欢迎光临 木星劲乐团 (https://bbs.o2jam.cc/) Powered by Discuz! X3.3