如何制作音效资源包

联机侠
如何制作音效资源包

大家都知道,音乐可以用于渲染故事的气氛。所以,一些mc的资源包中,会内置音乐或是音效。这篇博文将以置入the battle to come为例,讨论如何将音乐放入你的资源包中。

1.建立目录结构

首先,请在游戏的资源包文件夹(.minecraft/resourcepacks)中,创建一个文件夹来容纳资源包的内容。文件夹的名字可以自己选择,它决定下图中红框的文字。本教程中文件夹名为How-to。

然后,在你新建立的文件夹中,创建一个名为assets的文件夹,在assets文件夹中,创建minecraft文件夹,在minecraft文件夹中,创建sounds文件夹。建立好的文件夹应如下图所示:

新建立的文件夹

assets文件夹

minecraft文件夹

这样,目录结构就建立好了。

2.创建资源包的描述及图片

这一节的内容,主要是为了添加描述与图片,如图所示

黄框为描述,绿框为图片

(1)创建pack.mcmeta文件

在你最开始新建立的那个文件夹(就是本教程里为How-to的那个文件夹)里,创建一个文件,命名为pack.mcmeta.请注意:文件的后缀名是mcmeta,如果你在命名后没有出现如图所示对话框:

那么请点击windows资源管理器的“查看”标签,将"文件扩展名"勾上,然后删去多余的扩展名即可(本例中为.txt),如图所示。

接下来,用你喜欢的文本编辑器打开该文件,复制以下代码。

  1. {
  2.    "pack": {
  3.       "pack_format": <请填空1>,
  4.       "description": "<请填空2>"
  5.    }
  6. }

复制代码

注意!代码是由JSON写成的,如果缺少{",:这些符号,资源包可能根本无法运行!我个人建议直接复制代码,而不是打字。

将<请填空1>按照以下规则替换:

  1. 如果你的游戏版本为1.6至1.8,请替换为1
  2. 如果你的游戏版本为1.9至1.10,请替换为2
  3. 如果你的游戏版本为1.11至1.12,请替换为3
  4. 如果你的游戏版本为1.13,请替换为4

复制代码

将<请填空2>替换为你对本资源包的描述。

替换后的文件应类似下图:

注:替换的时候记得把尖括号也替换掉。

保存并关闭该文件。

(2)添加图标(可选)

将你想用作资源包图标的图片用图片处理软件打开,调整为长宽128*128,保存为png格式图片,将保存后的图片复制到最开始新建的那个文件夹,改名为pack.png。如图所示

现在,若你打开游戏,应该能看到新的材质包了。

3. 引入声音

这一节是全文的重点。主要是为了提供音频文件,并告诉minecraft音频文件在哪里.

(1) 复制音频文件

首先,将音频文件转换为ogg格式。我使用了在线转换器。传送门-->在线转换

转换好以后,将音频重命名为英文、全小写的名字。放在sounds文件夹内。如图:

(2) 创建sound.json文件

进入minecraft文件夹(于资源包中,在assets文件夹里),创建sounds.json(依旧要注意扩展名)。用你喜欢的文本编辑器打开该文件,复制以下代码:

  1. {
  2.     "<请填空3>":
  3.     {
  4.         "category":"master",
  5.         "sounds":[
  6.             {
  7.                 "name":"<请填空4>"
  8.             }
  9.         ]
  10.     }
  11. }

复制代码

将<请填空3>替换为你想使用的音效名(/playsound指令中的第一个参数)。

将<请填空4>替换为你复制的音频文件文件名,不带扩展名。(如我想使用thebattletocome.ogg,该空应填thebattletocome)

注:替换的时候记得把尖括号也替换掉。

替换之后的效果应类似于这样:

保存并关闭该文件。

4.测试

启动minecraft.我建议打开启动器的游戏日志窗口(在HMCL中,可以点击游戏设置标签的查看日志按钮。),或者用调试模式启动游戏。

先应用资源包,查看一下日志窗口。

如果有出现警告(Client thread/WARN),且后面跟着的原因不是"Author: Paul Lamb,www.paulscode.com"的话,请按照给出的原因,在5.(2)对号入座。

如果应用资源包没有出现上述情况的话,便可以进入一个世界,在其中执行如下命令:

1.6-1.8:

  1. /playsound 音效名 @p

复制代码

1.9+

  1. /playsound <音效名> master @p

复制代码

若你能听到音效,说明。。。成功了!

5.其他可能有用的东西

(1).添加多个音频的办法

先按照3.(1)的方法,将音频复制进sounds文件夹,然后在sounds.json文件内倒数第二行的反大括号后面打一个逗号(英文半角),换行,复制一份以下内容,按照上方的规则填空:

  1.     "<请填空3>":
  2.     {
  3.         "category":"master",
  4.         "sounds":[
  5.             {
  6.                 "name":"<请填空4>"
  7.             }
  8.         ]
  9.     }

复制代码

其实和上面的模板没什么不一样,只是少了个开头和结尾的大括号罢了。

填空后大概成这个样子:

使用方法不变。

(2)可能遇到的问题的解决方法

人在代码飘,哪有不报错?既然爆了错,干脆补个漏!

还是回到日志窗口。看看出错原因。

1.找不到文件

特征:应用资源包时就报错了。报错内容类似于"File 啥啥啥 does not exist, cannot add it to event 啥啥啥"(关键词:not exist)。如图

嗯,既然是文件不存在,那么解决方法也就呼之欲出了:检查文件名/目录名。

2.音频文件有问题

特征:应用资源包到输指令播放一帆风顺,一输指令一回车瞬!间!爆!炸!(无响应),日志中出现ERROR报错,报错内容类似于"Ogg header not recognized in method 'readHeader'."(关键词:not recognized).如图:

这说明音频文件有问题。可以试试用播放器播放一下音频文件

这时候就需要重新对音频文件进行转码了。(我猜你是直接改后缀名了.)

3.嗯 你是不是把音量给关掉了

特征:不管怎么重置资源包,疯狂playsound,游戏就是雷打不动——不播放声音。

这种问题。。。口恩,我相信大家自己有办法解决的。。。就不详解了。

(3)category的作用

不知道大家有没有发现,有一个名为category(sounds.json中)和资源(指令中)的东西。在之前我给大家模板的时候,都是直接填写master然后跳过的。

这个玩意的作用,是告诉游戏系统这个音效属于什么类别。

至于这个类别,他就是选项里的音乐和声音选项里的那十大类。如图

他们的对应关系如下:

  1. <font face="Tahoma">ambient   环境
  2. block       方块
  3. hostile     敌对生物
  4. master     主音量
  5. music       音乐
  6. neutral    友好生物
  7. player      玩家
  8. record     唱片机/音符盒
  9. voice       声音/语音
  10. weather   天气</font>

复制代码

所以,回到题目,这个玩意的作用就是可以指定音效的种类,使玩家可以分门别类的调整各种音效音量的大小。

从1.10版本之后,sounds.json中的category就已经被弃用了(貌似写了也不会报错)。

相反,/playsound指令中的"资源"则在1.9时才出现。

如果你的版本为1.9及以上,指定音效的类别便是一件简单的事情。你只需要在播放时,于类别名处填空。

  1. /playsound <音效名> <类别名> <播放的目标>

复制代码

而如果你的版本为1.6-1.8,而你又想使用这一功能,那么你需要修改sounds.json。

打开sounds.json,找到↓

  1. "category":"master"

复制代码

将master改为你想使用的类别名即可。

发表评论

您必须 登录 才能发表留言!