• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

L'event sound de Forge

Les events
1.6.x
11
61
20.9k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • robin4002
    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002 23 juin 2018, 10:24 21 juil. 2013, 19:46

    Vous savez maintenant créer des items et des blocs, mais ça reste basique. N’avez-vous pas envie d’ajouter vos propre son dans votre mods ?
    Nous allons donc voir dans ce tutoriel comment utiliser l’event sound de forge.
    D’ailleurs, contrairement à modloader & audio mod, l’event sound de forge permet de mettre les sons de votre mod à l’intérieur de l’archive de votre mod, ce qui ne compromet pas la facilité de installation de votre mod.

    Dans la classe principale

    Juste avant vos blocs et items et juste après vos configuration, ajoutez cette condition :

    if(event.getSide().isClient())
    {
    }

    Elle va vérifie si le side est du type client. En effet, le serveur ne peut pas charger de son, il va cracher si vous lui faite charger des sons avec un NoClassDefFound.
    Dans cette condition, ajoutez :

    MinecraftForge.EVENT_BUS.register(new EventSoundTutorial());
    

    MinecraftForge.EVENT_BUS.register permet d’enregistrer un event bus, il y a de nombreux event, nos les verrons dans d’autres tutoriels.
    EventSoundTutoriel est la classe où je vais gérer le son, créez-la. Dans mon cas je vais la créer dans le package client comme les sons ne sont que gérer par le client, vous n’êtes pas obliger de faire pareil, mais ça permet de mieux s’organiser.

    La classe de l’event sound

    package tutoriel.client;
    import net.minecraftforge.client.event.sound.SoundLoadEvent;
    import net.minecraftforge.event.ForgeSubscribe;
    public class EventSoundTutorial
    {
    @ForgeSubscribe
    public void onSound(SoundLoadEvent event)
    {
    try
    {
    event.manager.addSound("modtutoriel:explosion1.ogg");
    event.manager.addSound("modtutoriel:explosion2.ogg");
    event.manager.addSound("modtutoriel:explosion3.ogg");
    }
    catch(Exception e)
    {
    System.out.println("Failed to registry sound");
    }
    }
    }

    L’annotation @ForgeSubscribe est très importante, sans elle votre event ne fonctionnera pas, c’est valable pour tout les autres events. Ensuite on essaye d’enregistrer les sons, si ça marche pas dans la console il y aura Failed to registry sound.
    Pour les sons, il faut mettre modid:nom du son. Dans mon cas, j’enregistre 3 sons qui sont en fait qu’un seul. En effet, le fait de finir un son par un nombre permet de gérer un système de random. Lorsque je vais utiliser le son explosion, soit le son 1, soit le 2, soit le 3 va être joué. Vous pouvez enregistrer beaucoup plus que 3 sons avec cette méthode. En revanche si vous ne voulez pas faire de système de random, vos noms de son ne doivent pas se finir par un nombre.

    Les ressources

    Les fichiers de son doivent être au format .ogg, vous pouvez trouver un convertisseur ici : http://media.io/fr/
    Ils doivent être placer dans le dossier forge/mcp/src/minecraft/assets/modid/sound/nomduson.ogg
    Une fois que vous compilerez votre mod, ils devrons être dans votremod.zip/assets/modid/sound/nomduson.ogg
    Comme d’habitude, pas de majuscule au modid.

    Jouer le son

    Vous pouvez jouer des sons dans n’importe quel méthode qui possède world et player ou x, y, z en paramètre.
    Par exemple dans un item, dans la fonction du clic droit :

    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
    world.playSoundAtEntity(player, "modtutoriel:explosion", 1.0F, 1.0F);
    return stack;
    }

    Il faut mettre votre modid:le nom du son sans les nombres après. Le premier 1.0F est le volume du son, et le deuxième est la fréquence.
    Autre exemple avec un bloc :

    public void randomDisplayTick(World world, int x, int y, int z, Random random)
    {
    world.playSoundEffect((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "modtutoriel:explosion", 1.0F, 1.0F);
    }

    Même principe sauf que la nous avons les coordonnées du bloc. les + 0.5D servent à mettre la source du son au centre du bloc.

    rendu final sur github

    1 réponse Dernière réponse Répondre Citer 0
    • kevin_68
      kevin_68 Moddeurs confirmés dernière édition par 11 oct. 2013, 16:53

      Tutoriel prévu(regarde tutoriels en préparation), ce message serait mieux dans le support en passant.


      Mettez à jours vers la dernière version stable (1.8.9 voir même…

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 11 oct. 2013, 17:05

        Le dossier c’est assets/modid/records
        Et il faut pas utiliser event.manager.addSound mais event.manager.addStreaming

        1 réponse Dernière réponse Répondre Citer 0
        • M
          MrStooby dernière édition par 11 oct. 2013, 17:29

          Oui je sais qu’il serait mieux dans la rubrique aide mais étant donnée qu’il avait rapport avec les sons, j’ai pensé qu’il aurait été utile ici.
          Si un tuto est prévu, dans ce cas, mon post peut être supprimé. Je peux attendre la sorti du tuto 😉

          1 réponse Dernière réponse Répondre Citer 0
          • bin4r1s
            bin4r1s dernière édition par 3 déc. 2013, 19:27

            Bonjour,
            J’ai suivi le tuto et créé un item pour jouer un son (une jukebox), mais quand je fais un clic droit, rien ne se passe.
            Pouvez-vous m’aider ?

            Classe principale :

            if(event.getSide().isClient())
            {
            MinecraftForge.EVENT_BUS.register(new SoundEvent());
            }
            jukeBox1 = (new ItemJukebox1(jukeBox1ID)).setUnlocalizedName("JukeBox1").setTextureName("dragons:jukebox_1");
            GameRegistry.registerItem(jukeBox1, "Jukebox 1", "Dragons");

            ItemJukebox1 :

            package fr.MrBlockTNT.Dragons.item;
            import fr.MrBlockTNT.Dragons.core.Dragons;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraft.world.World;
            public class ItemJukebox1 extends Item
            {
            public ItemJukebox1(int id)
            {
            super(id);
            this.setCreativeTab(Dragons.DragonsTab);
            }
            public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
            {
            world.playSoundAtEntity(player, "dragons:boss/fire_dragon", 1.0F, 1.0F);
            return stack;
            }
            }

            SoundEvent :

            package fr.MrBlockTNT.Dragons.event;
            import net.minecraftforge.client.event.sound.SoundLoadEvent;
            import net.minecraftforge.event.ForgeSubscribe;
            public class SoundEvent
            {
            @ForgeSubscribe
            public void onSound(SoundLoadEvent event)
            {
            try
            {
            event.manager.addMusic("dragons:boss/boss_end.ogg");
            event.manager.addMusic("dragons:boss/fire_dragon.ogg");
            event.manager.addMusic("dragons:boss/fire_dragon_second_half.ogg");
            }
            catch(Exception e)
            {
            System.out.println("Failed to registry sound");
            }
            }
            }

            Mes mods:

            • New Ores
            • More Dragons
            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 3 déc. 2013, 19:39

              Pour les musiques utilise world.playRecord(“nom du son”, x, y, z);
              Pour x y et z utilise (int)player.xPos, etc …
              Et le nom du son est plutôt dragons:boss.fire_dragon pour le jouer, pour l’enregistrer celle le /. Par contre j’ai jamais testé avec les / donc si marche pas essaye sans.

              1 réponse Dernière réponse Répondre Citer 0
              • bin4r1s
                bin4r1s dernière édition par 4 déc. 2013, 11:42

                D’accord, merci :)___
                EDIT : ça marche parfaitement ! Il fallait effectivements changer les “/” en “.” pour l’utilisation de la musique et changer par playRecord :D___
                Par contre, comment faire jouer le son en boucle ?

                Mes mods:

                • New Ores
                • More Dragons
                1 réponse Dernière réponse Répondre Citer 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 4 déc. 2013, 12:27

                  Pour ça il faudrait jouer la son dans la fonction onUpdate et faire un timer.

                  1 réponse Dernière réponse Répondre Citer 0
                  • bin4r1s
                    bin4r1s dernière édition par 4 déc. 2013, 13:48

                    Un petit exemple de timer svp 🙂
                    (je ne me suis jamais servi de timer, et tous les tutos que j’ai trouvés son nuls ou mal expliqués :()

                    Mes mods:

                    • New Ores
                    • More Dragons
                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 4 déc. 2013, 14:26

                      u_U
                      http://www.minecraftforgefrance.fr/search.php?action=results&sid=fb73a8e87d59b012ecb1ba9efc0addf2&sortby=lastpostℴ=desc

                      1 réponse Dernière réponse Répondre Citer 0
                      • bin4r1s
                        bin4r1s dernière édition par 4 déc. 2013, 14:32

                        Merci 🙂

                        Mes mods:

                        • New Ores
                        • More Dragons
                        1 réponse Dernière réponse Répondre Citer 0
                        • isador
                          isador Moddeurs confirmés Modérateurs dernière édition par 21 avr. 2014, 12:56

                          heu moi j’ai suivie exactement le tuto mais j’ai pas de son…

                          mes classe:
                          item: http://pastebin.com/rDyK6Dch
                          main: http://pastebin.com/mzrfMhpU
                          eventsound: http://pastebin.com/jzZKDiQZ

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 21 avr. 2014, 13:11

                            Enlève le 1 dans la fonction pour jouer le son.

                            1 réponse Dernière réponse Répondre Citer 0
                            • Deleted
                              Deleted dernière édition par 18 mai 2014, 15:17

                              Hello tout le monde j’ai essayé d’appliquer l’event sound de forge à mon mod en suivant ce tutoriel mais étant en 1.7 le code ne marche pas voici ma class :

                              package mods.maxiworldcraft.mineKingdomHeartsmod.common;
                              import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                              import net.minecraftforge.client.event.sound.SoundLoadEvent;
                              public class MineKingdomHeartsEventSound
                              {
                              @SubscribeEvent
                              public void onSound(SoundLoadEvent event)
                              {
                              try
                              {
                              event.manager.addStreaming("modtutoriel:explosion1.ogg");
                              }
                              catch(Exception e)
                              {
                              System.out.println("Failed to registry sound");
                              }
                              }
                              }

                              et étrangement ‘manager’ est barré plz de l’aide

                              EDIT = Il faut juste oublier l’event sound et ne s’occuper que du sound.json
                              Désolé du dérangement

                              1 réponse Dernière réponse Répondre Citer 0
                              • Superloup10
                                Superloup10 Modérateurs dernière édition par 18 mai 2014, 15:34

                                En 1.7.x, il n’y a plus besoin d’utiliser d’event sounds

                                Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 18 mai 2014, 16:15

                                  http://www.minecraftforgefrance.fr/showthread.php?tid=788#classe11
                                  En attendant le tutoriel pour les sons 1.7

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Ama
                                    Ama dernière édition par 22 juin 2014, 13:28

                                    Bonjour !

                                    Plus tôt que d’ouvrir un post d’aide j’aurais aimé savoir comment on fait pour que le son se répète en boucle ?

                                    C’est pour un block

                                    Si je t'ai filé un coup de main n'oublie pas le + / -
                                    Par contre évite les demandes d'aides en MP, tu sera sympa'

                                    La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                    Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • isador
                                      isador Moddeurs confirmés Modérateurs dernière édition par 24 juin 2014, 15:50

                                      cela m’interesse aussi

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 24 juin 2014, 16:54

                                        Avec un timer, je vois pas d’autre solution.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Ama
                                          Ama dernière édition par 24 juin 2014, 18:07

                                          Aurais-tu une base de timer pour cette spécificité ?

                                          Si je t'ai filé un coup de main n'oublie pas le + / -
                                          Par contre évite les demandes d'aides en MP, tu sera sympa'

                                          La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                          Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 1 / 4
                                          15 sur 61
                                          • Premier message
                                            15/61
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB