Bedrock Wiki
  • QQ
  • 原站
新手入门指南
  • Guide
    • 1. 简介
      指南
    • 2. 附加组件详解
    • 3. 软件与准备工作
    • 4. 项目设置
    • 5. 创建自定义物品
    • 6. 创建自定义实体
    • 7. Blockbench:建模、贴图与动画制作
    • 8. 添加战利品表、生成规则与合成配方
  • Extra
    • a. 理解JSON
    • b. 下载示例包
    • c. 故障排除
      帮助
    • d. 高级清单文件指南
    • e. 格式版本
    • f. Android 项目设置
JSON UI
  • General
    • JSON UI 入门指南
      指南
    • 最佳实践
      指南
  • Tutorials
    • Aseprite 动画
    • 保留标题文本
      中级
    • 修改服务器表单
      中级
    • 字符串与数字转换
      中级
    • 按钮与开关
      新手
    • 添加HUD界面元素
      新手
  • Documentation
    • JSON UI 文档
Meta
  • Style Guide
  • 使用JSON模式(Schemas)
  • 实用链接
  • 版本控制
  • 附加包性能优化
  • Q&A
    • GameTest 问答集 2021/08/06
    • 世界生成问答 2024/11/15
    • 延迟渲染技术预览问答 2024/02/23
    • 方块与物品问答 2024/08/30
    • 脚本与编辑器问答 2023/09/22
NBT
  • General
    • .mcstructure
  • Tutorials
    • 扩展结构限制
      简单
    • 教育版中的实验功能
      简单
  • NBT in Depth
    • NBT 库列表
      专家
    • NBT读取示例
      专家
    • 关于NBT(命名二进制标签)
      专家
世界生成
  • General
    • 世界生成入门
      指南
      实验性
    • 特性类型
      实验性
    • 生物群系
      指南
      实验性
  • Tutorials
    • 特征(Feature)的方块条件
      实验性
    • 生成地表区块
      实验性
    • 生成自定义矿石
      实验性
    • 生成自定义结构
      实验性
    • 高度图噪声地形
      实验性
  • Documentation
    • 生物群系标签
动画控制器
  • 动画控制器入门指南
    指南
  • 实体命令
    中级
  • AFK检测器
  • 将Molang变量转换为计分板数值
  • 死亡指令
  • 重生指令
命令
  • General
    • 命令方块入门指南
    • 函数
    • NBT 命令
    • 坐标系
    • 方块状态
    • 理解目标选择器
    • 记分板操作
  • Commands
    • Execute
      简单
    • Playanimation
    • 伤害
    • 播放音效
  • On Event Systems
    • 玩家首次加入时
    • On Player Join
    • 玩家离开时触发
    • 玩家死亡事件
    • 玩家重生事件系统
    • 首次加载世界时
  • Scoreboard Systems
    • 实体计数器
    • 计分板计时器
    • 比较与获取分数
  • Techniques
    • 执行逻辑门
    • MBE - Max的方块实体
    • FMBE - 创建显示实体的新方法
    • 视线检测
    • 移动状态检测
    • 轨道摄像机
  • Useful Creations
    • 多人位置重排系统
      函数
    • 自定义合成台
      简单
实体
  • General
    • Intro to Entities BP
      指南
      新手
    • 实体资源包入门
      指南
      新手
    • 实体问题排查指南
      帮助
    • NPC对话系统
      中级
    • 实体事件
      新手
    • 实体属性
    • 渲染控制器
      新手
    • 生成规则
  • Tutorials
    • 任意坐标系间的坐标转换(世界、实体、骨骼)
      中级
    • 创建船只
      中级
    • 实体手持物品
      中级
    • 实体攻击机制
      中级
    • 实体睡眠机制
      中级
    • 实体碰撞体
      中级
    • 实体移动
    • 实体计时器
      中级
    • 无敌实体
      新手
    • 村庄机制实现指南
    • 检测其他实体
      中级
    • 生成已驯服的实体
      脚本
      中级
    • 视线检测实体
      中级
    • 禁用队友伤害
      中级
    • 范围效果云入门指南
      中级
    • 虚拟实体
      新手
    • 飞行实体控制
      中级
  • Documentation
    • Vanilla Usage Spawn Rules
    • 原版使用组件
    • 抛射物
    • 虚拟组件
    • 运行时标识符
    • 非生物实体运行时标识符
战利品、配方与交易
  • General
    • 交易行为
  • Documentation
    • 战利品表
    • 交易表
    • 合成配方
    • 物品函数
  • Tutorials
    • 随机化结构战利品
      简单
文档
  • Shared Constructs
  • Molang 查询详解
  • Vanilla Materials
    专家
  • 声音定义
  • 文件类型
  • 材质配置文件说明
    专家
  • 菜单分类
  • 资源包文件夹结构
  • 雾效ID
  • 高级Molang指南
方块
  • General
    • 方块入门指南
      指南
      新手
    • 方块组件
    • Block Tags
    • 方块状态
    • Block Traits
    • 方块排列组合
    • 方块事件
      脚本
    • 方块事件迁移指南
      帮助
    • 方块物品化
      中级
    • 方块问题排查指南
      帮助
  • Visuals
    • 方块剔除
      中级
    • 方块模型
      指南
      新手
      简单
    • 方块着色
      简单
    • 方块纹理动画
      中级
    • 方块纹理变体
      中级
  • Tutorials
    • Precise Interaction
      专家
      脚本
    • Precise Rotation
      专家
      脚本
    • 伪方块
      中级
    • 可旋转方块
    • 应用持续效果
      简单
      脚本
    • 矿石战利品表
      简单
      脚本
    • 规避状态值限制
      专家
  • Vanilla Re-Creations
    • 自定义作物
      中级
      脚本
    • 自定义活板门
      中级
      脚本
    • 自定义玻璃
      新手
      简单
      已弃用
    • 自定义釉面陶瓦
      简单
  • Documentation
    • 原版方块模型
      新手
    • 方块形状
    • 方块格式历史
    • 方块音效
服务器
  • Software
    • Bedrock Server Software
  • Protocols
    • Bedrock Protocol
    • NetherNet 协议
    • RakNet 协议
概念
  • contents.json
  • Molang
    中级
  • Rawtext
  • textures_list.json
  • 命名空间
  • 子包
  • 文本与本地化
  • 着色器
  • 纹理图集
    中级
  • 表情符号与特殊字符
  • 覆盖资源
    中级
  • 音效
    中级
物品
  • General
    • 物品入门指南
      指南
      新手
    • 物品组件
    • 物品标签
    • 物品事件
      脚本
    • Item Event Migration
      帮助
    • 物品问题排查指南
      帮助
  • Tutorials
    • Custom Pottery Sherds
    • 可投掷物品
      中级
    • 生成物品
      中级
    • 自定义武器
      简单
    • 自定义盔甲
    • 自定义食物
      简单
      脚本
    • 通过装备物品执行命令
      实验性
      中级
    • 高分辨率物品
  • Documentation
    • 附魔
    • Numerical Item IDs
    • Vanilla Usage Components
    • 原版物品标识符
      已弃用
    • 可附着物
      新手
    • 物品格式历史记录
视觉效果
  • General
    • 实体视觉效果简介
      指南
    • 基岩版建模指南
    • 动画中的特效
    • 基于数学的动画
      中级
    • 材质
      专家
    • 材质创作
      专家
    • 皮肤包制作指南
    • 自定义死亡动画
      中级
  • Tutorials
    • Glowing Entity Texture
    • 受伤动画
      中级
    • 实体纹理动画
      中级
    • 栓绳位置调整
      简单
    • 玩家几何模型
      新手
    • 移除实体阴影
      中级
    • 重绘生成蛋纹理
      新手
  • Ideas
    • 结构展示技巧
粒子效果
  • General
    • 粒子效果入门
      指南
  • Tutorials
    • 禁用粒子效果
      新手
  • Documentation
    • 原版粒子效果
脚本编写
  • General
    • 脚本编程入门
    • 什么是Script API?
    • API 模块
  • Tutorials
    • GameTests
      实验性
    • 简易聊天命令
      实验性
    • 脚本核心功能
    • 脚本表单
      实验性
    • 脚本请求API
      实验性
    • 阻止方块放置
  • Documentation
    • JavaScript 问题排查指南
    • Script Resources
    • Script Watchdog
      实验性
    • TypeScript
    • 引擎环境
虚拟现实
  • General
    • 启用VR模式
      指南
    • 配置资源包
      专家
  • Tutorials
    • 编辑你的第一个模型
      专家

音效

intermediate
音效
  • 文件夹结构
  • sound_definitions.json
    • /playsound 音量说明
    • 顶级键
    • 音效定义
    • 示例
  • sounds.json
    • 添加实体音效
    • 示例
  • 将音效添加到动画中
  • 将音效添加到动画控制器中

在基岩版中,我们可以添加自定义音效而不覆盖任何原版音效。这是通过将文件添加到资源包中实现的。

TIP

了解音效的最佳方式是下载并研究默认资源包。

文件夹结构 ​

添加音效时需要编辑两个主要文件。注意sound_definition是如何嵌套在sounds文件夹中的。

音效文件本身被添加到sounds文件夹中,可以是以下任意格式:

    • 📝sounds.json
      • 📝sound_definitions.json
      • 📝example.wav
      • 📝example.ogg
      • 📝example.fsb

sound_definitions.json ​

sound_definitions.json用于定义新的音效简称。可以将其视为将简称或ID映射到实际音效路径。以下是一个添加名为example.toot的新小号音效的示例:

RP/sounds/sound_definitions.json
json
{
	"format_version": "1.14.0",
	"sound_definitions": {
		"example.toot": {
			"category": "neutral",
			"sounds": ["sounds/trumpet"]
		}
	}
}
1
2
3
4
5
6
7
8
9

以这种方式添加的音效可以使用/playsound命令触发。请注意,playsound不会自动纠正输入,因此需要小心输入。

WARNING

通过文件路径引用的新文件(如音效)需要完全重启客户端才能加载。这意味着如果音效不起作用,应该重启整个Minecraft客户端,而不仅仅是重新加载世界。

/playsound 音量说明 ​

游戏会在将音量乘以音效定义的音量之前,将音量限制在最多1.0。

对于/playsound,音效的最大可听范围由min(max_distance, max(volume * 16, 16))决定。 如果音效定义中没有给出"max_distance",则等同于playsound_volume * 16。

以下是距离对音效衰减的近似影响。实际图表可能不是线性的。

上图显示了当播放音量参数大于或等于1时,距离对音效衰减因子的近似影响。注意<volume>参数如何限制音效的可听范围。 distance轴表示音效监听者(玩家)与音源的距离。对应的volume轴值是播放音量的因子,上限为1,乘以音效定义的音量得到最终听到的音效音量。可以用表达式表示为:final_volume = min(playsound_volume, 1) * graph_volume * sound_definition_volume。

注意: 音效音量随距离的衰减不受命令中音量参数的影响。

例如,mob.ghast.affectionate_scream设置了"min_distance": 100.0,但在使用/playsound命令播放时,音量设为1时最多只能在16格内听到。指定更大的音量值可以增加可听范围。当使用足够大的音量使音效在更远处可听时,音效音量只会在距离超过100.0后逐渐减小。

要制作一个可以在远处听到但音量随距离持续减小的音效,可以添加例如"volume": 0.01并在/playsound命令中使用较大的<volume>值。/playsound的高音量值会产生较大的可听范围(例如音量为4时是64格,如上计算),而低音量可以防止播放的音效过早达到1.0上限。

顶级键 ​

在上面的示例中,我展示了两个顶级字段:category和sounds。sounds将在下面详细讨论,其他顶级键将在此讨论:

类别 ​

类别由引擎内部用于决定每个音效的播放方式。我们可以利用不同的通道获得其他效果。

类别说明
weather
block
bucket
bottle
ui此类别中的音效将忽略范围限制
player
hostile
music
record
neutral

min_distance ​

音源距离超过此值后,音效音量开始衰减。默认值:0.0。必须为浮点数(如1.0),否则该属性将被忽略。

max_distance ​

音源距离超过此值后,音效音量达到最安静(如果在范围内)。必须为浮点数(如1.0),否则该属性将被忽略。

音效定义 ​

在上面的示例中,我将sounds显示为一个包含单个路径的列表。这对于简单音效很好,但功能有限。首先,我可以在列表中添加多个音效。这些音效将在播放时随机选择:

RP/sounds/sound_definitions.json
json
{
	"format_version": "1.14.0",
	"sound_definitions": {
		"example.toot": {
			"category": "neutral",
			"sounds": [
				"sounds/trumpet",
				"sounds/trumpet2",
				"sounds/trumpet3"
			]
		}
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13

此外,我们可以将每个音效定义为对象而不是字符串。这允许更精细的控制并解锁一些新设置。字符串/对象风格可以混合使用。

name ​

文件路径,例如:"sounds/music/game/creative/creative1"

stream ​

限制音效同时播放的实例数量。会使游戏在播放时不将整个音效数据加载到内存中,而是在播放时加载较小的部分,从而使用更少的内存。适用于音效繁重的世界以提高性能。

volume ​

音效应播放的音量,从0.0到1.0。音效不能比初始编码时更响亮。默认设置为1.0。 自定义资源包中的音效可以设置大于1.0的有效值。

load_on_low_memory ​

强制在内存不足时加载音效。"load_on_low_memory"自1.16.0起已弃用。

pitch ​

音效的音调(听起来的高低)。应为正值。例如,2.3将使音效以2.3倍速度播放,从而音调更高。默认设置为1.0。

is3D ​

true使音效具有方向性。默认对所有音效设置为true。music和ui音效忽略此设置。只有设置为false的音效会播放立体声。

interruptible ​

默认设置为true。

weight ​

如果列表中有多个音效,将随机选择要播放的音效。"weight"(整数值如5)将给出此音效从列表中被选择的相对概率。例如,如果列表中有两个音效,一个"weight": 10,另一个"weight": 2,第一个音效被播放的概率大约是第二个的5倍(准确地说:10 / (10 + 2) = 83.3%概率 vs. 2 / (10 + 2) = 16.7%概率)。默认设置为1。

示例 ​

以下是一个包含这些选项的更现实示例:

RP/sounds/sound_definitions.json#sound_definitions
json
"block.beehive.drip": {
    "category": "block",
    "max_distance": 8,
    "sounds": [
        {
            "name": "sounds/block/beehive/drip1",
            "load_on_low_memory": true
        },
        "sounds/block/beehive/drip2",
        "sounds/block/beehive/drip3",
        "sounds/block/beehive/drip4"
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13

sounds.json ​

如果我们希望音效自动运行,可以将它们添加到sounds.json文件中。这将直接将音效定义绑定到游戏事件,无需使用/playsound触发。

音效可以添加到各种类别中:

类别说明
individual_event_sounds包含如信标激活、箱子关闭或爆炸等音效
block_sounds包含方块的击打、脚步和破坏音效
entity_sounds包含实体的死亡、环境、受伤等音效(包括自定义实体!)
interactive_sounds开发中

添加实体音效 ​

我假设音效可以添加到其他类别中,但我个人只有将音效添加到entities类别的经验。实体音效会在实体生命周期的各个阶段自动播放。

常见事件:

事件说明
ambient随机播放,如咕哝声、咯咯声或恶魂噪音
hurt受伤时播放
death死亡时播放
step实体在地面上移动时播放
fall.big从高处落地时播放
fall.small从低处落地时播放
splash在水中溅起水花时播放
attack近战攻击时播放
shoot发射投射物时播放
cast.spell开始召唤时播放
prepare.attack完成召唤时播放
roar咆哮时播放

还有许多音效事件,很可能自动触发,但我没有详细信息,例如:

未知类别
breathe
splash
swim
ambient.in.water
death.in.water
jump
eat
hurt.in.water
mad
stare
sniff
sleep
spit
warn
scream

示例 ​

RP/sounds.json
json
{
	"entity_sounds": {
		"entities": {
			"wiki:elephant": {
				"volume": 1,
				"pitch": [0.9, 1.0],
				"events": {
					"step": {
						"sound": "elephant.step",
						"volume": 0.18,
						"pitch": 1.1
					},
					"ambient": {
						"sound": "elephant.trumpet",
						"volume": 0.11,
						"pitch": 0.9
					}
				}
			}
		}
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

将音效添加到动画中 ​

动画中播放的音效基于RP实体文件中的简称定义。

此示例展示了播放翅膀拍打音效,与动画同步。

RP/entities/dragon.json#minecraft:client_entity/description
json
"sound_effects": {
    "wing_flap": "wiki.dragon.wing_flap" //其中wiki.dragon.roar是在sound_definitions中定义的音效
}
1
2
3
RP/animations/dragon.json#animations/animation.dragon.flying
json
"sound_effects": {
    "3.16": {
        "effect": "wing_flap"
    }
}
1
2
3
4
5

将音效添加到动画控制器中 ​

可以在动画控制器中以类似动画的方式播放音效。

此示例展示了播放爆炸音效,使用动画控制器同步。

RP/entities/custom_tnt.json#minecraft:client_entity/description
json
"sound_effects": {
    "explosion": "wiki.custom_tnt.explosion" //其中wiki.custom_tnt.explosion是在sound_definitions中定义的音效,与动画音效类似。
}
1
2
3
RP/animation_controllers/custom_tnt.animation_controllers.json#controller.animation.custom_tnt
json
"states":{
    "default":{
        "transitions":[
            {
                "explode_state":"q.mark_variant == 1"
            }
        ]
    },
    "explode_state":{
        "sound_effects":[
            {
                "effect":"explosion"
            }
        ],
        "transitions":[
            {
                "default":"q.mark_variant == 0"
            }
        ]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

贡献者

编辑 音效

Bedrock Wiki by Bedrock OSS ,Translate by 8aka-Team

"Minecraft"是Mojang AB的注册商标。

Bedrock OSS、Bedrock Wiki以及 bedrock.dev 与Microsoft及Mojang AB不存在任何隶属关系。

  • 隐私政策
  • 加入QQ社区
  • 参与贡献指南
  • 访问代码仓库