sounds.json

来自Minecraft Wiki
跳转至: 导航搜索

sounds.json(在基岩版中为sound_definitions.json)是一个由资源包的声音系统使用的文件。当一个或多个游戏内事件触发了一个声音事件时,声音系统会根据该文件的内容来决定播放哪个音效。该文件应该放置于资源包的assets/<命名空间>/目录下。在该文件中定义的声音事件可以通过形如<命名空间>:<声音事件名>的命名空间ID来调用。

游戏默认的该文件放置在.minecraft/assets/objects(基岩版的话是在assets/resource_packs/vanilla/sounds)目录下,它的文件名可以在.minecraft/assets/indexes/<游戏版本>.json文件中查询。

文件结构[编辑 | 编辑源代码]

这个文件用JSON格式存储,但在这里使用NBT的图标来表示。

  • 根对象。
    •  声音事件名: 一个声音事件。声音事件名通常是按照类别以点(.)分割的(例如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相当于此文件在列表中出现两次。相反地,假设别的文件都没有更改此设置,设为0.5相当于别的文件在列表中都出现两次。
          •  stream: 设置为true则此声音会以流式播放。当声音较长时最好设为true来避免卡顿。所有的musicrecord分类的音效(除了音符盒)都使用流式播放,因为它们的长度都达到一分多钟。未指定则默认为false
          •  attenuation_distance: 基于距离的音效大小衰减率。用于传送门、信标和潮涌核心。
          •  preload: 若设置为true,则该音效文件会在加载资源包时就加载,而不是在播放音效的时候再加载。用于水下环境音效。默认为false
          •  type: 可选soundeventsound表明name中定义的是文件名,event表明name中定义的是声音事件名。未指定则默认为sound
 1 "游戏内调用名称": {
 2     "category": "类型",
 3     "replace":"(true/false)" ,
 4     "sounds": [
 5       {
 6         "name": "Sounds文件夹到此声音文件的路径",
 7         "volume":"播放此声音时的音量",
 8         "weight":"播放概率",
 9         "stream": true
10       }
11     ]
12   }

[1]类型

这里有sounds.json的pre-1.10范本。
这里有Dinnerbone关于此文件的编写规范。

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

一个声音事件是和游戏事件联系在一起的。多个声音事件可能对应不同的游戏事件或属于不同的声音分类,但它们共用同一个声音文件。小部分的有效声音文件并没有出现于sounds.json,而其他则没有相对应的游戏事件。任何缺少游戏事件的声音事件都仅能通过/playsound命令播放。所有默认的声音事件,它们使用的声音,它们属于的类别,以及触发它们的游戏事件将在下表中列出。

Java版数据值

基岩版数据值

方块声音种类[编辑 | 编辑源代码]

声音系统可以使被踩到、被放置、被破坏的方块产生相应的声音。

种类 所属方块 注解
布类 羊毛仙人掌蛋糕地毯[注 1] 火方块被破坏的声音是随机生成的,fizz instead of dig.cloth.
草方块海绵湿海绵树叶高草丛枯萎的灌木棕色蘑菇红色蘑菇TNT小麦甘蔗睡莲菌丝藤蔓胡萝卜马铃薯干草块甜菜草径干海带块标靶 海绵、TNT理论上不属于草,但还是发出草的声音。
作物类 海带海草小麦马铃薯胡萝卜甜菜根下界疣
沙砾类 泥土砂土灰化土沙砾耕地粘土块
石制类 石头安山岩磨制安山岩闪长岩磨制闪长岩花岗岩磨制花岗岩圆石基岩金矿石铁矿石煤矿石青金石矿石青金石块发射器砂岩粘性活塞蜘蛛网活塞石质台阶砖块苔石黑曜石刷怪笼红石线钻石矿石熔炉高炉烟熏炉砂轮切石机圆石楼梯石制压力板红石矿石石质按钮唱片机怪物蛋石砖砖块楼梯石砖楼梯下界砖栅栏附魔台酿造台炼药锅末地石龙蛋砂岩楼梯绿宝石矿石末影箱绊线钩绊线命令方块信标、所有花盆生物头颅铁砧下界石英矿石石英块石英楼梯投掷器陶瓦屏障海晶石海晶石砖暗海晶石煤炭块红砂岩楼梯红砂岩台阶岩浆块混凝土潜影盒侦测器、所有失活的珊瑚方块、所有失活的珊瑚、所有失活的珊瑚扇哭泣的黑曜石重生锚 唱片机虽然发出石制类方块的音效,但是这种方块最好用破坏,而不是
珊瑚类 所有珊瑚方块、所有珊瑚、所有珊瑚扇蜜脾块 声音好似石制类方块和史莱姆方块的组合版。另蜂窝块理论上并不属于珊瑚,但它仍然发出珊瑚的声音。
金属类 充能铁轨探测铁轨金块铁块钻石块铁轨铁门铁栏杆绿宝石块漏斗红石块激活铁轨铁活板门 钻石块、绿宝石块理论上并不属于金属,但它们实际上仍然发出金属的声音。
木质类 木板木头剥皮原木剥皮木头书架火把、木质楼梯、箱子工作台梯子告示牌拉杆、木质压力板、红石火把栅栏南瓜南瓜灯红石中继器、木活板门、巨型蘑菇方块、西瓜、南瓜藤、西瓜藤、栅栏门、木质台阶、可可果、木质按钮、陷阱箱测重压力板红石比较器阳光探测器旗帜木门制图台制箭台锻造台讲台纺织机堆肥桶营火木桶蜂窝蜂箱 其中推荐使用镐来破坏测重压力板。
玻璃类 玻璃荧石下界传送门方块染色玻璃玻璃板末地传送门方块染色玻璃板海晶灯浮冰蓝冰末地传送门框架红石灯 这些方块在被踩踏和敲击的时候发出“石质类”的声音,并且很多“玻璃类”方块推荐用镐破坏,但是“玻璃类”方块与“石制类”方块的区别是——“玻璃类”方块在被破坏的那一霎那会发出清脆的玻璃碎裂的声音。
地狱类 骨块下界岩玄武岩磨制玄武岩灵魂沙灵魂土诡异菌岩绯红菌岩下界砖块下界砖楼梯下界砖台阶红色下界砖块红色下界砖楼梯红色下界砖台阶下界合金块下界疣块诡异疣块菌光体下界金矿石下界石英矿石磁石绯红菌柄诡异菌柄绯红菌核诡异菌核远古残骸 包含各种地狱方块中不同的音效。
其他 铁砧和钟在行走和破坏时则发出石制方块的声音,只有在放置时才发出特殊的声音。

历史[编辑 | 编辑源代码]

Java版
1.7.213w42a加入了sounds.json。
1.915w43b加入了 "subtitle" 字段。
?更改了许多声音的id,之前的id可以从sounds.json/Java版1.9前上查看。
16w02a加入了“voice”声音事件类别。
1.10移除了“category”区域[2]
1.1318w10a加入了“preload”字段。
Java版(即将到来)
1.1620w06a加入了这些方块的新的方块声音:骨块下界岩灵魂沙灵魂土下界疣块下界砖(及其变种)和下界石英矿石
携带版
1.0?加入了sound_definitons.json。

参考[编辑 | 编辑源代码]

  1. 类型: ambient(环境) weather(天气) player(玩家) neutral(中立) hostile(敌意) block(方块) record(唱片) music(音乐) master(控制)
  2. https://twitter.com/Dinnerbone/status/852212485855862784