谱面文件格式概述
本页面详细介绍了 PhiCommonChart 谱面文件的基本构成和技术规范。
文件封装格式
PhiCommonChart 采用了高效的 Protocol Buffers (protobuf) 作为文件封装格式,相比传统的 JSON 格式具有以下优势:
- 更高的压缩效率:有效减小文件体积
- 更快的解析速度:二进制格式提供更优的性能
- 严格的类型检查:确保数据完整性
所有 PhiCommonChart 格式的谱面文件统一使用 .nrc 作为文件扩展名。
文件内容构成
每个 .nrc 文件是一个完整的谱面包,包含游戏所需的全部资源:
- 谱面数据(判定线、音符等)
- 音频文件(背景音乐、音效等)
- 图像资源(背景图片、判定线纹理等)
这种一体化的封装方式确保了谱面的完整性和便携性。
兼容性等级系统
为了帮助玩家选择合适的模拟器,PhiCommonChart 定义了较为详细的兼容性等级系统。当游戏引擎的兼容等级低于谱面要求时,应向用户发出警告。
| 兼容等级 | 名称 | 功能支持范围 |
|---|---|---|
| 0 | 官谱兼容 | 仅支持基础功能。不支持任何 RPE 扩展特性(如负透明度) |
| 1 | 基础扩展 | 支持部分 RPE 特性:负判定线透明度、判定线遮罩、判定线层级等。不支持判定线纹理、extended 层级、各种 control |
| 2 | 高级扩展 | 支持大部分 RPE 特性,但不包括 extended 层级事件与各种 control 功能 |
| 3 | 完全兼容 | 完整支持所有 RPE 特性,涵盖本文档描述的全部行为规范 |
| 4 | PRPR 扩展 | 额外支持 PRPR 模拟器的扩展功能:自定义 Shader、解锁动画等 |
| 5 | 自定义扩展 | 包含对谱面结构的自定义修改。 |
注意事项
兼容性等级字段的具体存储位置和设置方法将在后续章节中详细说明。
使用兼容等级 5 代表你的文件会被大部分模拟器拒绝。
模拟器应当在没有对文件格式进行扩展的情况下拒绝兼容等级为 5 的谱面文件。
警告
兼容等级 5 需要Fork本文档进行修改。 即使兼容等级为 5 ,也不可以删除已有字段。
坐标系
本谱面格式坐标系基准点位于左下角,0, 0 开始 1, 1 在屏幕右上角结束。
时间单位
所有的时间单位均为拍(Beat),实际时间需要通过 BPM 计算得出。
承诺
PhiCommonChart 承诺在未来的版本中保持向后兼容性,永不移除现有字段,永不修改行为规范(除非有误)。