Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /opt/bitnami/wordpress/wp-includes/functions.php on line 6114
MC 煉金工藝 – 音效配置與音訊導入 - 八寶周的研究小屋

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.