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

    Mob model personnalisé

    Sans suite
    1.7.10
    5
    16
    2250
    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.
    • DCEDO
      DCEDO dernière édition par

      Salut, j’ai suivi le tutoriel pour créer un mob basique, seulement je souhaiterais créer un mob avec un rendu personnalisé créé grâce à Techne, j’ai suivi ce post : https://www.minecraftforgefrance.fr/archive/index.php?thread-366.html mais le mob n’a pas de texture, il est invisible.

      Ci-dessous mes classes avant d’avoir suivi le post :

      La classe du mob

      public class Bouftou extends EntityMob
      {
          public Bouftou(World world)
          {
              super(world);
          }
      
          public void applyEntityAttributes()
          {
              super.applyEntityAttributes();
              this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D);
              this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(4D);
              this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D);
          }
      }
      

      Le model :

      public class ModelBouftou extends ModelBase
      {
        //fields
          ModelRenderer Shape24;
          ModelRenderer Shape25;
          ModelRenderer Shape26;
          ModelRenderer Shape27;
          ModelRenderer Shape28;
          ModelRenderer Shape29;
          ModelRenderer Shape30;
          ModelRenderer Shape31;
          ModelRenderer Shape32;
          ModelRenderer Shape33;
          ModelRenderer Shape23;
          ModelRenderer Shape1;
          ModelRenderer Shape6;
          ModelRenderer Shape7;
          ModelRenderer Shape8;
          ModelRenderer Shape9;
          ModelRenderer Shape18;
          ModelRenderer Shape10;
          ModelRenderer Shape11;
          ModelRenderer Shape17;
          ModelRenderer Shape12;
          ModelRenderer Shape16;
          ModelRenderer Shape13;
          ModelRenderer Shape15;
          ModelRenderer Shape14;
          ModelRenderer Shape3;
          ModelRenderer Shape4;
          ModelRenderer Shape5;
          ModelRenderer Shape2;
          ModelRenderer Shape21;
          ModelRenderer Shape19;
      
        public ModelBouftou()
        {
          textureWidth = 128;
          textureHeight = 128;
      
            Shape24 = new ModelRenderer(this, 0, 0);
            Shape24.addBox(0F, 0F, 0F, 1, 1, 1);
            Shape24.setRotationPoint(0F, 0F, 0F);
            Shape24.setTextureSize(128, 128);
            Shape24.mirror = true;
            setRotation(Shape24, 0F, 0F, 0F);
            Shape25 = new ModelRenderer(this, 110, 0);
            Shape25.addBox(0F, 0F, 0F, 4, 3, 3);
            Shape25.setRotationPoint(11F, 4F, -6F);
            Shape25.setTextureSize(128, 128);
            Shape25.mirror = true;
            setRotation(Shape25, 0.3490659F, 0F, 0F);
            Shape26 = new ModelRenderer(this, 110, 0);
            Shape26.addBox(0F, 0F, 0F, 3, 4, 3);
            Shape26.setRotationPoint(15F, 3.1F, -6.3F);
            Shape26.setTextureSize(128, 128);
            Shape26.mirror = true;
            setRotation(Shape26, 0.3490659F, 0F, 0F);
            Shape27 = new ModelRenderer(this, 110, 0);
            Shape27.addBox(0F, 0F, 0F, 2, 3, 2);
            Shape27.setRotationPoint(15.6F, 1F, -6.7F);
            Shape27.setTextureSize(128, 128);
            Shape27.mirror = true;
            setRotation(Shape27, 0.3490659F, 0F, 0F);
            Shape28 = new ModelRenderer(this, 110, 0);
            Shape28.addBox(0F, 0F, 0F, 4, 3, 3);
            Shape28.setRotationPoint(-15F, 4F, -6F);
            Shape28.setTextureSize(128, 128);
            Shape28.mirror = true;
            setRotation(Shape28, 0.3490659F, 0F, 0F);
            Shape29 = new ModelRenderer(this, 110, 0);
            Shape29.addBox(0F, 0F, 0F, 3, 4, 3);
            Shape29.setRotationPoint(-18F, 3.1F, -6.3F);
            Shape29.setTextureSize(128, 128);
            Shape29.mirror = true;
            setRotation(Shape29, 0.3490659F, 0F, 0F);
            Shape30 = new ModelRenderer(this, 110, 0);
            Shape30.addBox(0F, 0F, 0F, 2, 3, 2);
            Shape30.setRotationPoint(-17.5F, 1F, -6.7F);
            Shape30.setTextureSize(128, 128);
            Shape30.mirror = true;
            setRotation(Shape30, 0.3490659F, 0F, 0F);
            Shape31 = new ModelRenderer(this, 0, 0);
            Shape31.addBox(0F, 0F, 0F, 15, 13, 1);
            Shape31.setRotationPoint(-7F, 4F, 19F);
            Shape31.setTextureSize(128, 128);
            Shape31.mirror = true;
            setRotation(Shape31, 0F, 0F, 0F);
            Shape32 = new ModelRenderer(this, 0, 0);
            Shape32.addBox(0F, 0F, 0F, 4, 4, 4);
            Shape32.setRotationPoint(-0.8F, 6F, 19F);
            Shape32.setTextureSize(128, 128);
            Shape32.mirror = true;
            setRotation(Shape32, 0.2230717F, 0F, 0F);
            Shape33 = new ModelRenderer(this, 0, 0);
            Shape33.addBox(0F, 0F, 0F, 3, 3, 3);
            Shape33.setRotationPoint(-0.5F, 5.5F, 22.8F);
            Shape33.setTextureSize(128, 128);
            Shape33.mirror = true;
            setRotation(Shape33, 0.2230717F, 0.1858931F, 0F);
            Shape23 = new ModelRenderer(this, 70, 80);
            Shape23.addBox(0F, 0F, 0F, 3, 3, 1);
            Shape23.setRotationPoint(-1F, 9F, -12.5F);
            Shape23.setTextureSize(128, 128);
            Shape23.mirror = true;
            setRotation(Shape23, 0F, 0F, 0F);
            Shape1 = new ModelRenderer(this, 0, 0);
            Shape1.addBox(0F, 0F, 0F, 21, 20, 29);
            Shape1.setRotationPoint(-10F, 1F, -10F);
            Shape1.setTextureSize(128, 128);
            Shape1.mirror = true;
            setRotation(Shape1, 0F, 0F, 0F);
            Shape6 = new ModelRenderer(this, 70, 80);
            Shape6.addBox(0F, 0F, 0F, 1, 17, 25);
            Shape6.setRotationPoint(-11F, 3F, -8F);
            Shape6.setTextureSize(128, 128);
            Shape6.mirror = true;
            setRotation(Shape6, 0F, 0F, 0F);
            Shape7 = new ModelRenderer(this, 0, 0);
            Shape7.addBox(0F, 0F, 0F, 2, 15, 17);
            Shape7.setRotationPoint(-12F, 4F, 0F);
            Shape7.setTextureSize(128, 128);
            Shape7.mirror = true;
            setRotation(Shape7, 0F, 0F, 0F);
            Shape8 = new ModelRenderer(this, 70, 80);
            Shape8.addBox(0F, 0F, 0F, 1, 9, 11);
            Shape8.setRotationPoint(-13F, 7F, 2F);
            Shape8.setTextureSize(128, 128);
            Shape8.mirror = true;
            setRotation(Shape8, 0F, 0F, 0F);
            Shape9 = new ModelRenderer(this, 70, 80);
            Shape9.addBox(0F, 0F, 0F, 1, 11, 9);
            Shape9.setRotationPoint(-13F, 6F, 3F);
            Shape9.setTextureSize(128, 128);
            Shape9.mirror = true;
            setRotation(Shape9, 0F, 0F, 0F);
            Shape18 = new ModelRenderer(this, 0, 0);
            Shape18.addBox(0F, 0F, 0F, 8, 8, 1);
            Shape18.setRotationPoint(-3.5F, 6F, -12F);
            Shape18.setTextureSize(128, 128);
            Shape18.mirror = true;
            setRotation(Shape18, 0F, 0F, 0F);
            Shape10 = new ModelRenderer(this, 70, 80);
            Shape10.addBox(0F, 0F, 0F, 1, 17, 25);
            Shape10.setRotationPoint(11F, 3F, -9F);
            Shape10.setTextureSize(128, 128);
            Shape10.mirror = true;
            setRotation(Shape10, 0F, 0F, 0F);
            Shape11 = new ModelRenderer(this, 0, 0);
            Shape11.addBox(0F, 0F, 0F, 2, 15, 17);
            Shape11.setRotationPoint(11F, 4F, 0F);
            Shape11.setTextureSize(128, 128);
            Shape11.mirror = true;
            setRotation(Shape11, 0F, 0F, 0F);
            Shape17 = new ModelRenderer(this, 70, 80);
            Shape17.addBox(0F, 0F, 0F, 17, 12, 2);
            Shape17.setRotationPoint(-8F, 4.5F, -11.5F);
            Shape17.setTextureSize(128, 128);
            Shape17.mirror = true;
            setRotation(Shape17, 0F, 0F, 0F);
            Shape12 = new ModelRenderer(this, 70, 80);
            Shape12.addBox(0F, 0F, 0F, 1, 11, 9);
            Shape12.setRotationPoint(13F, 6F, 3F);
            Shape12.setTextureSize(128, 128);
            Shape12.mirror = true;
            setRotation(Shape12, 0F, 0F, 0F);
            Shape16 = new ModelRenderer(this, 70, 80);
            Shape16.addBox(0F, 0F, 0F, 14, 14, 1);
            Shape16.setRotationPoint(-6.5F, 3.5F, -11F);
            Shape16.setTextureSize(128, 128);
            Shape16.mirror = true;
            setRotation(Shape16, 0F, 0F, 0F);
            Shape13 = new ModelRenderer(this, 70, 80);
            Shape13.addBox(0F, 0F, 0F, 1, 9, 11);
            Shape13.setRotationPoint(13F, 7F, 2F);
            Shape13.setTextureSize(128, 128);
            Shape13.mirror = true;
            setRotation(Shape13, 0F, 0F, 0F);
            Shape15 = new ModelRenderer(this, 39, 80);
            Shape15.addBox(0F, 0F, 0F, 18, 1, 26);
            Shape15.setRotationPoint(-8.5F, 0.5F, -9F);
            Shape15.setTextureSize(128, 128);
            Shape15.mirror = true;
            setRotation(Shape15, 0F, 0F, 0F);
            Shape14 = new ModelRenderer(this, 0, 0);
            Shape14.addBox(0F, 0F, 0F, 17, 1, 24);
            Shape14.setRotationPoint(-8F, 0F, -8F);
            Shape14.setTextureSize(128, 128);
            Shape14.mirror = true;
            setRotation(Shape14, 0F, 0F, 0F);
            Shape3 = new ModelRenderer(this, 110, 0);
            Shape3.addBox(0F, 0F, 0F, 3, 5, 3);
            Shape3.setRotationPoint(-8F, 19F, 13F);
            Shape3.setTextureSize(128, 128);
            Shape3.mirror = true;
            setRotation(Shape3, 0F, 0F, 0F);
            Shape4 = new ModelRenderer(this, 110, 0);
            Shape4.addBox(0F, 0F, 0F, 3, 5, 3);
            Shape4.setRotationPoint(6F, 19F, -7F);
            Shape4.setTextureSize(128, 128);
            Shape4.mirror = true;
            setRotation(Shape4, 0F, 0F, 0F);
            Shape5 = new ModelRenderer(this, 110, 0);
            Shape5.addBox(0F, 0F, 0F, 3, 5, 3);
            Shape5.setRotationPoint(6F, 19F, 13F);
            Shape5.setTextureSize(128, 128);
            Shape5.mirror = true;
            setRotation(Shape5, 0F, 0F, 0F);
            Shape2 = new ModelRenderer(this, 110, 0);
            Shape2.addBox(0F, 0F, 0F, 3, 5, 3);
            Shape2.setRotationPoint(-8F, 19F, -7F);
            Shape2.setTextureSize(128, 128);
            Shape2.mirror = true;
            setRotation(Shape2, 0F, 0F, 0F);
            Shape21 = new ModelRenderer(this, 3, 100);
            Shape21.addBox(0F, 0F, 0F, 4, 4, 1);
            Shape21.setRotationPoint(-8F, 7F, -11.5F);
            Shape21.setTextureSize(128, 128);
            Shape21.mirror = true;
            setRotation(Shape21, 0F, 0.0371786F, 0F);
            Shape19 = new ModelRenderer(this, 21, 100);
            Shape19.addBox(0F, 0F, 0F, 4, 4, 1);
            Shape19.setRotationPoint(4.9F, 7F, -11.7F);
            Shape19.setTextureSize(128, 128);
            Shape19.mirror = true;
            setRotation(Shape19, 0F, -0.0349066F, 0F);
        }
      
        public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
        {
          super.render(entity, f, f1, f2, f3, f4, f5);
          setRotationAngles(f, f1, f2, f3, f4, f5, entity);
          Shape24.render(f5);
          Shape25.render(f5);
          Shape26.render(f5);
          Shape27.render(f5);
          Shape28.render(f5);
          Shape29.render(f5);
          Shape30.render(f5);
          Shape31.render(f5);
          Shape32.render(f5);
          Shape33.render(f5);
          Shape23.render(f5);
          Shape1.render(f5);
          Shape6.render(f5);
          Shape7.render(f5);
          Shape8.render(f5);
          Shape9.render(f5);
          Shape18.render(f5);
          Shape10.render(f5);
          Shape11.render(f5);
          Shape17.render(f5);
          Shape12.render(f5);
          Shape16.render(f5);
          Shape13.render(f5);
          Shape15.render(f5);
          Shape14.render(f5);
          Shape3.render(f5);
          Shape4.render(f5);
          Shape5.render(f5);
          Shape2.render(f5);
          Shape21.render(f5);
          Shape19.render(f5);
        }
      
        private void setRotation(ModelRenderer model, float x, float y, float z)
        {
          model.rotateAngleX = x;
          model.rotateAngleY = y;
          model.rotateAngleZ = z;
        }
      
        public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
        {
          super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
        }
      
      }
      
      

      Le render :

      public class RenderBouftou extends RenderBiped
      {
          public final ResourceLocation texture = new ResourceLocation(DCEDO.MODID, "textures/entity/TextureBouftou.png"); 
      
          public RenderBouftou(ModelBiped model, float shadow)
          {
              super(model, shadow);
          }
      
          protected ResourceLocation getEntityTexture(EntityLiving living)
          {
              return this.getMobBouftouTexture((Bouftou)living);
          }
      
          private ResourceLocation getMobBouftouTexture(Bouftou mobTutoriel)
          {
              return texture;
          }
      }
      

      Mon proxy côté client :

      RenderingRegistry.registerEntityRenderingHandler(Bouftou.class, new RenderBouftou(new ModelBiped(), 0.5F));
      

      Merci 🙂

      1 réponse Dernière réponse Répondre Citer 0
      • Folgansky
        Folgansky Correcteurs dernière édition par

        au lieu de

        RenderingRegistry.registerEntityRenderingHandler(Bouftou.class, new RenderBouftou(new ModelBiped(), 0.5F));
        

        tu devrais avoir

        RenderingRegistry.registerEntityRenderingHandler(Bouftou.class, new RenderBouftou(new ModelBouftou(), 0.5F));
        

        Enfin il me semble hein

        1 réponse Dernière réponse Répondre Citer 0
        • AymericRed
          AymericRed dernière édition par

          RenderingRegistry.registerEntityRenderingHandler(Bouftou.class, new RenderBouftou(new ModelBiped(), 0.5F));
          

          Tu n’utilises pas ton Model custom mais un autre model.

          EDIT : Grugé par toutoune ^^

          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREX
            SCAREX dernière édition par

            Tu n’appliques pas ton model, en revanche pour ce qui est de la texture je crains que tu n’aies pas enregistré correctement ton rendu

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • Folgansky
              Folgansky Correcteurs dernière édition par

              En tout cas moyen d’avoir un screen de ton model? Parce qu’un Bouftou en 33shapes, il doit avoir de la gueule

              GROS PS: On ne voit rien qui va gérer les rotations, je prédis des questions à ce sujet
              De plus j’espère que tu as pensé aux axes de rotations avant d’exporter ton .java

              1 réponse Dernière réponse Répondre Citer 0
              • BrokenSwing
                BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par

                Balise de version ?

                1 réponse Dernière réponse Répondre Citer 0
                • DCEDO
                  DCEDO dernière édition par

                  Quand je remplace ModelBiped par ModelBouftou, j’ai l’erreur : The constructor RenderBouftou(ModelBouftou, float) is undefined

                  Je dois changer ma class RenderBouftou extends RenderBiped certainement mais je ne sait pas en quoi.

                  Pour la texture, quel est le problème ? J’ai suivi le tutoriel à la lettre.

                  Pour les axes de rotations, j’aurais l’occasion de modifier tout ca, c’est le premier mob que j’exporte sur eclipse, la je voudrais juste voir le mob, je l’animerai plus tard.

                  1 réponse Dernière réponse Répondre Citer 0
                  • Folgansky
                    Folgansky Correcteurs dernière édition par

                    J’ai un modèle de quadripède dont le render est ainsi:

                    public class RenderBullDog extends RenderLiving
                    {  
                        public RenderBullDog(ModelBullDog BullDogRender, float par2)
                        {
                            super(new ModelBullDog(), 0.5F);
                        }
                        public final ResourceLocation texture = new ResourceLocation("ModPowerDeco:textures/entity/BullDog.png");
                    
                        private ResourceLocation getBullDogTexture(EntityBullDog bullDog)
                        {
                            return texture;
                        }
                    
                        @Override
                        protected ResourceLocation getEntityTexture(Entity living)
                        {
                            return this.getBullDogTexture((EntityBullDog)living);
                        }
                    }
                    

                    C’est à dire extends RenderLiving (en me basant sur le code du loup)

                    1 réponse Dernière réponse Répondre Citer 0
                    • DCEDO
                      DCEDO dernière édition par

                      @‘Toutoune1008’:

                      J’ai un modèle de quadripède dont le render est ainsi:

                      public class RenderBullDog extends RenderLiving
                      {  
                          public RenderBullDog(ModelBullDog BullDogRender, float par2)
                          {
                              super(new ModelBullDog(), 0.5F);
                          }
                          public final ResourceLocation texture = new ResourceLocation("ModPowerDeco:textures/entity/BullDog.png");
                      
                          private ResourceLocation getBullDogTexture(EntityBullDog bullDog)
                          {
                              return texture;
                          }
                      
                          @Override
                          protected ResourceLocation getEntityTexture(Entity living)
                          {
                              return this.getBullDogTexture((EntityBullDog)living);
                          }
                      }
                      

                      C’est à dire extends RenderLiving (en me basant sur le code du loup)

                      Ca fonctionne, merci beaucoup.

                      J’en profite pour demander, si je veux que mon mob effectue des actions particulières du style tirer une flèche ou autre, y’a-t-il des tutos disponibles ?

                      1 réponse Dernière réponse Répondre Citer 0
                      • Folgansky
                        Folgansky Correcteurs dernière édition par

                        Si tu parles de l’animation je pense pas qu’il y ait de tuto sur ce point précis, mais il y a bien un tuto sur l’animation basique (mouvements des membres).

                        Maintenant si tu parles d’une action à proprement parler, c’est à dire que ton mob tire des flèches, regarde le code du skeleton. Moi-même débutant en modding j’ai pu obtenir des mobs qui tirent des choses (ils ont armes à feu en main et te dégomment).

                        Le principal étant que tu regardes bien et que tu saches le résultat voulu, pour ne pas perdre trop de temps à chercher au hasard.

                        1 réponse Dernière réponse Répondre Citer 0
                        • DCEDO
                          DCEDO dernière édition par

                          @‘Toutoune1008’:

                          Si tu parles de l’animation je pense pas qu’il y ait de tuto sur ce point précis, mais il y a bien un tuto sur l’animation basique (mouvements des membres).

                          Maintenant si tu parles d’une action à proprement parler, c’est à dire que ton mob tire des flèches, regarde le code du skeleton. Moi-même débutant en modding j’ai pu obtenir des mobs qui tirent des choses (ils ont armes à feu en main et te dégomment).

                          Le principal étant que tu regardes bien et que tu saches le résultat voulu, pour ne pas perdre trop de temps à chercher au hasard.

                          Je sais exactement ce que je veux, par ailleurs j’ai lu ce tuto : https://www.minecraftforgefrance.fr/showthread.php?tid=129 pour animer les 4 pattes de mon mob seulement, le mouvement de balancier ne fonctionne pas, les pattes bougent et reste en position “tendu” pendant le mouvement du mob puis reviennent en position initiale quand le mob s’arrête. Je voudrais le même mouvement que les pattes du cochon par exemple.

                          1 réponse Dernière réponse Répondre Citer 0
                          • Folgansky
                            Folgansky Correcteurs dernière édition par

                            Je n’ai rien vu concernant la méthode

                            public void setLivingAnimations(EntityLivingBase living, float f, float f1, float f2){ }
                            

                            Dans la classe de ton modèle. Personnellement en utilisant la classe du loup comme base, j’ai pu obtenir le résultat voulu (mouvement de la queue, position assise etc)

                            Maintenant tu parles d’articulations complexes(plus d’un shape, c’pas ouf mais si tu n’as pas même fais d’animation basique, tu commences déjà un cran au dessus), ce sera à toi de tout doser niveau amplitude des mouvements et il faudra que tu ais bien placé tes axes de rotations sur ton modèle.

                            1 réponse Dernière réponse Répondre Citer 0
                            • DCEDO
                              DCEDO dernière édition par

                              @‘Toutoune1008’:

                              Je n’ai rien vu concernant la méthode

                              public void setLivingAnimations(EntityLivingBase living, float f, float f1, float f2){ }
                              

                              Dans la classe de ton modèle. Personnellement en utilisant la classe du loup comme base, j’ai pu obtenir le résultat voulu (mouvement de la queue, position assise etc)

                              Maintenant tu parles d’articulations complexes(plus d’un shape, c’pas ouf mais si tu n’as pas même fais d’animation basique, tu commences déjà un cran au dessus), ce sera à toi de tout doser niveau amplitude des mouvements et il faudra que tu ais bien placé tes axes de rotations sur ton modèle.

                              L’animation se fait dans la classe du Model :

                              public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
                                {
                                  super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
                                  this.Shape3.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -1F * f1;
                                  this.Shape4.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 1F * f1;
                                  this.Shape5.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 1F * f1;
                                  this.Shape2.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -1F * f1;
                                }
                              

                              Enfin du moins d’après le tutoriel que j’ai suivi. Shape 3 4 5 2 correspondent aux pattes

                              1 réponse Dernière réponse Répondre Citer 0
                              • Folgansky
                                Folgansky Correcteurs dernière édition par

                                C’est ce que je te dis. Regarde plutôt la classe du loup et son modèle.

                                La méthode dont je te parle permet d’animer ton mob comme un loup, c’est à dire dès qu’il se déplace la méthode est appelée, ce qui te simplifie l’apprentissage.

                                Et tu pourras regarder la classe de l’entité pour l’update justement

                                1 réponse Dernière réponse Répondre Citer 0
                                • DCEDO
                                  DCEDO dernière édition par

                                  @‘Toutoune1008’:

                                  C’est ce que je te dis. Regarde plutôt la classe du loup et son modèle.

                                  La méthode dont je te parle permet d’animer ton mob comme un loup, c’est à dire dès qu’il se déplace la méthode est appelée, ce qui te simplifie l’apprentissage.

                                  Et tu pourras regarder la classe de l’entité pour l’update justement

                                  J’ai regardé “EntityWolf.class” seulement, je n’ai pas trouvé la méthode dont tu me parlais. En fait moi je veux seulement animer les pattes pour qu’elles aient le même mouvement que le cochon, j’ai réussi à les faire avoir une rotation seulement je voudrais un mouvement plus naturel car actuellement, quand le mob est en mouvement elles se déplacent puis reviennent en position quand celui-ci s’arrête. Je voudrais le mouvement de balancier de la marche.

                                  Je ne trouve pas l’emplacement des modèles des mobs du minecraft de base, sinon je n’aurais qu’a copier coller la partie qui m’intéresse par exemple celle du cochon en remplaçant par le nom de mes Shape.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Folgansky
                                    Folgansky Correcteurs dernière édition par

                                    package net.minecraft.client.model;
                                    
                                    import cpw.mods.fml.relauncher.Side;
                                    import cpw.mods.fml.relauncher.SideOnly;
                                    
                                    @SideOnly(Side.CLIENT)
                                    public class ModelPig extends ModelQuadruped
                                    {
                                        private static final String __OBFID = "CL_00000849";
                                    
                                        public ModelPig()
                                        {
                                            this(0.0F);
                                        }
                                    
                                        public ModelPig(float p_i1151_1_)
                                        {
                                            super(6, p_i1151_1_);
                                            this.head.setTextureOffset(16, 16).addBox(-2.0F, 0.0F, -9.0F, 4, 3, 1, p_i1151_1_);
                                            this.field_78145_g = 4.0F;
                                        }
                                    }
                                    

                                    On regarde donc ModelQuadruped

                                    package net.minecraft.client.model;
                                    
                                    import cpw.mods.fml.relauncher.Side;
                                    import cpw.mods.fml.relauncher.SideOnly;
                                    import net.minecraft.entity.Entity;
                                    import net.minecraft.util.MathHelper;
                                    import org.lwjgl.opengl.GL11;
                                    
                                    @SideOnly(Side.CLIENT)
                                    public class ModelQuadruped extends ModelBase
                                    {
                                        public ModelRenderer head = new ModelRenderer(this, 0, 0);
                                        public ModelRenderer body;
                                        public ModelRenderer leg1;
                                        public ModelRenderer leg2;
                                        public ModelRenderer leg3;
                                        public ModelRenderer leg4;
                                        protected float field_78145_g = 8.0F;
                                        protected float field_78151_h = 4.0F;
                                        private static final String __OBFID = "CL_00000851";
                                    
                                        public ModelQuadruped(int p_i1154_1_, float p_i1154_2_)
                                        {
                                            this.head.addBox(-4.0F, -4.0F, -8.0F, 8, 8, 8, p_i1154_2_);
                                            this.head.setRotationPoint(0.0F, (float)(18 - p_i1154_1_), -6.0F);
                                            this.body = new ModelRenderer(this, 28, 8);
                                            this.body.addBox(-5.0F, -10.0F, -7.0F, 10, 16, 8, p_i1154_2_);
                                            this.body.setRotationPoint(0.0F, (float)(17 - p_i1154_1_), 2.0F);
                                            this.leg1 = new ModelRenderer(this, 0, 16);
                                            this.leg1.addBox(-2.0F, 0.0F, -2.0F, 4, p_i1154_1_, 4, p_i1154_2_);
                                            this.leg1.setRotationPoint(-3.0F, (float)(24 - p_i1154_1_), 7.0F);
                                            this.leg2 = new ModelRenderer(this, 0, 16);
                                            this.leg2.addBox(-2.0F, 0.0F, -2.0F, 4, p_i1154_1_, 4, p_i1154_2_);
                                            this.leg2.setRotationPoint(3.0F, (float)(24 - p_i1154_1_), 7.0F);
                                            this.leg3 = new ModelRenderer(this, 0, 16);
                                            this.leg3.addBox(-2.0F, 0.0F, -2.0F, 4, p_i1154_1_, 4, p_i1154_2_);
                                            this.leg3.setRotationPoint(-3.0F, (float)(24 - p_i1154_1_), -5.0F);
                                            this.leg4 = new ModelRenderer(this, 0, 16);
                                            this.leg4.addBox(-2.0F, 0.0F, -2.0F, 4, p_i1154_1_, 4, p_i1154_2_);
                                            this.leg4.setRotationPoint(3.0F, (float)(24 - p_i1154_1_), -5.0F);
                                        }
                                    
                                        /**
                                         * Sets the models various rotation angles then renders the model.
                                         */
                                        public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_)
                                        {
                                            this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, p_78088_7_, p_78088_1_);
                                    
                                            if (this.isChild)
                                            {
                                                float f6 = 2.0F;
                                                GL11.glPushMatrix();
                                                GL11.glTranslatef(0.0F, this.field_78145_g * p_78088_7_, this.field_78151_h * p_78088_7_);
                                                this.head.render(p_78088_7_);
                                                GL11.glPopMatrix();
                                                GL11.glPushMatrix();
                                                GL11.glScalef(1.0F / f6, 1.0F / f6, 1.0F / f6);
                                                GL11.glTranslatef(0.0F, 24.0F * p_78088_7_, 0.0F);
                                                this.body.render(p_78088_7_);
                                                this.leg1.render(p_78088_7_);
                                                this.leg2.render(p_78088_7_);
                                                this.leg3.render(p_78088_7_);
                                                this.leg4.render(p_78088_7_);
                                                GL11.glPopMatrix();
                                            }
                                            else
                                            {
                                                this.head.render(p_78088_7_);
                                                this.body.render(p_78088_7_);
                                                this.leg1.render(p_78088_7_);
                                                this.leg2.render(p_78088_7_);
                                                this.leg3.render(p_78088_7_);
                                                this.leg4.render(p_78088_7_);
                                            }
                                        }
                                    
                                        /**
                                         * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
                                         * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
                                         * "far" arms and legs can swing at most.
                                         */
                                        public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
                                        {
                                            float f6 = (180F / (float)Math.PI);
                                            this.head.rotateAngleX = p_78087_5_ / (180F / (float)Math.PI);
                                            this.head.rotateAngleY = p_78087_4_ / (180F / (float)Math.PI);
                                            this.body.rotateAngleX = ((float)Math.PI / 2F);
                                            this.leg1.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_;
                                            this.leg2.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_;
                                            this.leg3.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_;
                                            this.leg4.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_;
                                        }
                                    }
                                    

                                    Dans tous les cas pour ta recherche c’est dans “package net.minecraft.client.model”

                                    Après moi j’aime la classe modèle du loup alors je la mets de nouveau en avant Xd

                                    package net.minecraft.client.model;
                                    
                                    import cpw.mods.fml.relauncher.Side;
                                    import cpw.mods.fml.relauncher.SideOnly;
                                    import net.minecraft.entity.Entity;
                                    import net.minecraft.entity.EntityLivingBase;
                                    import net.minecraft.entity.passive.EntityWolf;
                                    import net.minecraft.util.MathHelper;
                                    import org.lwjgl.opengl.GL11;
                                    
                                    @SideOnly(Side.CLIENT)
                                    public class ModelWolf extends ModelBase
                                    {
                                        /** main box for the wolf head */
                                        public ModelRenderer wolfHeadMain;
                                        /** The wolf's body */
                                        public ModelRenderer wolfBody;
                                        /** Wolf'se first leg */
                                        public ModelRenderer wolfLeg1;
                                        /** Wolf's second leg */
                                        public ModelRenderer wolfLeg2;
                                        /** Wolf's third leg */
                                        public ModelRenderer wolfLeg3;
                                        /** Wolf's fourth leg */
                                        public ModelRenderer wolfLeg4;
                                        /** The wolf's tail */
                                        ModelRenderer wolfTail;
                                        /** The wolf's mane */
                                        ModelRenderer wolfMane;
                                        private static final String __OBFID = "CL_00000868";
                                    
                                        public ModelWolf()
                                        {
                                            float f = 0.0F;
                                            float f1 = 13.5F;
                                            this.wolfHeadMain = new ModelRenderer(this, 0, 0);
                                            this.wolfHeadMain.addBox(-3.0F, -3.0F, -2.0F, 6, 6, 4, f);
                                            this.wolfHeadMain.setRotationPoint(-1.0F, f1, -7.0F);
                                            this.wolfBody = new ModelRenderer(this, 18, 14);
                                            this.wolfBody.addBox(-4.0F, -2.0F, -3.0F, 6, 9, 6, f);
                                            this.wolfBody.setRotationPoint(0.0F, 14.0F, 2.0F);
                                            this.wolfMane = new ModelRenderer(this, 21, 0);
                                            this.wolfMane.addBox(-4.0F, -3.0F, -3.0F, 8, 6, 7, f);
                                            this.wolfMane.setRotationPoint(-1.0F, 14.0F, 2.0F);
                                            this.wolfLeg1 = new ModelRenderer(this, 0, 18);
                                            this.wolfLeg1.addBox(-1.0F, 0.0F, -1.0F, 2, 8, 2, f);
                                            this.wolfLeg1.setRotationPoint(-2.5F, 16.0F, 7.0F);
                                            this.wolfLeg2 = new ModelRenderer(this, 0, 18);
                                            this.wolfLeg2.addBox(-1.0F, 0.0F, -1.0F, 2, 8, 2, f);
                                            this.wolfLeg2.setRotationPoint(0.5F, 16.0F, 7.0F);
                                            this.wolfLeg3 = new ModelRenderer(this, 0, 18);
                                            this.wolfLeg3.addBox(-1.0F, 0.0F, -1.0F, 2, 8, 2, f);
                                            this.wolfLeg3.setRotationPoint(-2.5F, 16.0F, -4.0F);
                                            this.wolfLeg4 = new ModelRenderer(this, 0, 18);
                                            this.wolfLeg4.addBox(-1.0F, 0.0F, -1.0F, 2, 8, 2, f);
                                            this.wolfLeg4.setRotationPoint(0.5F, 16.0F, -4.0F);
                                            this.wolfTail = new ModelRenderer(this, 9, 18);
                                            this.wolfTail.addBox(-1.0F, 0.0F, -1.0F, 2, 8, 2, f);
                                            this.wolfTail.setRotationPoint(-1.0F, 12.0F, 8.0F);
                                            this.wolfHeadMain.setTextureOffset(16, 14).addBox(-3.0F, -5.0F, 0.0F, 2, 2, 1, f);
                                            this.wolfHeadMain.setTextureOffset(16, 14).addBox(1.0F, -5.0F, 0.0F, 2, 2, 1, f);
                                            this.wolfHeadMain.setTextureOffset(0, 10).addBox(-1.5F, 0.0F, -5.0F, 3, 3, 4, f);
                                        }
                                    
                                        /**
                                         * Sets the models various rotation angles then renders the model.
                                         */
                                        public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_)
                                        {
                                            super.render(p_78088_1_, p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, p_78088_7_);
                                            this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, p_78088_7_, p_78088_1_);
                                    
                                            if (this.isChild)
                                            {
                                                float f6 = 2.0F;
                                                GL11.glPushMatrix();
                                                GL11.glTranslatef(0.0F, 5.0F * p_78088_7_, 2.0F * p_78088_7_);
                                                this.wolfHeadMain.renderWithRotation(p_78088_7_);
                                                GL11.glPopMatrix();
                                                GL11.glPushMatrix();
                                                GL11.glScalef(1.0F / f6, 1.0F / f6, 1.0F / f6);
                                                GL11.glTranslatef(0.0F, 24.0F * p_78088_7_, 0.0F);
                                                this.wolfBody.render(p_78088_7_);
                                                this.wolfLeg1.render(p_78088_7_);
                                                this.wolfLeg2.render(p_78088_7_);
                                                this.wolfLeg3.render(p_78088_7_);
                                                this.wolfLeg4.render(p_78088_7_);
                                                this.wolfTail.renderWithRotation(p_78088_7_);
                                                this.wolfMane.render(p_78088_7_);
                                                GL11.glPopMatrix();
                                            }
                                            else
                                            {
                                                this.wolfHeadMain.renderWithRotation(p_78088_7_);
                                                this.wolfBody.render(p_78088_7_);
                                                this.wolfLeg1.render(p_78088_7_);
                                                this.wolfLeg2.render(p_78088_7_);
                                                this.wolfLeg3.render(p_78088_7_);
                                                this.wolfLeg4.render(p_78088_7_);
                                                this.wolfTail.renderWithRotation(p_78088_7_);
                                                this.wolfMane.render(p_78088_7_);
                                            }
                                        }
                                    
                                        /**
                                         * Used for easily adding entity-dependent animations. The second and third float params here are the same second
                                         * and third as in the setRotationAngles method.
                                         */
                                        public void setLivingAnimations(EntityLivingBase p_78086_1_, float p_78086_2_, float p_78086_3_, float p_78086_4_)
                                        {
                                            EntityWolf entitywolf = (EntityWolf)p_78086_1_;
                                    
                                            if (entitywolf.isAngry())
                                            {
                                                this.wolfTail.rotateAngleY = 0.0F;
                                            }
                                            else
                                            {
                                                this.wolfTail.rotateAngleY = MathHelper.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
                                            }
                                    
                                            if (entitywolf.isSitting())
                                            {
                                                this.wolfMane.setRotationPoint(-1.0F, 16.0F, -3.0F);
                                                this.wolfMane.rotateAngleX = ((float)Math.PI * 2F / 5F);
                                                this.wolfMane.rotateAngleY = 0.0F;
                                                this.wolfBody.setRotationPoint(0.0F, 18.0F, 0.0F);
                                                this.wolfBody.rotateAngleX = ((float)Math.PI / 4F);
                                                this.wolfTail.setRotationPoint(-1.0F, 21.0F, 6.0F);
                                                this.wolfLeg1.setRotationPoint(-2.5F, 22.0F, 2.0F);
                                                this.wolfLeg1.rotateAngleX = ((float)Math.PI * 3F / 2F);
                                                this.wolfLeg2.setRotationPoint(0.5F, 22.0F, 2.0F);
                                                this.wolfLeg2.rotateAngleX = ((float)Math.PI * 3F / 2F);
                                                this.wolfLeg3.rotateAngleX = 5.811947F;
                                                this.wolfLeg3.setRotationPoint(-2.49F, 17.0F, -4.0F);
                                                this.wolfLeg4.rotateAngleX = 5.811947F;
                                                this.wolfLeg4.setRotationPoint(0.51F, 17.0F, -4.0F);
                                            }
                                            else
                                            {
                                                this.wolfBody.setRotationPoint(0.0F, 14.0F, 2.0F);
                                                this.wolfBody.rotateAngleX = ((float)Math.PI / 2F);
                                                this.wolfMane.setRotationPoint(-1.0F, 14.0F, -3.0F);
                                                this.wolfMane.rotateAngleX = this.wolfBody.rotateAngleX;
                                                this.wolfTail.setRotationPoint(-1.0F, 12.0F, 8.0F);
                                                this.wolfLeg1.setRotationPoint(-2.5F, 16.0F, 7.0F);
                                                this.wolfLeg2.setRotationPoint(0.5F, 16.0F, 7.0F);
                                                this.wolfLeg3.setRotationPoint(-2.5F, 16.0F, -4.0F);
                                                this.wolfLeg4.setRotationPoint(0.5F, 16.0F, -4.0F);
                                                this.wolfLeg1.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
                                                this.wolfLeg2.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F + (float)Math.PI) * 1.4F * p_78086_3_;
                                                this.wolfLeg3.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F + (float)Math.PI) * 1.4F * p_78086_3_;
                                                this.wolfLeg4.rotateAngleX = MathHelper.cos(p_78086_2_ * 0.6662F) * 1.4F * p_78086_3_;
                                            }
                                    
                                            this.wolfHeadMain.rotateAngleZ = entitywolf.getInterestedAngle(p_78086_4_) + entitywolf.getShakeAngle(p_78086_4_, 0.0F);
                                            this.wolfMane.rotateAngleZ = entitywolf.getShakeAngle(p_78086_4_, -0.08F);
                                            this.wolfBody.rotateAngleZ = entitywolf.getShakeAngle(p_78086_4_, -0.16F);
                                            this.wolfTail.rotateAngleZ = entitywolf.getShakeAngle(p_78086_4_, -0.2F);
                                        }
                                    
                                        /**
                                         * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
                                         * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
                                         * "far" arms and legs can swing at most.
                                         */
                                        public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_)
                                        {
                                            super.setRotationAngles(p_78087_1_, p_78087_2_, p_78087_3_, p_78087_4_, p_78087_5_, p_78087_6_, p_78087_7_);
                                            this.wolfHeadMain.rotateAngleX = p_78087_5_ / (180F / (float)Math.PI);
                                            this.wolfHeadMain.rotateAngleY = p_78087_4_ / (180F / (float)Math.PI);
                                            this.wolfTail.rotateAngleX = p_78087_3_;
                                        }
                                    }
                                    
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • 1 / 1
                                    • Premier message
                                      Dernier message
                                    Design by Woryk
                                    Contact / Mentions Légales

                                    MINECRAFT FORGE FRANCE © 2018

                                    Powered by NodeBB