扩展特性文档

prpr 在支持 Phigros 官方谱面格式、pec 格式和 rpe 格式之外,加入了一些谱面特性。这些谱面特性目前只在 prpr 及基于其构建的客户端上可用。它们包括:

关于特性的配置需要全部存储在压缩包根目录的 extra.json 中。为了使用谱面特性,你需要手动编辑 JSON 文件。如果你不知道 JSON 是什么,请参阅 JSON 教程

BPM 配置

在进行相关配置前,你需要在 extra.json 中预先设定好曲目的 BPM。例如:

{
   "bpm": [
      { "time": [0, 0, 1], "bpm" : 200.0 },
      { "time": [10, 1, 2], "bpm" : 250.0 }
   ],
   ...
}

这里表示歌曲最初 BPM 为 200,而后在十又二分之一拍是转换为 250

动画变量

在配置文件中会常常用到动画变量。例如,在 RPE 中,的 X 坐标变化事件实际上就是 X 坐标作为一个动画变量。

prpr 的动画变量有两种格式。第一种即单个值,表示该变量不会更改,一直维持同一个值。这种格式是为了方便填写而适用的。第二种格式与 RPE 中的格式相同,是由多个 Event 组成的。单个 Event 格式如下所示:

{
	"startTime": [0, 0, 1],
	"endTime": [0, 0, 1],
	"easingType": 2,
	"easingLeft": 0.0,
	"easingRight": 1.0,
	"start": ...,
	"end": ...
}

其中 startTimeendTime 是事件的开始和结束时间;easingType 是缓动类型;easingLefteasingRight 是可选的,代表裁剪缓动的开始与结束位置。

startend 代表该时间开始和结束处该变量的值。这里值的类型是取决于变量本身的类型的,它可以是下面类型中的任意一种:

  • float:单个小数;
  • vec2:两个小数表示的二维向量,用数组表示;
  • color:四个整数(0-255)表示的颜色,格式为 [R, G, B, A]

例如,下面的动画变量将在特定时段内从 01 线性变化:

[
	{
		"startTime": [2, 0, 1],
		"endTime": [4, 0, 1],
		"easingType": 2,
		"start": 0.0,
		"end": 0.1
	}
]