MC 煉金工藝 – 音效配置與音訊導入

0. 前言


在遊戲中加入音訊不只帶動遊戲感,如果加上劇情對話還能帶來劇情張力並引導遊玩速度。

透過 /playsound,趕緊看看如何透過生成工具簡單達成以上的目的吧!

1. 重點


該指令是在地點觸發,不會隨著物體移動
音量的 volume 參數在 > 1.0 的情況去 x16 則代表是傳聲的距離,最小傳聲距離是 16 格
最小音量是指傳聲範圍之外的常態音量,而非範圍內的最小音量

2. 內容


2.1. 解說 – 指令的整體架構

關於 /playsound 的架構也不複雜,但最基本的情況下建議還是使用以下方式,因為在正常情況下我們是從某個地點或物體去發出聲音,所以 Selector 的設定相對重要。而如果製作的地圖中有版權音樂或音效,要讓直播者避開風險,通常建議放在 music 或 record 兩個相對較少人開啟的音軌。

Python
/playsound <聲音特效> <音軌> <SELECTOR>

而除此之外還有一系列的參數可以調整,首先 /playsound 該指令是在「位置」進行傳聲並非跟著物體移動,因此自由活動的情況下並不適合長篇的音檔。音高的部分在 Java 版能從 0.5 ~ 2.0,上下 1 則代表是八度音的距離,而提高同時會讓聲音變得急促,反之拉低會讓音訊延長。

而 volume 的設定從 0.0 ~ 1.0 是調整音量,但超出 1.0 後則會 x16 代表傳聲的距離,而傳聲的最小距離就是 16 格,而在傳聲範圍內離發聲地點越遠漸弱。末端的 minVolume 從 0.0 ~ 1.0 的數值實際上是在撥放範圍之外,玩家所能聽到的音量。所以假設 minVolume = 1.0 的時候,在超出撥放範圍外的音量反而比在圈內外圍還大聲。 這時候最好的限縮方式就是透過 Selector 搭配 distance 標籤進行塞選。

Python
/playsound <聲音特效> <音軌> <SELECTOR> <x> <y> <z> <音量/距離> <音高> <圈外音量>

2.2. 實作 – 為材質包導入自訂義的音檔

在影片中我們有稍微帶過以下這些可用的介面化工具

【音效】Stable Audio, Meta Audiobox

【語音】TTSMaker

那這邊額外補充幾個工具給具有 Python 經驗 + GPU 的朋友

【音效】AudioLDM2, Stable Audio Open

【語音】speecht5_tts

這次需要用到在 versions 檔案看不到的材質包屬性,首先將 .ogg 音檔放入到 sounds 資料夾目錄之中。

另外建立一份 sounds.json 並進行編輯,這份檔案才是實質標註音訊的設定。各位可以參考以下的格式達成最基礎的設定,最主要會要設定 Sound Event ( 識別字串 ) 以及 name ( 檔案路徑 ) 。關於 stream 的串流設定建議設為 true 避免讀取完整大檔導致的 lag 。

Python
{
    "識別字串": {
        "sounds": [
            {
                "name": "檔案路徑",
                "stream": true
            }
        ]
    },
    "speeches.opening": {
        "sounds": [
            {
                "name": "rpg:speeches/opening",
                "stream": true
            }
        ]
    }
}

完成之後來到我們的遊戲之中,裝上材質包,最好再按下 F3 + T 重整一下。此時我們輸入指令應該要能看到我們自訂義的音檔,並可以正常進行撥放。

2.3. 實作 – 將 MIDI 轉為音階盒樂曲

我們透過 Open Note Block Studio 去讀取 MIDI 並轉換成音階盒格式,導入的時候麻煩維持 1x 並記得勾選 Read Note Velocity 進行音量調整。

這邊提供範例使用的千本櫻 MIDI 音檔

完成讀取後,由於通常公開的 MIDI 都已經調整好設定了,我們就透過 File >> Export as datapack ,等待一段時間直到有個視窗彈出才算完成。

接著我們就能將 musicbox 這個資料夾移到我們自己的 Datapack 之中,此時記得將 load 與 tick 添加到 minecraft / tags 的兩份設定之中,最後記得若為 1.21 記得將 Namespace 底下的 functions 改為 function 該新的名稱。

完成後就能到遊戲 /reload 開始測試,我們主要操作就是 play (撥放), pause (暫停), stop (停止) 上述三種,各位能注意影片中的記分板數值。

3. 後話


快速複習下本篇內容,指令的架構與基礎,再來添加自己的音檔,最後轉換 MIDI 並轉為音階盒樂曲。

那下次我們終於要進入到 Ground Crafting,透過 execute 製作視覺化的合成效果。

4. 參考


[1] sounds.json 格式 — Minecraft Wiki
https://minecraft.wiki/w/Sounds.json

[2] playsound — Minecraft Wiki
https://minecraft.wiki/w/Commands/playsound

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.