我的世界利用playsound制作音樂原理
Java版直接看文末即可。不過中間原理是相通的。
基巖版命令如下:playsound <聲音:字符串> <玩家:目標(biāo)> [方位:x y z] [音量:浮點(diǎn)數(shù)] [音調(diào):浮點(diǎn)數(shù)] [最小音量:浮點(diǎn)數(shù)]
雖然利用資源包可以極大增加自由度,豐富音色庫,而且大部分資源包自帶音階分布的資源文件,更加方便,但普通玩家制作這樣資源包門檻高。
首先游戲里面內(nèi)置了大量音效(能播放的不只是音符盒)。但是要解決頻率問題。紅石音樂玩家樂理不用多講,只要有一個半音關(guān)系確定方法,其他音也就能確定了。
十二平均律,一個八度,頻率關(guān)系是二倍關(guān)系。七個基本音級五個變化音級,中音do到高音do直接平均劃分十二份就得到半音關(guān)系頻率關(guān)系。

有了半音關(guān)系,便可構(gòu)建音階。比如我們想播放1 2 3,就需要播放某個聲音文件,拿基巖版內(nèi)置的長笛舉例 :
do 1 :playsound note.flute @p ~ ~ ~ 1 1
1-2為大二度包含二個半音關(guān)系,因而是十二次根號下二的二次方
re 2 :playsound note.flute @p ~ ~ ~ 1?1.1224
1-3是大三度,包含四個半音關(guān)系
mi 3 playsound note.flute @p ~ ~ ~ 1?1.2599
如兩只老虎前面一句 1 2 3 1 1 2 3 1只需要那三個指令就行。
所以解決了音階的問題,播放游戲內(nèi)置音效就可以制作音樂了。節(jié)奏同音符盒的方式處理即可。
去年,在QQ的興趣部落 Minecraft部落發(fā)表過Java版利用playsound和函數(shù)制作原版音效的音樂的帖子。不過大家不感興趣 。
鏈接:https://buluo.qq.com/mobile/v2/detail.html?_bid=128&_wv=1027&bid=13623&pid=6689379-1554567113