Skip to content

Latest commit

 

History

History
168 lines (133 loc) · 7.12 KB

DocsCN.md

File metadata and controls

168 lines (133 loc) · 7.12 KB

项目作者:硫酸铜

项目来源:github.com/qwedc001/pyrd

此处为了介绍的更为简明化,部分计算机术语被替代,可以前往我的github项目查找原文档(有人能帮我写一下文档就好了,文档苦手伤不起)

项目介绍:PyRD,又名Python Rhythm Doctor,旨在使用代码创建Rhythm Doctor的自定义关卡,这个项目发起的本心是为了方便节奏医生的视障玩家(如卢毅)去制作优质的谱面,而不是对着一个冗长的JSON文件发愁。

后来经过节奏医生官方开发huantian的建议,将原有的Python写代码转换成了学习成本更低的YAML标记格式,引出github分支yaml,文档上方提供的下载就是用于翻译yaml为rdlevel的解释器(我并没有做检查语法功能,有大佬会写可以来提交pr)

此处文档以介绍分支yaml为主,在此分支下,解释器解释的文件后缀为.sprd(Simple RD)

如果你想直接使用python写rdlevel,你可以直接git clone以后将pyrd.py引入项目,然后根据里面提供的函数进行编写。

先通俗的解释一下.sprd文件的构造,建议配合文档末尾提供的示例对比学习。

.sprd文件主要分为三大块,分别是metadata(关卡信息),角色和小节具体内容。

Metadata关卡信息的填写

在每一块内,每一句是通过换行来分隔的,且在开头有1个空格,比如:

metadata:
 艺术家 硫酸铜
 歌曲 SimpleRD
 难度 简单
 癫痫 关

以上四句话分占四行,在中间有空格,空格前为参数,空格后为内容

metadata可以填写的参数有:

metadata:
  艺术家:艺术家名称
  歌曲:歌曲名称
  作者:作者名称
  描述:描述
  癫痫:是/否
  难度:简单/普通/困难/噩梦
  标签:标签
  rank所需错误数:[20,15,10,5]
  rank描述:["F","D","C","B","A","S"]

当然,如果你选择全空着也不是不行,所有metadata此时都会填空。

Character角色信息的填写

角色是一行一个角色,角色只有参数,中间用英文逗号分割。 角色一共有十个参数,其中有五个参数是必填的,剩下五个是你想要填才填,不想填可以不填的。 如果你想要填一个,空一个,再填一个,那么要空过去的那个参数用英文句号.代替。

角色的五个必填参数按照顺序是: 角色名(不想写可以填无),节拍类型(七拍/二拍),角色在第几个房间,角色在第几个轨道,角色节拍音效(还没有写对照表,后期补上)

角色的五个选填参数按照顺序是: 在开始时隐藏轨道,节拍音量,节拍音调高低,节拍声象,节拍偏移,比如:

 - [武士,七拍,0,1,Stick]
 - [科尔,二拍,0,2,Kick]

Bar每个小节的填写

针对于节拍部分,从第三块开始,接下来每一个小节都标上对应的数字,在之后的内容前再加上一个空格。比如:

1:
 - [播放音乐,1,sndOrientalTechno,100,0]

这里的语法是:- [内容,参数],内容之间/参数和内容之间用英文逗号分隔。

几个已经支持的语法:(带星号为可选参数,并且最后有一个“条件”参数,这个参数因为所有语法都支持所以不单独列出)

- [播放音乐,事件在当前小节第几拍,音乐名,BPM,偏移,*音乐音量,*音乐音高,*音乐音像]
- [七拍,事件在当前小节第几拍,事件在第几轨道,七拍长度,摇摆拍设置]
- [二拍,事件在当前小节第几拍,事件在第几轨道,二拍长度,*二拍循环,*是否跳过此拍,*冰冻拍间隔,*二拍类型,*是否播放方块音]
- [设置静音,事件在当前小节第几拍,事件在第几轨道,静音模式(由6个字符组成,-代表正常,x代表静音),切分音拍,切分音摇摆]
- [长按拍,事件在当前小节第几拍,事件在第几轨道,长按拍长度,长按拍摇摆,长按拍按住长度,长按拍X模式]
- [自由拍开始,事件在当前小节第几拍,事件在第几轨道]
- [自由拍脉冲,事件在当前小节第几拍,事件在第几轨道,脉冲行为,自定义脉冲]
- [设置护士音效,事件在当前小节第几拍,说的内容是什么,*是谁的声音,*要提示的二拍拍长,*音量]
- [设置BPM,事件在当前小节第几拍,bpm]
- [播放音效,事件在当前小节第几拍,音效文件,*音量,*音高,*音像,*偏移,*是否为自定义音效]
- [设置数拍音效,事件在当前小节第几拍,事件在第几轨道,*数拍音效声音,*是否开启,*音量]
- [朗读轨道,事件在当前小节第几拍,事件在第几轨道,信息种类,轨道自定义X,*是否跳过朗读"紊乱",*只发出声音,*朗读X拍]
- [朗读说明,事件在当前小节第几拍,朗读文本,*说明分类]
- [显示对话,事件在当前小节第几拍,对话文字,对话速度,*立绘位置,*播放音效]

详细的参数类型可以在pyrd.py中找到,更详细的docs需要等到有时间再进行维护,或者你们谁维护了给我提交个pull request也行。 编写完成后,请执行python compiler.py 你的sprd文件名

(进阶)VFX语法(由群内0x4D2提供):

- [预设特效,事件在当前小节第几拍,事件在第几轨道,特效名称,*是否激活,*属性]

只有个别特效具有 属性 参数。

  • 对于 落雨/JPEG失真/马赛克/海底波浪/电影噪点/暴风雪/素描/色像差/模糊/径向模糊/色调偏移:强度,缓速时长,缓速

  • 对于 自定义屏幕块/自定义滚屏:x/y

  • 对于 高光:阈值,强度,颜色,缓速时长,缓速

- [设置背景,事件在当前小节第几拍,事件在第几轨道,模式,*颜色,*图片,*fps,*填充模式,*过滤器]
  • 模式: 颜色/图片

  • 对于 平铺 填充模式,有额外的参数:速度x,速度y,时长,缓速

- [轨道涂色,事件在当前小节第几拍,事件在第几轨道,*受影响的轨道编号,*边框样式,*边框颜色,*边框透明度,*是否启动电击效果,*透明度,*是否填充,*填充颜色,*填充透明度]
  • 受影响的轨道编号 如果为-1或"全部",则全部轨道均受影响,

  • 边框样式 无边框/轮廓/发光

  • 透明度最大为100(不透明)

- [闪烁,事件在当前小节第几拍,事件在第几轨道,时长]
  • 时长 短/中/长
- [注释,事件在当前小节第几拍,事件在第几轨道,注释文字,*播放时是否显示注释,*注释颜色]

示例:Github项目 exampleYAML.sprd

metadata:
 艺术家: 节奏医生
 歌曲: 1-1
 作者: 卢毅
 难度: 简单
 癫痫: 
 描述: 这是一个关卡。
角色:
 - [武士,七拍,0,1,Stick]
 - [科尔,二拍,0,2,Kick]
小节:
 1:
  - [PlayMusic,1,sndOrientalTechno,100,0]
  - [预设特效,1,0,落雨,开]
  - [设置背景,1,1,颜色,626262FF]
  - [轨道涂色,1,2,全部,发光]
  - [七拍,1,1,1,0]
 2:
  - [七拍,1,1,1,0]
 3:
  - [七拍,1,1,1,0]
 4:
  - [七拍,1,1,1,0]
  - [设置护士音效,5,SayReaDyGetSetGoNew,.,1,100]
 5:
  - [二拍,1,2,1]
  - [二拍,3,2,1]
  - [二拍,5,2,1]
  - [二拍,7,2,1]
  - [设置护士音效,8,JustSayStop,.,1,100]
  - [闪烁,1,0,长]
  - [闪烁,5,0,长]
  - [注释,1,1,插入两个闪光,动作,开]