教程:制作资源包/音效和音乐

教程:制作资源包/音效和音乐

本文章所述内容仅适用于Java版。

此教程已确认至少适用于Java版1.21.1。

请帮助我们检查该内容是否仍在最新版本有效。

目录

1 音效和音乐概要

2 修改已有的音效或音乐

2.1 查询内置声音

2.2 修改声音

3 添加新的音效或音乐

3.1 声音文件

3.2 sounds.json

4 修改或添加声音的字幕

5 测试声音

6 导航

本页面介绍了通过资源包修改和添加音乐、音效的办法。

音效和音乐概要[编辑 | 编辑源代码]

参见:音乐和Java版声音事件

音效和音乐是在游戏中播放的声音。音效是由游戏内特定操作产生的声音;音乐是由游戏自动播放,或根据环境选择播放的声音。

游戏中的所有声音都是通过声音事件定义文件控制的。该文件记录了游戏内用于播放声音的所有声音事件,以及每个声音事件所关联的所有声音文件和相关属性。该文件放置在assets/minecraft/sounds.json处。

声音文件是储存游戏所播放的具体声音的文件。这些文件的格式为.ogg。然而,游戏自带的声音文件并不储存在minecraft.jar中,而是在游戏自动下载的资源文件中。查询这些文件的办法将会在后文介绍。

在资源包中,所有声音文件都放置在assets/<命名空间>/sounds。

修改已有的音效或音乐[编辑 | 编辑源代码]

如前所述,声音文件有着特殊的放置位置,因此其查询也需要特殊的技巧。也正因此,声音文件在资源包中的放置位置与内带资源的位置不同。下面将简单介绍内置声音文件的位置与获取方法,再讲解修改声音的方法。

查询内置声音[编辑 | 编辑源代码]

参见:散列资源文件

游戏内置的声音文件和sounds.json是每次游戏启动时从Mojang服务器下载的。这类文件放置在.minecraft/assets/objects下,按照这些文件的散列值命名。此外,在.minecraft/assets/indexes下放置着资源索引文件,用于根据文件的资源路径查询散列值。

资源索引文件

资源索引文件是放置在.minecraft/assets/indexes下的若干个.json文件,存储了游戏不同版本的资源文件的散列值和大小。在1.19以前,这些文件按照版本的主版本号命名;1.20以后,这些文件改为用单增的数字命名,这些数字与游戏版本间没有明显的关系。

为确定1.20以后资源索引文件与游戏版本间的对应关系,可以查阅散列资源文件 § 索引名称,或在client.json中的assetIndex.id处确定该版本资源索引文件的名称(不含后缀名)。[注 1]

资源索引文件的格式如下:

根标签

objects:该索引中,需从Mojang服务器下载的所有资源文件。

<资源路径>:单个资源文件。

hash:该文件的散列值。

size:该文件的大小。

其中,最重要的是<资源路径>和hash;前者用于确定文件在资源包中的位置,后者是该文件的散列值,用于确定文件在.minecraft/assets/objects中的位置。

查阅时,事先并不明确资源路径的具体值。可以在wiki上查找,或者先查阅放置在minecraft/sounds内的文件,再进一步筛选;也可先获取minecraft/sounds.json,再在其中查阅声音文件的路径。

内置声音文件

游戏从Mojang服务器下载的文件全部放置在.minecraft/assets/objects中。该文件夹下放置了若干文件夹,每个文件夹中都有若干无后缀名的文件。

每份下载的文件依据其散列值,放置在.minecraft/assets/objects/<散列值的前两位>/<散列值>处。[注 2]

注意:这些文件是没有拓展名的!可以复制一份文件,并补充正确的拓展名,以便后续使用。

↑ 例如,1.20.6版本的资源索引文件的名称为16.json。

↑ 例如,1.20.6版本的sounds.json的散列值为5c976a314d4df33a119059ec2e05b3c4ba01021b,该文件即放置在.minecraft/assets/objects/5c/5c976a314d4df33a119059ec2e05b3c4ba01021b处。

修改声音[编辑 | 编辑源代码]

上一步已经获取了游戏内置的声音文件;现在,可以对这一文件做任意的修改,或直接从头制作声音。这一步需要使用音轨编辑器。得到的文件必须是.ogg格式的无封面音频流。

编辑完成后,需要将该文件放置在资源包中。在资源包中,声音文件放置在上一步确定的资源路径所指示的位置。不必也不应修改.minecraft/assets/objects中的文件,因为这些文件在游戏启动时可能会因重新下载而被覆盖。

在这一步,声音文件必须严格按照已有文件的路径命名,才能覆盖原文件,被游戏正常读取。如果名称不同,需要修改其他文件,才能使此声音文件被正常读取;这是§ 添加新的音效或音乐的内容。

添加新的音效或音乐[编辑 | 编辑源代码]

参见:Java版声音事件

游戏中所有声音的播放是由sounds.json控制的。要想增删播放的声音,必须更改这一文件。

该文件记录的是声音事件与声音文件的关系。每个声音事件可以关联一个或多个声音文件;若有多个声音文件,每次声音事件将会随机选择一则声音播放。此外,声音事件还可以和字幕关联;这方面的内容参见§ 修改或添加声音的字幕。

声音事件是游戏引用声音的符号。资源包无法修改游戏中各行为调用的声音事件的名称,即使添加了新的声音事件,也需要通过命令或进行其他修改才能调用这些事件。相反,只要与已有的声音事件相关联,可以任意增删声音文件。

下面以添加玩家受伤音效为例,介绍添加音效的流程。

声音文件[编辑 | 编辑源代码]

使用音轨编辑器或其他编辑器,创建一个.ogg文件,其中包含所需添加的玩家受伤音效。

编辑完成后,该文件需要放置在资源包中。由于所修改的声音事件在minecraft命名空间下,此声音文件必须放置在assets/minecraft/sounds下。在该文件夹中,建议将文件放置在与其他文件统一的位置。本教程中,该文件放置在assets/minecraft/sounds/damage/hit4.ogg;hit1至hit3是游戏内置的音效。

sounds.json[编辑 | 编辑源代码]

由于所修改的声音事件在minecraft命名空间下,这里的sounds.json必须放置在assets/minecraft下。

在填写该文件前,先要找到对应的声音事件的名称。这一内容可在各个实体、方块及物品的音效章节找到。例如,玩家受伤时的声音事件为entity.player.hurt。

创建assets/minecraft/sounds.json,填写以下内容:

{

"entity.player.hurt": {

"sounds": [

"damage/hit4"

]

}

}

该文件中,sounds表示与该事件关联的声音文件,是从assets/minecraft/sounds算起的相对位置。除非设置replace为true,该列表会补充到游戏自带的列表中,而非覆盖相应列表;因此,这里只需要填写新增的文件即可。

这里使用了字符串定义声音文件。如需要更精细的参数,可以使用一个复合标签定义声音文件。

注意:本文件使用JSON格式。若文件中缺少特定的格式标记符,资源包可能无法被识别。

作为参考,游戏内对entity.player.hurt事件的定义如下:

{

"entity.player.hurt": {

"sounds": [

"damage/hit1",

"damage/hit2",

"damage/hit3"

],

"subtitle": "subtitles.entity.player.hurt"

}

}

修改或添加声音的字幕[编辑 | 编辑源代码]

参见:Tutorial:制作资源包/语言和文本

如前所述,sounds.json中的声音事件可以与字幕相关联。这是通过subtitle字段定义的。该字段包含一个由本地化键名定义的可翻译字符串。

如果需要为声音事件添加字幕,需要编辑sounds.json,以添加事件与字幕的关联;然而,如需修改已有的字幕,则不应在此修改,而是修改本地化键对应的本地化文本。

测试声音[编辑 | 编辑源代码]

与其他内容不同,要在游戏中控制某声音的产生未必方便。可以使用/playsound触发特定声音事件,但无法控制播放该声音事件下的哪一个声音。因此,可能需要多次执行该命令,直到游戏播放所改动的声音文件。

导航[编辑 | 编辑源代码]

编教程

新手教程

下载、安装与购买

成功地启动游戏

菜单屏幕

游戏术语

计量单位

不该做的事

新手生存

新手指南

第一天

第二天

第三天

提示与技巧

饥饿管理

生存注意事项

庇护所

庇护所

沙漠

微型

最佳居住生物群系

最佳建筑材料

建筑与结构

房屋类型

导航

综合

无聊的时候做什么

跑酷

空置域

伪和平

节省时间的小窍门

在水下利用TNT破坏方块

成就指南[仅BE]

进度指南[仅JE]

Minecraft

下界

末地

冒险

农牧业

最佳附魔指南

拓殖

战斗

完成冒险

双持

探索洞穴

利用碰撞箱

使用地图

测量距离和角度

采矿技术

钻石

化石

远古残骸

下界快速旅行

下界传送门

支柱跳跃

幻翼防护

生成骑士

穿越和破坏基岩

防卫僵尸围城[仅JE]

考古

不可破坏的末地水晶

使用更少的末地水晶重生末影龙

区块加载器

透视镜

挂机池

整理物品

潜影盒储存

物品运输

生物运输

自动化烧炼

选择燃料

爆炸室

凋灵笼

光速船[仅BE]

无材料消耗转换药水类型[仅BE]

在超平坦世界中管理史莱姆

减少摔落伤害

Minecraft和教育

视频

游戏直播

村民和交易

村庄生存

创建村庄

村庄机制

治愈僵尸村民

村民养殖

村民交易所

流浪商人陷阱

建筑

给工程添加美感

空气闸

建筑术语

建造游轮

建造大都市

建造过山车

建造安全的家园

建造水建筑

建造几何体

防御

家具

电梯

带釉陶瓦的图案

建造地板

像素艺术

牧场

屋顶类型

弧形屋顶

屋顶建造指南

暗门

建造居住地

水下建筑

墙壁和桥墩

水闸

调色板

建造蹦床

挑战

获得潮涌核心

触发及战胜袭击

打败末影龙

打败凋灵

挑战自定义地图

制作自定义地图

征服结构

征服神殿和神庙

征服掠夺者前哨站

征服堡垒遗迹

征服林地府邸

征服海底神殿

征服试炼密室

征服下界要塞

征服末地城

探索深暗之域和远古城市

特殊玩法

冒险模式生存

极限模式

超极限模式

在一个地区中长期生存下去

沙漠生存

在无限沙漠中生存

下界生存

从零开始下界生存

末地生存

雷暴生存

超平坦世界生存[仅JE]

岛屿生存

空岛生存

在和平难度中收集资源

速通

游荡生存

无限石头生存

愚人节版本生存[仅JE]

22w13oneBlockAtATime

24w14potato

农场

方块和物品

紫水晶

骨粉

仙人掌

农作物(小麦、胡萝卜、马铃薯、甜菜根、火把花和瓶子草)

西瓜、南瓜

紫颂果

圆石、石头或玄武岩

可可豆

泥土

滴水石锥

鸡蛋

花朵

蛙明灯

蜂蜜

海带

蘑菇

音乐唱片

下界疣

黑曜石

袭击农场

1.21前

海泡菜

甘蔗

甜浆果

原木、树苗和苹果

海龟鳞甲

藤蔓

羊毛

药水

经验

基岩

方块和物品复制

过时方法

铁轨复制机[仅JE]

TNT复制[仅JE]

零刻作物催熟技术[仅BE]

生物

刷怪塔

怪物磨床

刷怪笼陷阱

动物(猪、牛、绵羊)

烈焰人

洞穴蜘蛛

苦力怕

闪电苦力怕

溺尸

末影人

山羊

守卫者

铁傀儡

岩浆怪

以物易物

潜影贝

史莱姆

鱿鱼

海龟

村民

女巫

流浪商人

凋灵骷髅

僵尸猪灵

悦灵

红石

基础红石

基本逻辑门

高频电路

计时器

抽奖箱

漏斗

通用物品分类器

机械

侦测器稳定器

密码锁

随机发生器

红石机械

红石音乐

红石技巧

鲁布·戈德堡机械

探测器

方块更新感应器

比较器更新感应器

昼夜探测器

矿车

矿车

火车站

储存

数字化存储系统

陷阱

陷阱

陷阱设计

雪傀儡防御炮

TNT大炮

活板门利用

活塞

活塞使用

活塞电路

无延迟科技

飞行器

半连接性[仅JE]

零刻活塞[仅JE]

无头活塞[仅JE]

高级红石

光照操纵

高级红石电路

算术逻辑

计算器

时钟

摩尔斯码

打印机

红石计算机

红石电报机

多人游戏

玩法

游玩服务器

PvP

Java版1.9前、基岩版

基地

隐藏箱子

起床战争

空岛战争

猎人游戏

服务器管理

防止恶意破坏

服务器监狱

服务器商店

雪球菜单

架设服务器

架设Java版服务器

架设基岩版服务器

服务器架设脚本[仅JE]

服务器启动脚本

FreeBSD启动脚本

OpenBSD启动脚本

Ubuntu启动脚本

WebSocket服务器[仅BE]

架设Mod服务器[仅JE]

架设Hamachi服务器

架设Spigot服务器

虚拟硬盘服务器

使用ngrok搭建服务器

架设ZeroTier服务器

本地局域网联机

服务器维护

使用LeviLamina架设服务器[仅BE]

技术性

Minecraft帮助FAQ

自定义皮肤

地图

自定义地图

下载地图

使用MCEdit刷新旧区块[仅JE]

强制打开存档[仅JE]

降级存档

资源包

制作资源包

纹理

音效和音乐

语言和文本

模型

加载资源包

数据包[仅JE]

制作数据包

实例:射线投射

视线魔法

自定义物品

安装数据包

自定义世界生成

自定义结构生成

自定义盔甲纹饰

附加包[仅BE]

基岩版开发指南

制作资源附加包

高级

基岩版实体文档

修改实体模型

制作行为包

自定义实体

自定义方块

自定义物品

自定义附加包语言文件

自定义音效

命令格式

仅Java版

生成下落的方块

文本组件

NBT命令标签

物品堆叠组件

记分板

SNBT

NBT路径

命令方块

结构方块

用命令操控实体

NBT与JSON

自定义命令触发

目标选择器

游戏安装

仅Java版

提高帧率

更新Java

修复Apache Log4j2漏洞

编写启动器

快照版本安装

获取崩溃报告

查看游戏日志

仅基岩版

Minecraft URL Scheme

汇报漏洞

在U盘中使用旧版启动器运行游戏

恢复损坏的地图数据

修复因数据包损坏的世界

在Google Drive上运行游戏

将游戏数据保存到Dropbox云端

仅限地图数据

在ChromeOS上运行Java版

过时教程

到达边境之地

获取崩溃报告(旧版)

无数据包生存

升级LWJGL

更新Minecraft

命令统计值

村民养殖(村庄与掠夺前)

村庄链

水道

水车

仅英文

自定义纹理包

基于门的铁傀儡陷阱

人工湖

矿车加速器

中继器重启系统

水梯

无延迟电路

教程

新手手册

高难度通关配装总结

成就指南

高塔指南

常见问题

教程

新手手册

基地建设指南

资源收集指南

单位阵容组合

注:作下划线标记的教程为中文原创教程。

相关阅读

刀塔传奇食魂鬼觉醒技能及装备介绍 食魂鬼觉醒后厉害吗
365betmobileapp

刀塔传奇食魂鬼觉醒技能及装备介绍 食魂鬼觉醒后厉害吗

📅 08-12 👁️ 7049
Linux下重启FTP服务的命令指南(linux重启ftp命令)
365betmobileapp

Linux下重启FTP服务的命令指南(linux重启ftp命令)

📅 07-17 👁️ 1761
金士顿1GB DDR2-667内存
365最专业的数据服务平台

金士顿1GB DDR2-667内存

📅 07-28 👁️ 6783