sounds.json是一个由资源包的声音系统使用的文件。当一个或多个游戏内事件触发了一个声音事件时,声音系统会根据该文件的内容来决定播放哪个音效。该文件应该放置于资源包的assets/<命名空间>/
目录下。在该文件中定义的声音事件可以通过形如<命名空间>:<声音事件名>
的命名空间ID来调用。
游戏默认的该文件放置在.minecraft/assets/objects
(基岩版在assets/resource_packs/vanilla/sounds
)目录下,它的文件名可以在.minecraft/assets/indexes/<游戏版本>.json
文件中查询。
文件结构[]
文件用JSON格式存储,但在这里使用NBT的图标来表示。
Java版[]
- :根对象。
- 声音事件名:一个声音事件。声音事件名通常是按照类别以点(
.
)分割的(例如entity.enderman.stare
)。下方有表格列出了所有游戏自带的声音事件。(如果你想要为该声音事件设定minecraft
以外的命名空间,应当把sounds.json
文件放置在相应命名空间的目录下,而不是在这里定义。)- replace:可选。如果设定为
true
,在sounds
中定义的音效列表会替换掉优先级更低的资源包中为该声音事件定义的音效。设定为false
则会补充到原来的音效列表中,而不是直接替换。如果不指定,默认为false
。 - subtitle:可选。如果游戏中开启了“显示字幕”选项,游戏将会在该声音事件被播放时将该字符串翻译为声音字幕。
- sounds:可选。该声音事件使用的音效文件列表。当该声音事件被触发时,游戏会从此列表定义的音效文件中随机选取一个播放。
- : 从
assets/<命名空间>/sounds/
文件夹到此音效文件的路径。应使用正斜线(/
)分割路径。 - : 一个代表音效文件的对象。如果你需要定义更多参数的话再用这个对象定义,否则用上面的字符串格式即可。
- name:从
assets/<命名空间>/sounds/
文件夹到此声音文件的路径,或着是另一个声音事件的命名空间ID。 - volume:播放此声音时的音量。值为0.0到1.0的小数。未定义时默认为1.0。
- pitch:以确定的值播放音调。未定义时默认为1.0。可以调至更高或更低。
- weight:此声音事件触发时此声音被播放的相对权重。默认为1。例如,设为2相当于此文件在列表中出现两次。
- stream:设置为
true
则此声音会以流式播放。当声音较长时最好设为true
来避免卡顿。所有的music
和record
分类的音效(除了音符盒)都使用流式播放,因为它们的长度都达到一分多钟(最长达八分多钟)。未指定则默认为false
。 - attenuation_distance: 基于距离的音效大小衰减率。用于传送门、信标和潮涌核心。默认为16。
- preload:若设置为
true
,则该音效文件会在加载资源包时就加载,而不是在播放音效的时候再加载。用于水下环境音效。默认为false
。 - type:可选
sound
或event
。file
表明name
中定义的是文件名,event
表明name
中定义的是声音事件名。未指定则默认为sound
。
- name:从
- : 从
- replace:可选。如果设定为
- 声音事件名:一个声音事件。声音事件名通常是按照类别以点(
Dinnerbone的关于此文件的编写规范。
基岩版[]
sound_definitions.json或music_definitions.json[]
- : 根对象。
- format_version:当前值为
1.14.0
,表示自村庄与掠夺以来使用的标准格式。 - sound_definitions:对声音事件的定义。
- :单个声音事件,通常会分为一类(例如
mob.endermen.stare
或step.stone
)。默认的声音事件会在下方列出。- category:控制声音音量滑条的分类。
master
、music
、record
、weather
、hostile
、neutral
、player
、block
、bucket
、bottle
、ambient
、voice
、sound
。默认值为sound
。 - min_distance:声音开始衰减的距离。默认值为0。
- max_distance:声音完全听不见的距离。默认值为16。
- min_delay:声音事件触发后经过多长时间才会播放(最小值),单位为秒。只有music_definitions.json才会使用此参数。默认值为0。
- max_delay:声音事件触发后经过多长时间才会播放(最大值),单位为秒。只有music_definitions.json才会使用此参数。默认值为0。
- sounds:声音事件所使用的具体音效。
- name:该音效在资源包中的路径(不包含拓展名)。若详细定义了每个音效的具体参数,则会使用下方的组件。
-
- name:该音效在资源包中的路径(不包含拓展名)。
- stream:当该声音为流式播放时为true。默认值为false。
- is3D:是否以立体声播放。
- volume:声音的音量。默认值为1.0。可以是一个区间以表示范围。
- pitch:声音的音高。默认值为1.0。可以是一个区间以表示范围。
- weight:声音的权重,即触发该音效时间后单个声音会被播放的概率,例如值为2时相当于将该音效重复定义了1次。默认值为1。
- load_on_low_memory:是否预载。预载的音效可以在低内存设备上播放。
- subtitle:未使用的值。
- category:控制声音音量滑条的分类。
- :单个声音事件,通常会分为一类(例如
- format_version:当前值为
sounds.json[]
- : 根对象。
- :声音事件的集合名。值可以是
individual_event_sounds
、block_sounds
、entity_sounds
、interactive_sounds
。- :二级集合名,用于表示某一类方块的共同音效集合,例如
stone
和wood
。- volume:声音的音量。默认值为1.0。可以是一个区间以表示范围。
- pitch:声音的音高。默认值为1.0。可以是一个区间以表示范围。
- events:具体的声音事件命名空间ID的集合。
- :系统音效类型,例如
item.use.on
。默认值和声音事件命名空间ID保持一致。- sound:单个声音事件命名空间ID,例如
use.stone
。作为简写,该参数有时候会直接以命名空间ID为值。- volume:声音的音量。默认值为1.0。可以是一个区间以表示范围。此值与二级集合的同一参数为乘积关系,以表示该声音最终的音量。
- pitch:声音的音高。默认值为1.0。可以是一个区间以表示范围。此值与二级集合的同一参数为乘积关系,以表示该声音最终的音高。
- sound:单个声音事件命名空间ID,例如
- :系统音效类型,例如
- :二级集合名,用于表示某一类方块的共同音效集合,例如
- :声音事件的集合名。值可以是
声音事件[]
一个声音事件是和游戏事件联系在一起的。多个声音事件可能对应不同的游戏事件或属于不同的声音分类,但它们共用同一个声音文件。小部分的有效声音文件并没有出现于sounds.json,而其他则没有相对应的游戏事件。任何缺少游戏事件的声音事件都仅能通过/playsound
命令播放。所有默认的声音事件,它们使用的声音,它们属于的类别,以及触发它们的游戏事件将在下表中列出。
Java版数据值
[编辑]
基岩版数据值
[编辑]
方块声音种类[]
声音系统可以使被踩到、被放置、被破坏的方块产生相应的声音。
历史[]
Java版 | |||||
---|---|---|---|---|---|
1.7.2 | 13w42a | 加入了sounds.json。 | |||
1.9 | 15w43a | 更改了许多声音的id,之前的id可以从sounds.json/Java版1.9前上查看。 | |||
15w43b | 加入了“subtitle”字段。 | ||||
16w02a | 加入了“voice”声音事件类别。 | ||||
1.10 | 移除了“category”字段。[1] | ||||
1.13 | 18w10a | 加入了“preload”字段。 | |||
携带版 | |||||
1.0.4 | 1.0.4.1 | 加入了sounds.json、sound_definitons.json和music_definitons.json。 |
参考[]
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |
版本 |
| ||||||
---|---|---|---|---|---|---|---|
开发 |
| ||||||
技术性 | |||||||
多人游戏 | |||||||
特色功能 |
语言