Add-on 添加自訂音效 sounds.json

 Minecraft基岩版的音效檔案都寫在資源包的sounds.json和/sounds/sound_definition.json中。了解這二個檔案的運作原理,不只能修改原本遊戲的音效,也能加入新音效。

下面以給新增的實體添加音效為例子,方塊的參考這篇文章


1. sounds.json檔案是定義有哪些要使用的音效,這裡幾乎是寫死的。

每個實體定義的方法如下圖,物件“entities”裡面,寫上實體的identifier,例如kanmusu:boku,volume是音量,pitch是音高。在“events”裡面的就是設定各個事件要觸發的音效,這裡必須按照遊戲給的寫,前面的代表的是遊戲事件,如ambient就是剛召喚出來的音效,hurt就是受傷音效,attack是近身攻擊的音效,shoot是遠程攻擊,還有idle、step等,或者自己寫一個也可以,可是遊戲就不會自動播放。

後面的值就是音效名稱,等會要在sound_definitions.json用到。這裡格式通常會寫成「生物名.音效名」

{
  "entity_sounds": {
    "entities": {
      "kanmusu:boku": {
        "volume": 4,
        "pitch": [
          1,
          1
        ],
        "events": {
          "ambient": "boku.say",
          "hurt": "boku.hurt",
          "death": "boku.death"
        }
      }
    }
  }
}


2. 接著把剛才第一步定義的音效寫出音效檔案的具體路徑。跟剛才不太一樣的是,一個實體的每個音效都要分開定義,例如這裡hurt和death的音效各成一個物件。

“category”設定的是音效的種類,有weather、hostile、neutral等。

“sounds”後面的陣列裡面寫出音效的檔案位置,如此以來可以添加多個音效,遊戲會隨機播放裡面列出來的清單,例如"hurt"我就用了3種音效。

另外可以設定"sound_distance"來設定音效能被聽到的最大距離。

Minecraft的音效檔案一律要用.ogg格式,寫出檔案位置時不用標注副檔名。

{
  "format_version": "1.14.0",
  "sound_definitions": {
    "boku.say": {
      "max_distance": 10.0,
      "category": "neutral",
      "sounds": [
        "sounds/mob/boku/say",
        "sounds/mob/boku/say2"
      ]
    },
    "boku.hurt": {
      "max_distance": 10.0,
      "category": "neutral",
      "sounds": [
        "sounds/mob/boku/hurt",
        "sounds/mob/boku/hurt2",
        "sounds/mob/boku/hurt3"
      ]
    },
    "boku.death": {
      "max_distance": 10.0,
      "category": "neutral",
      "sounds": [
        "sounds/mob/boku/death"
      ]
    }
  }
}


由於上面新增的音效都是遊戲原本就有的行為,因此當這個實體受傷或攻擊時就會自動播放音效,或者用於組件音效。

用Blockbench製作動畫時,可在畫格中插入音效與粒子效果

也可以在資源包使用動畫控制器,在轉場時設定播放音效。

{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.boku.move": {
      "states": {
        "default": {
          "animations": [
            {
              "moving": "query.modified_move_speed"
            }
          ],
          "sound_effects": [
            {
              "effect": "ambient"
            }
          ]
        }
      }
    }
  }
}


遊戲中要播放特定音效使用/playsound指令,例如要播放上面新增的boku的死亡音效,就使用:

/playsound boku.death @p ~ ~ ~ 1 1 1

留言

此網誌的熱門文章

Minecraft基岩版多人連線教學: 方法一覽

【詳細解說】什麼是Minecraft基岩版,跟Java版有什麼差?

Minecraft基岩版安裝模組(Add-On)&資源包&光影教學