我无法在游戏中实现自定义音乐光盘。带有实际项目的所有内容(纹理,模型,在自动点唱机中播放音乐等)都可以正常工作,但是在播放音乐时,无论您身在何处,都可以听到。我想这样做,以便我的音乐光盘像香草光盘一样具有有限的距离。
这是我对该项的注册(为了方便起见,我仅将其中一张音乐光盘删除了所有其他项):
@SubscribeEvent
public static void registerItems(final RegistryEvent.Register<Item> event) {
event.getRegistry().registerAll
(
//All other items
ModItems.music_disc_song = new ModMusicDiscItem(15, new SoundEvent(location("song")), (new Item.Properties().group(MODGROUP).maxStackSize(1).rarity(Rarity.RARE))).setRegistryName(location("music_disc_song"))
);
}
这是我在ModItems中对光盘的初始化:
//All other items
public static Item music_disc_song;
这是ModMusicDiscItem类:
public class ModMusicDiscItem extends MusicDiscItem {
public ModMusicDiscItem(int id, SoundEvent sound, Item.Properties prop) {
super(id, sound, prop);
}
}
这是我的sounds.json:
{
"song": {
"sounds": [
{
"name": "censoredid:music_discs/song",
"volume": 0.05,
"stream": true
}
]
}
}
同样,播放音乐可以正常工作,但是音量不会随着距离的增加而减小。该代码适用于1.13.2(当然,将MusicDiscItem更改为ItemRecord),但在1.14.3或1.14.4中无效。感谢您的帮助。
答案 0 :(得分:1)
该文件需要以单声道记录,然后再传输到.ogg。 Mono允许游戏单独基于透视图编辑声音,而立体声(您要处理的内容)则仅播放音频文件,即音频文件。
答案 1 :(得分:0)
This answer on Arqade指出声音具有可能会影响它的控制台命令;似乎建议您在sounds.json文件中为“ volume” 输入一个非零的值可能会导致它是全局的。 我现在不能尝试使用它,但是尝试删除volume变量,或将其设置为等于0的值。
如果这不起作用,请尝试使用其他答案中的服务器命令。