Skip to content
PiraTom edited this page Sep 3, 2024 · 15 revisions

Cube Rhythm 制谱教程

1. 前期准备

Malody

Cube Rhythm服务端

一个能用的文本编辑器

2.创建一个谱面文件和配置文件

谱面文件名应为 [song].sk

谱面配置文件名应为 [song]_properties.sk

谱面文件格式

image

谱面配置文件格式

image

3.了解Note类型

Tap

玩家需要将准星对准音符,在到达判定面时单击鼠标左或右键

Note格式:

tap(time, face, x, y, glowing)

time: 音符落到判定面上的时间,数值(单位为秒)

face: 音符出现在哪个判定面上,文本,可填"w","a","s","d"分别代表前、左、后、右

x: 音符出现的X坐标值(无论该音符从何处出现,都填位于"w"判定面时的X坐标),数值

y: 音符出现的Y坐标值(无论该音符从何处出现,都填位于"w"判定面时的Y坐标),数值

glowing: 该音符是否发光,填true或false


Double

玩家需要将准星对准音符,在到达判定面时同时按下鼠标左右键

Note格式:

double(time, face, x1, y1, x2, y2, glowing)

time: 音符落到判定面上的时间,数值(单位为秒)

face: 音符出现在哪个判定面上,文本,可填"w","a","s","d"分别代表前、左、后、右

x1: 音符1出现的X坐标值(无论该音符从何处出现,都填位于"w"判定面时的X坐标),数值

y1: 音符1出现的Y坐标值(无论该音符从何处出现,都填位于"w"判定面时的Y坐标),数值

x2: 音符2出现的X坐标值(无论该音符从何处出现,都填位于"w"判定面时的X坐标),数值

y2: 音符2出现的Y坐标值(无论该音符从何处出现,都填位于"w"判定面时的Y坐标),数值

x1必须大于x2,即音符1必须在音符2左边,否则连接线渲染会出问题

glowing: 该音符是否发光,填true或false


Drag

玩家需要在音符到达判定面时将准星对准音符,无需按键

Note格式:

drag(time, face, x, y, glowing)

time: 音符落到判定面上的时间,数值(单位为秒)

face: 音符出现在哪个判定面上,文本,可填"w","a","s","d"分别代表前、左、后、右

x: 音符出现的X坐标值(无论该音符从何处出现,都填位于"w"判定面时的X坐标),数值

y: 音符出现的Y坐标值(无论该音符从何处出现,都填位于"w"判定面时的Y坐标),数值

glowing: 该音符是否发光,填true或false


Hold

玩家需要在音符到达判定面时按住右键或连点左键,无需对准

Note格式:

hold(time, face, x, y, glowing)

time: 音符落到判定面上的时间,数值(单位为秒)

face: 音符出现在哪个判定面上,文本,可填"w","a","s","d"分别代表前、左、后、右

x: 音符出现的X坐标值(无论该音符从何处出现,都填位于"w"判定面时的X坐标),数值

y: 音符出现的Y坐标值(无论该音符从何处出现,都填位于"w"判定面时的Y坐标),数值

glowing: 该音符是否发光,填true或false


Flick

玩家需要在音符到达判定面时按箭头方向旋转视角到临近的判定面

Note格式:

flick(time, face, turn, glowing)

time: 音符落到判定面上的时间,数值(单位为秒)

face: 音符出现在哪个判定面上,文本,可填"w","a","s","d"分别代表前、左、后、右

turn: 玩家需要旋转的方向,文本,可填"left","right"分别代表向左转和向右转

glowing: 该音符是否发光,填true或false


Execution

该音符无实体,在音符规定的时间点执行对应的section

Note格式:

execution(time, section)

time: 执行section的时间点,数值(单位为秒)

section: 待执行的section,需存储到变量内,如{section1}

4. Malody,启动!

打开Malody导入你想打开的曲子


  1. 点这里

image


  1. 再点这里

image


  1. 点自动测量

C}ZF7{HNJM D`ATF Z3V 8F


  1. 拿到偏移值

P$I7XZ}N74YT@U)D{T_A9


  1. 找到歌曲开始时间点,将时间乘以1000

OY$8}3~2%WL1LKPPR2EJF}G


  1. 将4.和5.获取的值相减,如果是个负数就没毛病

5@THINJHHAJF}CJ Z2GL{UG


  1. 把6.的值填写到malody那边,把6.的值的相反数填写到Cube Rhythm的谱面配置那边

G10VFHJQ6_{A})QGSGWZAEB `X)_6}9_NS236NN$Q)4J I8


  1. 没毛病的话,Malody那边音乐会从0秒开始播放,Cube Rhythm这边可以直接照抄Malody那边的时间了

5. 制作资源包

找到官方的资源包,把Malody生成的那个ogg文件(或者你自己转码也行)放进/assets/minecraft/sounds/cr里

然后打开/assets/minecraft/sounds.json照葫芦画瓢把你的歌曲信息修改上去,这样基本就完工了

最后打开你的谱面文件,修改歌曲路径,谱面前期工作准备完毕

6. 开写!

  1. 打开Cube Rhythm服务端,进入服务器,输入/editor,你现在进入了一个制谱辅助工具

image

你的快捷栏里会出现这些东西,按功能大致分为两类

image


  1. 打开Malody,找到你的谱面,找到歌曲的BPM

image

image


  1. 然后我们输入 /editor bpm 208(上图显示的BPM值) 将BPM设定为这个值

  1. 在你面前的7x7玻璃面板上放置音符,注意面板上只能有一种音符,除Double外的音符只能同时存在一个(否则只记录第一个),Double音符必须同时存在2个,且第一个音符必须在第二个音符的左边(否则渲染连接线会出问题)

    但是这不意味着谱面中相同时间点只能存在一类音符,你当然可以保持当前的时间点,先摆上一个音符,生成,再摆上另一个,再生成,以此类推

image


  1. 放置完成后,使用快捷栏最后两格的物品来调整想要生成音符的时间点

    这里我们拿一个时间点为例 比如你想在如图这个时间点创建音符

image

我们记录当前的拍号,23拍的第3个小格,然后一拍又由4个小格组成

那么我们就先输入 /b 23 前往第23拍

image

接下来我们输入 /step 4 代表一拍有4个小格

image

然后我们手持 步进一格 右键两下,此时就是23拍的第3个小格

Malody的小格数减1 = Cube Rhythm所在位置的分子

image

(可前往Malody检验时间是否一致)

image

白线处对应的是0/4,别看岔了!


  1. 最后,我们在聊天栏输入 w或a或s或d 表示音符出现的方向,此时谱面代码开始生成

image


  1. 聊天栏提示绿色的谱面代码,即为生成成功,生成的谱面代码会记录在/plugins/skript/logs/generated.log上

image


  1. 将生成的代码去掉前面的时间部分,使用Tab给全文加一格缩进,最后拼接到你的谱面文件上,一段谱面就制作完成了

PS: 我们强烈推荐你先放flick音符再去切换到别的判定面上写,不然你的玩家可能会对你【数据删除】