UU看書

第八十六章 music-音樂

天才一秒記住【UU看書】地址:www.uukanshu.co

(本章重寫時作者使用的是MinecraftWindows10基岩版11910版本)

(本章節有許多內容由作者自己實驗或尋找得出,在MinecraftWiki上可能並未記載,或是與MinecraftWiki上的記載有些許出入。如遇問題,請以MinecraftWiki上的內容為準。——2022723作者注)

我們在第六十三章中,講到了一條控制聲音的指令:playsound。但在基岩版,還有一條和playsound很類似的指令,這條指令同樣也是用來控制聲音,只不過具體點說,是控制音樂。這條指令就是:

music

作用:控制音樂

存在版本:基岩版116100今

需要許可權等級:基岩版1

需要作弊:是

格式:

musicplaylt音樂名稱gt音量淡入淡出時間:秒播放模式

播放指定的音樂

musicqueuelt音樂名稱gt音量淡入淡出時間:秒播放模式

將指定音樂加入到待播放列表中

musicstop音樂淡出時間:秒

停止播放音樂

musicvolumelt音量gt

調整播放音量

和playsound不一樣的是,指令music僅僅只能控制執行者自己的遊戲背景音樂。又因為同一時間內又不能播放多首遊戲背景音樂,所以music雖然作用和playsound很像,但兩者的格式卻大不一樣,深層次的效果也不一樣。

Minecraft基岩版的遊戲背景音樂播放器簡直就像是一個音樂軟體,擁有『當前正在播放的歌曲』和『播放清單』,你可以指定播放的『音量』大小,還能夠設定播放的模式是『順序播放』還是『單曲迴圈』模式等等。只不過,『Minecraft音樂』這款軟體的控制方法和其他音樂軟體大不一樣,你需要使用Minecraft內建的『命令列』應用——指令——來控制這款軟體。

先讓我們停止一下游戲自動給我們“推送”的音樂:

musicstop

這將會停止執行者自己,也就是我們自己的Minecraft正在播放的背景音樂,並清除『播放清單』內的所有音樂。然後我們就可以嘗試讓遊戲播放一些指定的歌曲。

問題來了:怎麼知道我們可以播放什麼音樂呢?

這時候我們就需要請出那個大名鼎鼎的檔案:sounddefinitionsjson

還記得這個檔案嗎?我們在第六十三章中,起碼花費了超過四分之一的篇幅來講解如何找到這個檔案,相信你應該還記得吧?讓我們重新把那個檔案找出來,或者上MinecraftWiki查詢也行。

使用文字編輯器開啟這個檔案(當然如果裝了一些諸如VSCode的軟體更好),你就會再一次看到一大堆的你大機率看不懂的東西。別擔心,對於music指令來說,這裡大多數都是廢話。music指令能播放的音樂只認兩種:

①聲音名稱開頭為『music』的

②聲音名稱開頭為『record』的

使用CtrlF或Command⌘F開啟查詢模式,搜尋『music』或『record』,你應該能夠找到一些結果,比如『musicmenu』(遊戲主介面音樂)或『recordcat』(唱片C418cat的音樂)。這些音樂就是可以被music所播放的音樂。讓我們來試一試:

musicplaymusicgamenether

這將會先停止當前播放的音樂並清除『播放清單』內的所有音樂,然後再播放下界的背景音樂。只不過由於『musicgamenether』這個音樂名稱指定了多個音樂,所以遊戲會從中隨機播放一首。不出意外的話,你應該會聽到一些很小聲的不同的音樂,這就是下界的背景音樂。

現在,遊戲的『播放清單』只有一首我們剛剛新增進去的音樂,讓我們再新增一首:

musicqueuemusicgameswampmusic

這可能是沼澤生物群系的音樂。如果你對MC音樂比較熟的話可以仔細聽一聽,看看這到底放的是什麼音樂。這個音樂並不在sounddefinitionsjson這個檔案內,而是在它旁邊的musicdefinitionsjson這個檔案內(你應該有看到這個檔案)。

musicdefinitionsjson這個檔案可能是用於指定生物群系的特定背景音樂,比如你來到森林就播放森林的音樂,來到沼澤就播放沼澤的音樂但有一點可以肯定的是,music也可以播放該檔案中eventname欄位所指定的聲音名稱。

總之,上面這條指令將會把這個音樂新增到遊戲的『播放清單』當中,等到下界的音樂播放完,遊戲就會自動繼續播放沼澤生物群系的音樂,直到把『播放清單』內所有音樂播放完,遊戲才會重新切回預設的背景音樂。

我們還可以新增一些引數來指定音樂的音量和淡入淡出時間。

『音樂』引數的值是一個介於0010(含)的浮點數,舉個例子:

musicplayrecordblocks10

這將會以10(100)的音量播放C418blocks這個唱片的音樂。當然,這條指令同樣也會切斷當前正在播放的音樂,並清空『播放清單』。

『淡入淡出時間』和『音樂淡出時間』兩個引數其實都是一樣的,其值是一個介於010(含)的整數,單位為秒。舉個例子:

musicplayrecordwait1010

這將會以最大的音量播放C418wait這個唱片的音樂,並且遊戲會在音樂開始播放前以及結束播放後空出10秒時間不播放任何音樂以實現『淡入淡出』的效果。

(PS:當你使用music播放record開頭的音樂時,其實就相當於使用playsound在指令執行地點向你自己播放了個一樣的音樂,因此你跑遠的話照樣會聽不到音樂)

最後,『播放模式』可以指定兩個模式,即:

playonce——只播放一次,即『順序播放』,這是預設模式

loop——洗腦迴圈模式,即『單曲迴圈』

舉個例子:

musicqueuerecordmall100loop

這將會在『播放清單』上新增C418mall唱片的音樂,遊戲順序播放到這個音樂時就會不斷重複播放這個音樂,直到你使用stop子命令停止播放或者退出遊戲。

最後,讓我們來嘗試改變一下當前正在播放的背景音樂的音量:

musicvolume05

這將會把當前正在播放的背景音樂的音量調整到50。

本章到此為止。

——附表①:music可用的聲音清單(作者自己整理,可能不全)

唱片音樂

record13

recordcat

recordblocks

recordchirp

recordfar

recordmall

recordmellohi

recordstal

recordstrad

recordward

record11

recordwait

record5

recordpigstep

recordotherside

生物群系音樂

musicgamedeepdark

musicgameswampmusic

musicgameandwildequalchance

musicgameandwildfavorgame

musicgamelushcaves

musicgamedripstonecaves

musicgamegrove

musicgamejaggedpeaks

musicgamelushcaves

musicgamemeadow

musicgamefrozenpeaks

musicgamesnowyslopes

musicgamestonypeaks

musicgamebasaltdeltas

musicgamenetherwastes

musicgamesoulsandvalley

musicgamewarpedforest

musicgamesoulsandvalley

musicgamecrimsonforest

普通背景音樂

musicmenu

musicgame

musicgamecreative

musicgamewater

musicgameend

musicgameendboss

musicgamenether

musicgamecredits

(PS其中標上星號『』的音樂代表著這個音樂並不是從vanilla目錄下找到的,而是從各版本的vanilla目錄下找到的)

——附表②:music歷史

基岩版

116100——加入了music

如遇章節錯誤,請點選報錯(無需登陸)

新書推薦

請叫我LPL諸葛亮 網遊之縱橫天下 陸神的國服女友 企鵝系玩家 彩虹之翼 全息網遊之花妖也瘋狂 生存作業