Skip to content

Commit

Permalink
feat: Phigros Official Chart文档 (#23)
Browse files Browse the repository at this point in the history
  • Loading branch information
qaqFei authored Oct 20, 2024
1 parent 79a1d27 commit 44e2b31
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 0 deletions.
66 changes: 66 additions & 0 deletions src/chart-standard/chart-format/phi/event.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Event

本页将介绍判定线事件下的所有事件。

## speedEvent

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|startTime|float|事件的开始时间|`1.875 / bpm`|
|endTime|float|事件的结束时间|`1.875 / bpm`|
|value|float|事件的值|高度单位|
|floorPosition|float|速度事件开始时判定线共计以流过的速度 (仅方便计算, 高版本不存在)|高度单位|

## judgeLineMoveEvent

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|startTime|float|事件的开始时间|`1.875 / bpm`|
|endTime|float|事件的结束时间|`1.875 / bpm`|

- formatVersion为1

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|start|int|事件的开始坐标|-|
|end|int|事件的结束坐标|-|

- 坐标计算 (python):
- `x = (v - v % 1000) // 1000`
- `y = v % 1000`
- 单位:
- `x` `1 / 880` 谱面渲染范围宽度
- `y` `1 / 520` 谱面渲染范围高度
- 转化为formatVersion为3的坐标 (python):
- 原事件以 `e` 表示, 新事件以 `ne` 表示
- `ne.start = (e.start - e.start % 1000) // 1000`
- `ne.end = (e.end - e.end % 1000) // 1000`
- `ne.start2 = e.start % 1000`
- `ne.end2 = e.end % 1000`

- formatVersion为3

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|start|float|事件的开始坐标|谱面渲染范围宽度|
|end|float|事件的结束坐标|谱面渲染范围宽度|
|start2|float|事件的开始坐标|谱面渲染范围高度|
|end2|float|事件的结束坐标|谱面渲染范围高度|

### judgeLineRotateEvent

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|startTime|float|事件的开始时间|`1.875 / bpm`|
|endTime|float|事件的结束时间|`1.875 / bpm`|
|start|float|事件的开始值|角度|
|end|float|事件的结束值|角度|

### judgeLineDisappearEvent

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|startTime|float|事件的开始时间|`1.875 / bpm`|
|endTime|float|事件的结束时间|`1.875 / bpm`|
|start|float|事件的开始值|-|
|end|float|事件的结束值|-|
1 change: 1 addition & 0 deletions src/chart-standard/chart-format/phi/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# PHI 文档
20 changes: 20 additions & 0 deletions src/chart-standard/chart-format/phi/judgeLine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# judgeLine

每一个judgeLine(判定线)都含有以下字段:

|字段名|类型|描述|
|:-:|:-:|:-:|
|bpm|float|该判定线的bpm值|
|notesAbove|JsonArray|正面下落的音符|
|notesBelow|JsonArray|反面下落的音符|
|speedEvents|JsonArray|速度事件|
|judgeLineMoveEvents|JsonArray|移动事件|
|judgeLineRotateEvents|JsonArray|旋转事件|
|judgeLineDisappearEvents|JsonArray|透明度事件|

- **注意: 所有事件及Note的有关时间的项, 单位都为 `1.875 / bpm` s**
- **这里我们定义:**
- "宽度单位" 为 `0.05625 * 谱面渲染范围宽度`
- "高度单位" 为 `0.6 * 谱面渲染范围高度`
- [事件](./event.md)
- [Note](./note.md)
12 changes: 12 additions & 0 deletions src/chart-standard/chart-format/phi/note.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Note

note,即音符,是谱面的主要构成之一,每个note都应该含有以下参数:

|字段名|类型|描述|单位|
|:-:|:-:|:-:|:-:|
|type|int|note的类型|-|
|time|float|note的时间|`1.875 / bpm`|
|holdTime|float|hold的持续时间 (仅hold, 其他为0.0)|`1.875 / bpm`|
|positionX|float|note的横向坐标|宽度单位|
|speed|float|对于非hold: note的速度倍率 对于hold: hold的打击时的速度 tip: hold在打击之前的速度倍率恒为1|-|
|floorPosition|float|note打击时判定线流过的速度 (仅方便计算)|高度单位|
21 changes: 21 additions & 0 deletions src/chart-standard/chart-format/phi/root.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# PHI谱面根目录结构

- 目前`PHI`谱面的数据计算与渲染已经十分成熟

## 谱面根目录结构

### formatVersion

- `formatVersion` 是一个 `int`
- 该项影响谱面判定线移动事件的解析方式
- 该值可能 为`1`, `3` 或其他

### offset

- `offset` 是一个 `int`
- 该项为谱面的延迟, 单位为秒
- 为正数时, 谱面比音乐快, 为负数时, 谱面比音乐慢

### judgeLineList

- `judgeLineList` 是一个 `JsonArray`,包含若干个 `JsonObject`,每个 `JsonObject` 代表一个[判定线](./judgeLine.md)

0 comments on commit 44e2b31

Please sign in to comment.