mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-15 03:23:22 +08:00
YuanQinAssistant
原琴助手BGI版是用于游戏中自动弹奏的脚本,使用gs2格式的曲谱,并提供方便的midi转谱工具。
内容清单
快速开始
- 在“全自动-调度器”中新建配置组,并添加此脚本。
- 右键-修改JS脚本自定义配置,选择曲目后,点击运行即可在游戏中自动演奏,请先确保角色处于演奏状态。
- 曲谱文件保存在
assets/score/文件夹中,如果此文件夹中的内容发生变动,脚本会自动更新曲谱列表并退出,再次运行后方可选择曲谱进行演奏。
曲谱格式说明
脚本使用指令式的文本曲谱,每一行都代表一个指令,以“!xx/something”的形式出现。不符合此格式的行会被忽略,因此可以利用此特性在曲谱中插入注释文本。
- 文件头
!v/2
- 曲谱第一行固定为此内容。
- 说明性指令
!ti/标题
!au/发布人
!cp/作曲人
!ar/制谙人
- 说明曲谱文件的版权信息,非必须。这些指令不存在时会使用缺省值。
- 演奏参数指令
!gi/乐器编号
!di/四分音符的tick数
- 乐器编号用于说明曲谱适用的乐器,从0开始,非必须,缺省值为0,表示风物之诗琴。此指令在脚本中并无实际作用,是为手机端适配不同乐器而预留的。
- di指令用于指定MIDI规范中的division值,非必需,缺省值为480。改变此值相当于改变BPM,但需要和轨道事件中的变速事件结合,才能最终确定每个音符的时长。
- 轨道指令
!tr/事件序列
- 可以同时存在多个轨道指令,本脚本通过多个轨道事件的同步,来实现和弦功能。
- 事件序列由一串形如 1000n60 的文本组成,并以竖线
|分隔。其中1000表示此事件之前经过的时间,以tick数计算,具体可查询MIDI文件规范,此处不作讲解。n是事件类型,60是此事件的参数。 - 目前支持三种事件,分别为:
- n 按下音符,参数表示音符的音高(60即为C4)
- u 松开音符,参数含义同 n
- s 变速,参数表示接下来的microtempo值,单位是微秒
MIDI转谱
您完全可以通过文本编辑器来手动编辑一个gs2格式的曲谱文件,但并不建议这么做。本质上,gs2格式是因为BGI不支持二进制文件的读取,而不得不做的一个折中方案。使用现有的专业工具制作出mid格式文件,再使用我提供的转谱工具生成对应的gs2文件(工具放置于 assets/tool/ 文件夹下),是更直观且更安全的做法。
您需要注意的是,为了简化处理逻辑,转谱工具对mid文件的内容作了一些限制,比如不能使用异步多轨的格式,必须是C大调,导出midi文件时不要包含RPN和NRPN相关指令等等,更详细的会在之后用视频教程进行演示,普通用户完全不了解这些内容也不影响使用。
更新日志
v1.0.2 演奏开始后,自动将鼠标移动到右下角;增加乐器界面判定,只有在乐器演奏界面才会演奏曲谱;新增曲谱文件“此去半生”。
v1.0.1 修复音符B5的按键映射错误;修复脚本中止时,按键没有释放的问题;新增曲谱文件“枕边童话”“丝柯克小曲”;新增曲谱制作教程视频地址。
v1.0.0 发布原琴助手BGI版。