我的世界利用playsound制作音乐原理
Java版直接看文末即可。不过中间原理是相通的。
基岩版命令如下:playsound <声音:字符串> <玩家:目标> [方位:x y z] [音量:浮点数] [音调:浮点数] [最小音量:浮点数]
虽然利用资源包可以极大增加自由度,丰富音色库,而且大部分资源包自带音阶分布的资源文件,更加方便,但普通玩家制作这样资源包门槛高。
首先游戏里面内置了大量音效(能播放的不只是音符盒)。但是要解决频率问题。红石音乐玩家乐理不用多讲,只要有一个半音关系确定方法,其他音也就能确定了。
十二平均律,一个八度,频率关系是二倍关系。七个基本音级五个变化音级,中音do到高音do直接平均划分十二份就得到半音关系频率关系。

有了半音关系,便可构建音阶。比如我们想播放1 2 3,就需要播放某个声音文件,拿基岩版内置的长笛举例 :
do 1 :playsound note.flute @p ~ ~ ~ 1 1
1-2为大二度包含二个半音关系,因而是十二次根号下二的二次方
re 2 :playsound note.flute @p ~ ~ ~ 1 1.1224
1-3是大三度,包含四个半音关系
mi 3 playsound note.flute @p ~ ~ ~ 1 1.2599
如两只老虎前面一句 1 2 3 1 1 2 3 1只需要那三个指令就行。
所以解决了音阶的问题,播放游戏内置音效就可以制作音乐了。节奏同音符盒的方式处理即可。
去年,在QQ的兴趣部落 Minecraft部落发表过Java版利用playsound和函数制作原版音效的音乐的帖子。不过大家不感兴趣 。
链接:https://buluo.qq.com/mobile/v2/detail.html?_bid=128&_wv=1027&bid=13623&pid=6689379-1554567113