声音¶
声音(Sound)泛指Minecraft基岩版中所有音频内容的系统。基岩版通过资源包中的声音定义文件控制游戏中音效的播放方式,允许附加包添加自定义音效或覆盖原版音效。
概述¶
基岩版的声音系统围绕声音事件(Sound Event)组织。游戏中的各种行为(如方块放置、实体受伤、环境音等)触发对应的声音事件,引擎根据资源包中的声音定义查找该事件应播放的音频文件及其播放参数。
声音定义文件为资源包根目录下的sound_definitions.json。
声音定义文件¶
sound_definitions.json以JSON格式定义所有声音事件及其关联的音频文件。每个声音事件的定义包括:
sounds:一个音频文件路径列表。当声音事件触发时,从中随机选取一个播放。每个条目可以是简单的字符串路径,也可以是一个包含详细参数的对象。category:声音所属的分类,影响其受哪个音量滑块控制。可选值包括master、music、record、weather、block、hostile、neutral、player、ambient、ui等。min_distance和max_distance:声音可被听到的最小和最大距离。
声音定义示例
{
"format_version": "1.14.0",
"sound_definitions": {
"custom.sound.example": {
"category": "block",
"sounds": [
"sounds/custom/example1",
{
"name": "sounds/custom/example2",
"volume": 0.8,
"pitch": [0.9, 1.1]
}
]
}
}
}
音频文件格式¶
基岩版支持的音频文件格式为.ogg(Ogg Vorbis)、.wav和.fsb(FMOD Sound Bank)。自定义音效通常使用.ogg或.wav格式。音频文件位于资源包的sounds/目录中,在声音定义中引用时不需要包含文件扩展名。
声音播放¶
声音可以通过以下方式触发播放:
- 游戏内部:引擎在执行特定逻辑时自动触发关联的声音事件,如方块交互、实体行为、界面操作等。
/playsound命令:通过命令播放指定的声音事件,可以指定目标玩家、位置、音量和音调参数。- 动画和动画控制器:在动画时间轴或状态转移中触发音效。
- 粒子特效:粒子系统中可以关联声音事件。
- 脚本API:通过脚本在世界中播放声音。
音乐¶
游戏的背景音乐同样通过声音系统管理。音乐相关的声音事件归属music分类,受音乐音量滑块控制。音乐的播放逻辑由引擎内部控制,根据玩家所处的生物群系、维度和游戏状态选择播放对应的音乐曲目。
附加包目前不支持通过数据驱动方式完全自定义音乐播放逻辑,但可以通过/music命令控制音乐的播放和停止。