跳转到内容
开关侧边栏
搜索
创建账号
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
玩法条目
界面
机制
旅程
Rating
解歌系统
版本更新日志
列表条目
定数表
曲目列表
曲包列表
曲师列表
谱师列表
画师列表
徽章列表
友情链接
Arcaea中文维基
工具
链入页面
相关更改
用户贡献
日志
查看用户组
特殊页面
页面信息
查看头像
查看“User:ALFalpha/chartdata”的源代码
用户页
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
更多
阅读
查看源代码
查看历史
←
User:ALFalpha/chartdata
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
__NOINDEX__ <!-- 没有UserCheck,也不会用qwq--> {| class="wikitable mw-collapsible mw-collapsed" width=100% !警告:Rotaeno中一切资源,包括图像、音源、代码等,<br>版权均为心动网络所有,擅自修改、传播,后果自负!<br>本页面严禁链入及引用! |- |<br>本页面是对Rotaeno谱面格式的简要介绍。 ==总论== 谱面文件存放于(Android apk)/assets/bin/Data/data.unity3d中。事实上,除了曲绘、音频文件外,绝大多数的小文件都在这里。 用AssetStudio等软件可提取出具体的谱面文件。它们名为<nowiki> <曲目id> [难度] (如:after_rain [IV]),</nowiki>类型为MonoBehaviour,如果事先提取了游戏的dll文件则可以解析出详细数据。<s>但就算不解析也能阅读出占文件大小90%+的加密字符串</s> "EncryptedV2ChartString": "cgjn/3jVl840+fB7..." 此时得到的谱面是用AES加密的base64字符串。采用适当的密钥解密,可以得到可供人类阅读的谱面: # Version 2 # BPM ... # Speed ... # Note ... ==解析== 虽说是人类可读的谱面,但其中没有包含任何的额外信息,想要阅读<s>靠文字脑补</s>谱面还是有一定难度。 谱面以行为界,每行只有用逗号分隔的参数。下面详细说明它们的作用: ===BPM=== 这部分每行只有两个参数:时间点(单位ms)和BPM大小,表示“歌曲进行到该时间点时,谱面BPM变为该值”。 大部分没有变速的谱面,这部分只有时间原点对应的一行: 例:[[After Rain]] {{color|难度IV}} # BPM 0,160 少数谱面的时间起点不是0,这可能是由音频延迟引起的: 例:[[The Formula]] {{color|难度IV}} # BPM 50,144 至于有些谱面…… 例:[[Rush E]] {{color|难度IV}} # BPM 0,130 1846,30 5846,35 7560,46 8864,56 9935,67 10831,78 11600,89 12274,68 13156,115 ...(总共108行) ===流速=== 这部分每行三个参数:时间点,流速,是否渐变。这里流速不影响时间;谱面中所有的时间都是歌曲实际进行的时间。 在这部分最早的时间点(如果有)之前,流速默认为1。这里的流速乘上用户设置的流速,就是谱面实际的播放速度。 可以通过流速乘上对应的持续时间计算出'''谱面时间''',这是物件出现的位置。 流速可以为0或者负数,[[Inverted World]] {{color|难度IV}} 开幕的黑线表演就是这样实现的: 例:[[Inverted World]] {{color|难度IV}} # Speed 0,1,1 1000,0.2,1 1667,0.2,1 2000,1,1 2646,6,1 2667,10000,0 2669,-8,0 3333,-0.3,1 4333,-0.3,1 4667,-1,1 5312,-8,1 5333,10000,0 5335,-8,0 6000,-1,1 6333,-0.1,1 7000,-0.1,0 7333,-1,1 7979,-8,1 8000,400,0 8002,-8,0 8667,-0.5,1 9167,0,1 10333,1,1 ... ===物件=== 这部分每行前两个参数是固定的,分别为物件类型和时间点。根据物件类型的不同,还会有一些额外参数。'''物件可以不按时间顺序写!''' ===={{color|TAP}}==== 0,1500,90 Tap对应物件类型0,第三个参数为角度。这里的角度是按时钟样式计算的:0度为正上方,90度为水平右手方,270度为水平左手方。 ===={{color|FLICK}}==== 1,3175,60 Flick对应物件类型1,第三个参数同样为角度。 ===={{color|SLIDE}}==== 2,135050,120,3,0,4,16,0,0 Slide对应物件类型2,每行代表一个slide组。这里参数很多,我们命名后逐一介绍: noteType, time, degree, slideHeadType, sildeEndDegree, slideSnap, slideCount, prevCurvature, nextCurvature *'''noteType''':物件类型,这里是2(slide)。 *'''time''':silde头判定时间 *'''degree''':slide头所在角度 *'''slideHeadType''':slide头物件类型,可以是0(tap), 1(filck), 2(slide), 3(largeSlide)。除了slide头以外,这个slide组中剩下的物件都是普通slide。 *'''slideEndDegree''':slide尾所在角度 *'''slideSnap''':每拍内slide数量。如果这首歌是常见的4/4拍,那么这个参数*4就是这组slide中相邻两个所间隔的分音数。 *'''slideCount''':这组slide的总数。包含slide头,所以若这个参数为1,则这组slide只有slide头,又若slideHeadType不是2或3,则这组slide里实际上没有slide。 *'''prevCurvature, nextCurvature''':控制slide组的形状,参见[[#引导线]]。 如果要写单独的大slide,只能写一个slideHeadType为3,slideCount为1的slide组;要写连续的大slide,只能一个一个写。 ===={{color|ROTATE}}==== 4,0,45,75,0,0 Rotate对应物件类型4。第三个参数为旋转起点角度,第四个参数为旋转角度,正数为顺时针(红色),负数为逆时针(蓝色)。 然而实际判定并不看这两个角度,而是看旋转速度;这两个参数(和后面两个参数)是为连接引导线(黑线)而存在的。 ===={{color|CATCH}}==== 5,11167,1 5,11667,0 Catch对应物件类型5。第三个参数为catch所在的侧,0为右手侧,1为左手侧。Catch总在引导线上,其角度由对应时间点的引导线角度决定。 ===={{color|BOMB}}==== 6,6983,1 21,1333,105 Bomb对应物件类型6和21。类型6为老版bomb,参照catch格式,只能位于引导线上;类型21为新版freeBomb,参照tap/filck格式,可以不在引导线上。 ====引导线==== 11,2583,90,-105,0,0 11,4000,150,0,50,50 引导线对应物件类型11,参数与rotate相同。引导线总是中心对称,只需写一侧即可。 谱面中写的只是引导线的“节点”;引导线会在这些节点之间连接,具体方式由最后两个参数(prevCurvature, nextCurvature)决定。 |}
本页使用的模板:
Template:Color
(
查看源代码
)
Template:Color/style.css
(
查看源代码
)
Module:Arguments
(
查看源代码
)
Module:Color
(
查看源代码
)
返回
User:ALFalpha/chartdata
。