Files
bettergi-scripts-list/repo/js/YuanQinAssistant

YuanQinAssistant

原琴助手BGI版是用于游戏中自动弹奏的脚本使用gs2格式的曲谱并提供方便的midi转谱工具。

内容清单

快速开始

  1. 在“全自动-调度器”中新建配置组,并添加此脚本。
  2. 右键-修改JS脚本自定义配置选择曲目后点击运行即可在游戏中自动演奏请先确保角色处于演奏状态。
  3. 曲谱文件保存在 assets/score/ 文件夹中,如果此文件夹中的内容发生变动,脚本会自动更新曲谱列表并退出,再次运行后方可选择曲谱进行演奏。

曲谱格式说明

脚本使用指令式的文本曲谱,每一行都代表一个指令,以“!xx/something”的形式出现。不符合此格式的行会被忽略因此可以利用此特性在曲谱中插入注释文本。

  1. 文件头
!v/2
  • 曲谱第一行固定为此内容。
  1. 说明性指令
!ti/标题
!au/发布人
!cp/作曲人
!ar/制谙人
  • 说明曲谱文件的版权信息,非必须。这些指令不存在时会使用缺省值。
  1. 演奏参数指令
!gi/乐器编号
!di/四分音符的tick数
  • 乐器编号用于说明曲谱适用的乐器从0开始非必须缺省值为0表示风物之诗琴。此指令在脚本中并无实际作用是为手机端适配不同乐器而预留的。
  • di指令用于指定MIDI规范中的division值非必需缺省值为480。改变此值相当于改变BPM但需要和轨道事件中的变速事件结合才能最终确定每个音符的时长。
  1. 轨道指令
!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版。