提供: Minecraft Modding Wiki
細 (Redice がページ「利用者:Redice/sandbox/Fabric/食料追加」を「Fabric/サウンドの追加」に移動しました: ページが完成したから。) |
|
(相違点なし)
|
2019年9月14日 (土) 22:55時点における版
この記事は"Fabric API 0.3.2 build 230~"を前提MODとしています。 |
再生できるサウンドの追加方法
サウンドの追加
外部サイト
Sounds.jsonの書き方(Minecraft公式Wiki)
ソースコード
- SampleMod.java
package com.example.sound; import net.fabricmc.api.ModInitializer; import net.minecraft.sound.SoundEvent; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; public class SampleMod implements ModInitializer { public static final Identifier SAMPLE_SOUND_ID = new Identifier(MOD_ID":sample_sound") public static SoundEvent SAMPLE_SOUND_EVENT = new SoundEvent(SAMPLE_SOUND_ID); @Override public void onInitialize(){ Registry.register(Registry.SOUND_EVENT, SampleMod.SAMPLE_SOUND_ID, SAMPLE_SOUND_EVENT); } }
サウンドの再生
- SampleBlock.java
//省略 @Override public boolean activate(BlockState blockState, World world, BlockPos blockPos, PlayerEntity placedBy, Hand hand, BlockHitResult blockHitResult) { if (!world.isClient) { world.playSound( null, // Player (purpose unknown, edit if you know) blockPos, // The position of where the sound will come from SampleMod.SAMPLE_SOUND_EVENT, // The sound that will play SoundCategory.BLOCKS, // This determines which of the volume sliders affect this sound 1f, //Volume multiplier, 1 is normal, 0.5 is half volume, etc 1f // Pitch multiplier, 1 is normal, 0.5 is half pitch, etc ); } return false; } //省略
- SampleItem.java
package com.example.sound; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; import net.minecraft.world.World; public class SampleItem extends Item { public SampleItem(Settings item$Settings_SampleItem) { super(item$Settings_SampleItem); } @Override public TypedActionResult<ItemStack> use(World world, PlayerEntity playerEntity, Hand hand) { playerEntity.playSound(SampleMod.SAMPLE_SOUND_EVENT, 1.0F, 1.0F); return new TypedActionResult<>(ActionResult.SUCCESS, playerEntity.getStackInHand(hand)); } }
解説
.playSound(SampleMod.SAMPLE_SOUND_EVENT, 1.0F, 1.0F)
再生することができる。