自定义音效
添加音效
首先,你需要确认你的音效文件为.ogg
格式,如果你用的是例如.mp3
等其他格式,可以使用Audition 软件(提取码:GERM)来进行格式转换,编辑音频。
音效.ogg
文件应该放置于资源包的assets/germmod/sounds
目录下,音效.json
文件也应该放置于资源包的assets/germmod/sounds
目录下。
例如,我们以test.ogg
为例,我们应当填写一个名为test.json
文件,就像下面这样
{
"ceshi": {
"subtitle": "这只是一个测试音效",
"sounds": ["germmod:test"]
}
}
当我们使用指令/gp sound play <玩家ID> ceshi
后,指定的玩家即可听见我们上面所添加的自定义音效了
什么是 sounds.json
sounds.json是一个由资源包的声音系统使用的文件。当使用指令来播放自定义音效时,声音系统会根据文件内容来决定播放哪个音效。
sounds.json的格式一般如下所示:
{
//音效名称
"sound_name": {
//音效字幕(如果游戏中开启了“显示字幕”选项,游戏将会在该音效被播放时将该字符串翻译为字幕)
"subtitle": "Hello world",
//音效设置
"sounds": [
{
//音效文件配置(格式为germmod:音效文件名)
//音效文件名不需要加后缀.ogg 路径从 sounds 开始算起
"name": "germmod:file",
//当你要播放的是一个长音乐时 请将该选项设置为true
//否则会导致开始播放时卡顿 开启后在播放时会占据更多内存 可选 默认false
"stream": false
}, //你可以在某个名字的声音下接入多个文件 当该声音事件被触发时,游戏会从此列表定义的音效文件中随机选取一个播放。
{
"name": "germmod:file2",
"stream": true
}
]
}
}
如果需要获得更多 sounds.json 的规范咨询,请跳转至官网 wiki
音效播放指令
/gp sound stop <ID> <SoundName/all> 停止声音的播放
/gp sound play <ID> <SoundName> 直接在玩家电脑上播放声音(类型为 master)
/gp sound play <ID> <SoundName> [类型] [x] [y] [z] 在某个坐标播放声音(收音效果与玩家位置相关)
/gp sound play <ID> <SoundName> [类型] [x] [y] [z] [延迟tick] 在某个坐标播放声音加上一个tick的延迟
/gp sound play <ID> <SoundName> [类型] [x] [y] [z] [延迟tick] [音量] [音高] [循环] 播放声音
Tips:<>内的参数为必填项,[]内的参数为选填项,允许使用变量
指令详解
在指令参数中,玩家ID
为玩家的名字,在停止声音时写all
是停止所有声音。 在播放声音时,音效名称
可以为原版的声音,可以在音效简介内找到所有原版声音。 当想播放非原版声音时,你需要按照教程添加声音文件。 指令中参数<>为必填,[]为选填,例如:只填 5 个参数/gp sound play GermMC minecraft:ui.button.click
即可对该玩家播放声音。参数中 [类型]
可以为 master、music、record、weather、block、hostile、neutral、player、ambient、voice (默认为 master);分成这么多类型是因为它们分别对应客户端音效音量大小的调节选项,这样玩家可以对每种声音的大小进行调节; 参数中 [x]、[y]、[z] 是世界坐标,如果有指定坐标,将会根据玩家与坐标的距离计算声音大小;参数中 [延迟 tick] 是指延迟多少 tick 后开始播放音效。
Tips:20 个 tick 为一秒