Skip to content

Commit

Permalink
Merge pull request #16 from NuanRMxi/main
Browse files Browse the repository at this point in the history
新增&完善:RPE谱面文档
  • Loading branch information
NuanRMxi authored Aug 25, 2024
2 parents bf2a244 + deedd5d commit 40ebb96
Show file tree
Hide file tree
Showing 9 changed files with 300 additions and 68 deletions.
7 changes: 7 additions & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@
- [谱面文件格式](chart-standard/chart-format/index.md)

- [RPE](chart-standard/chart-format/rpe/index.md)
- [谱面根目录](chart-standard/chart-format/rpe/root.md)
- [判定线](chart-standard/chart-format/rpe/judgeLine.md)
- [beat](chart-standard/chart-format/rpe/beat.md)
- [音符](chart-standard/chart-format/rpe/note.md)
- [普通事件](chart-standard/chart-format/rpe/event.md)
- [特殊事件](chart-standard/chart-format/rpe/extendEvent.md)
- [扩展特性](chart-standard/chart-format/rpe/extend.md)

- [音乐文件格式](chart-standard/music.md)

Expand Down
9 changes: 9 additions & 0 deletions src/chart-standard/chart-format/rpe/beat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# beat

`beat` 是RPE所有事件的时间单位,它是一个 `JsonArray` ,在RPE中显示为 `[0]:[1]/[2]`
单BPM计算方式为:
```csharp
double beat = RPEBeat[1] / RPEBeat[2] + RPEBeat[0];
double seconds = BPM * beat / 60;
```
多BPM计算方式待补充。
28 changes: 28 additions & 0 deletions src/chart-standard/chart-format/rpe/event.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Event
本页将介绍判定线事件层级下的**普通事件**

RPE中,一共有五种普通事件,它们分别是:`moveXEvents`(X轴移动事件)、`moveYEvents`(Y轴移动事件)、`rotateEvents`(旋转事件)、`alphaEvents`(不透明度事件)、`speedEvents`(音符流速事件)。
在层级下,这些字段都对应一个 `JsonArray`,每一个元素代表一个事件。

除了**流速事件**外的其他所有普通事件都应该含有以下字段。

| 字段名 | 类型 | 描述 | 默认值 | 加入版本 |
|:------------:|:-----------------------:|:----------------------------------------------------------------------------------------------------------------------:|:----------------------:|:----:|
| bezier | int | 缓动是否为贝塞尔曲线,`0` 为不是,`1` 为是 | 0 | - |
| bezierPoints | JsonArray | 贝塞尔曲线控制点,当`bezier``1`时生效,详见[百度百科](https://baike.baidu.com/item/%E8%B4%9D%E5%A1%9E%E5%B0%94%E6%9B%B2%E7%BA%BF/1091769) | [ 0.0, 0.0, 0.0, 0.0 ] | - |
| easingLeft | float | 缓动的左边界位置,最小为 `0.0`,最大为 `1.0` | 0.0 | - |
| easingRight | float | 缓动的右边界位置,最小为 `0.0`,最大为 `1.0` | 1.0 | - |
| easingType | int | 缓动类型,详见[extend](./extend.md#easingtype) | 1 | - |
| linkgroup | int | - | - | - |
| start | float | 事件开始时数值 | - | - |
| startTime | [beat](./beat.md) | 事件开始的时间 | - | - |
| end | float | 事件结束时数值 | - | - |
| endTime | [beat](./beat.md) | 事件结束的时间 | - | - |

- 坐标系锚点位于屏幕中心,X轴范围为 `-675 ~ 675`,Y轴范围为 `-450 ~ 450`
- 不透明度事件的正常范围为 `0 ~ 255``0`为完全透明,`255`为完全不透明。
- 若不透明度事件数值为负数,则会在隐藏判定线的同时隐藏这条判定线上的所有音符。(根据作者所述,此功能是废弃的非法功能但它仍然有效)
- 因为负数透明度隐藏的音符无打击特效,也没有打击音效。(无法确实是否为Bug导致)
- 音符流速事件只有上述的 `startTime``endTime``start``end``linkgroup` 字段。
- 音符流速事件**不支持缓动**
- 流速为负数时,音符会向上飞,若音符为 `Hold`,在 `Hold` 尾出现时整个音符都会出现(即使 `Hold` 还没回到判定线正面)。
65 changes: 65 additions & 0 deletions src/chart-standard/chart-format/rpe/extend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# 扩展参数

## attachUI
`attachUI` 是RPE独有特性,它允许你使用判定线绑定UI元素,使你可以控制UI的位置,透明度,大小等。
属性对应UI元素列表:

|| 对应UI元素 | RPE设置中对应数字 ||
|:-----------:|:----------------:|:----------:|:-------------------------------------------:|
| pause | 暂停按钮 | 1 | - |
| combonumber | 连击数 | 2 | 绑定此UI会使此UI透明度受到Alpha事件影响,默认连击大于等于 `3` 时才会显示 |
| combo | 连击数下的 `combo` 文字 | 3 | 同上 |
| score | 分数 | 4 | - |
| bar | 进度条 | 5 | `RPE 1.4.0` 及以前,此属性绑定的为曲名左侧的白色竖条 |
| name | 谱面名称 | 6 | - |
| level | 谱面等级 | 7 | - |

在UI被绑定后,判定线将会自动隐藏,UI可以通过类似于子线的方式进行操作,不同的是可以操作UI角度和透明度;判定线实际位置仍然不变。

## anchor
`anchor` 是RPE独有特性,它允许你设置判定线的锚点,它的设计是为文字事件服务的。
- 在RPE中,此设置在顶栏工具栏第二页中,两个数值用空格分割。
- 它是一个 `JsonArray`,两个值对应 `x``y` 坐标。
- `x` 默认为 `0.5`,即中心,`1` 时判定线向左移,`0` 时判定线向右移。
- `y` 默认为 `0.5`,即中心,`1` 时判定线向下移,`0` 时判定线向上移。

## easingType
`easingType` 是RPE用于对应缓动的数字标识,对照表如下:

|| 对应缓动 ||
|:--:|:--------------:|:--------:|
| 1 | Linear | - |
| 2 | Out Sine | - |
| 3 | In Sine | - |
| 4 | Out Quad | - |
| 5 | In Quad | - |
| 6 | In Out Sine | - |
| 7 | In Out Quad | - |
| 8 | Out Cubic | - |
| 9 | In Cubic | - |
| 10 | Out Quart | - |
| 11 | In Quart | - |
| 12 | In Out Cubic | - |
| 13 | In Out Quart | - |
| 14 | Out Quint | - |
| 15 | In Quint | - |
| 16 | Out Expo | - |
| 17 | In Expo | - |
| 18 | Out Circ | - |
| 19 | In Circ | - |
| 20 | Out Back | - |
| 21 | In Back | - |
| 22 | In Out Circ | - |
| 23 | In Out Back | - |
| 24 | Out Elastic | - |
| 25 | In Elastic | - |
| 26 | Out Bounce | - |
| 27 | In Bounce | - |
| 28 | In Out Bounce | - |
| 29 | In Out Elastic | 无法在RPE使用 |

你可以在[这个网站](https://easings.net/zh-cn)查看它们的函数等信息。




Loading

0 comments on commit 40ebb96

Please sign in to comment.