Bug Nouveau mob



  • hello tout le monde,

    Je vient de finir mon mob et je me suis donc attaquer a son animation, après avoir animer tout les membre de mon mob je me rend compte qu'il se déplace de façon très bizarre voici une petite vidéo pour vous montrer(dsl pour le lag ^^)

    Youtube Video

    voici aussi ma class du model (je pensse que le problème est dans cette class, mais je peut me tromper ^^):

    public class ModelOurs extends ModelBase
    {
        public ModelRenderer legAv1;
        public ModelRenderer legAv2;
        public ModelRenderer legAr1;
        public ModelRenderer legAr2;
        public ModelRenderer body;
        public ModelRenderer head;
        public ModelRenderer oreille1;
        public ModelRenderer oreille2;
        public ModelRenderer bouche1;
        public ModelRenderer bouche2;
        public ModelRenderer queu;
        private float field_78152_i;
      public ModelOurs()
      {
          this.textureWidth = 64;
          this.textureHeight = 48;
    
          this.legAv1 = new ModelRenderer(this, 52, 0);
          this.legAv1.mirror = true;
          this.legAv1.addBox(0F, 0F, 0F, 3, 9, 3);
          this.legAv1.setRotationPoint(-8F, 15F, 6F);
          this.legAv1.setTextureSize(64, 48);
          setRotation(this.legAv1, 0F, 1.570796F, 0F);
    
          this.legAv2 = new ModelRenderer(this, 52, 0);
          this.legAv2.mirror = true;
          this.legAv2.addBox(0F, 0F, 0F, 3, 9, 3);
          this.legAv2.setRotationPoint(-8F, 15F, -3F);
          this.legAv2.setTextureSize(64, 48);
          setRotation(this.legAv2, 0F, 1.570796F, 0F);
    
          this.legAr1 = new ModelRenderer(this, 1, 0);
          this.legAr1.mirror = true;
          this.legAr1.addBox(0F, 0F, 0F, 3, 8, 4);
          this.legAr1.setRotationPoint(1F, 16F, -3F);
          this.legAr1.setTextureSize(64, 48);
          setRotation(this.legAr1, 0F, 1.570796F, 0F);
    
          this.legAr2 = new ModelRenderer(this, 1, 0);
          this.legAr2.mirror = true;
          this.legAr2.addBox(0F, 0F, 0F, 3, 8, 4);
          this.legAr2.setRotationPoint(1F, 16F, 6F);
          this.legAr2.setTextureSize(64, 48);
          setRotation(this.legAr2, 0F, 1.570796F, -5.8E-06F);
          this.body = new ModelRenderer(this, 0, 0);
          this.body.mirror = true;
          this.body.addBox(0F, 0F, 0F, 10, 8, 16);
          this.body.setRotationPoint(-10F, 10F, 5F);
          this.body.setTextureSize(64, 48);
          setRotation(this.body, 0F, 1.570796F, -5.8E-06F);
          this.head = new ModelRenderer(this, 0, 24);
          this.head.mirror = true;
          this.head.addBox(-10F, 0F, 0F, 8, 8, 7);
          this.head.setRotationPoint(-15F, 5F, -6F);
          this.head.setTextureSize(64, 48);
          setRotation(this.head, 0F, 1.570796F, -5.8E-06F);
          this.oreille1 = new ModelRenderer(this, 36, 0);
          this.oreille1.mirror = true;
          this.oreille1.addBox(0F, 0F, 0F, 1, 3, 3);
          this.oreille1.setRotationPoint(-10F, 4F, -5F);
          this.oreille1.setTextureSize(64, 48);
          setRotation(this.oreille1, 0F, -1.570796F, 0F);
    
          this.oreille2 = new ModelRenderer(this, 36, 0);
          this.oreille2.mirror = true;
          this.oreille2.addBox(0F, 0F, 0F, 1, 3, 3);
          this.oreille2.setRotationPoint(-13F, 4F, 5F);
          this.oreille2.setTextureSize(64, 48);
          setRotation(this.oreille2, 0F, 1.570796F, -5.8E-06F);
          this.bouche1 = new ModelRenderer(this, 36, 6);
          this.bouche1.mirror = true;
          this.bouche1.addBox(0F, 0F, 0F, 5, 3, 3);
          this.bouche1.setRotationPoint(-18F, 8F, 2.5F);
          this.bouche1.setTextureSize(64, 48);
          setRotation(this.bouche1, 0F, 1.570796F, 0F);
    
          this.bouche2 = new ModelRenderer(this, 34, 24);
          this.bouche2.mirror = true;
          this.bouche2.addBox(0F, 0F, 0F, 4, 1, 3);
          this.bouche2.setRotationPoint(-17.5F, 11F, 2F);
          this.bouche2.setTextureSize(64, 48);
          setRotation(this.bouche2, 0F, 1.570796F, 0F);
    
          this.queu = new ModelRenderer(this, 48, 20);
          this.queu.mirror = true;
          this.queu.addBox(0F, 0F, 0F, 4, 4, 4);
          this.queu.setRotationPoint(5F, 11F, 2F);
          this.queu.setTextureSize(64, 48);
          setRotation(this.queu, 0F, 1.570796F, 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);
        this.legAv1.render(f5);
        this.legAv2.render(f5);
        this.legAr1.render(f5);
        this.legAr2.render(f5);
        this.body.render(f5);
        this.head.render(f5);
        this.oreille1.render(f5);
        this.oreille2.render(f5);
        this.bouche1.render(f5);
        this.bouche2.render(f5);
        this.queu.render(f5);
      }
    
      public static void setRotation(ModelRenderer model, float x, float y, float z)
      {
        model.rotateAngleX = x;
        model.rotateAngleY = y;
        model.rotateAngleZ = z; 
      }
    
      public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4)
      {
          super.setLivingAnimations(par1EntityLivingBase, par2, par3, par4);
          this.head.rotationPointY = 6.0F + ((EntityOurs)par1EntityLivingBase).func_70894_j(par4) * 9.0F;
          this.field_78152_i = ((EntityOurs)par1EntityLivingBase).func_70890_k(par4);
      }
      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.legAv1.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1;
          this.legAr2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1;
          this.legAv2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1;
          this.legAr1.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1;
    
          this.head.rotateAngleX = this.field_78152_i;
          this.oreille1.rotateAngleX = this.head.rotateAngleX;
          this.oreille2.rotateAngleY = this.head.rotateAngleY;
          this.bouche1.rotateAngleX = this.head.rotateAngleX;
          this.bouche2.rotateAngleY = this.head.rotateAngleY;
    
       }
    }
    

  • Correcteurs

    Il me semble que c'est la classe de l'entité qui définit le comportement des déplacements.
    Si il y avait un problème sur le déplacements des membres du mob, là ce serait bien la classe du modèle à modifier.

    C'est dans la méthode onUpdate() pour les déplacements je crois



  • @'Toutoune1008':

    Il me semble que c'est la classe de l'entité qui définit le comportement des déplacements.
    Si il y avait un problème sur le déplacements des membres du mob, là ce serait bien la classe du modèle à modifier.

    C'est dans la méthode onUpdate() pour les déplacements je crois

    Ok merci pour ta réponse rapide,  je regarde samedis et je revient ici 🙂


  • Administrateurs

    Les cochons aussi se déplacent comme ça, parfois. Le problème vient de l'IA (si tu as utilisé les tasks.addTask).



  • Une video de 6 seconde sur mon PC, pas le temps de bien analyse, je n'ai jamais eu se soucis…

    Mais j'ai comme un doute, dans Techne, l'avant de ton ours est bien sur la bonne vue de face ? (Un mec c'est fait avoir et sont mob avançait par le c*l). Je dit ça car vers la fin on dirais que c'est le cas.



  • @'elias54':

    Les cochons aussi se déplacent comme ça, parfois. Le problème vient de l'IA (si tu as utilisé les tasks.addTask).

    OuiOui exact j'utilise les task.addTask il y a un moyen de régler se bug car c'est quand même bizarre XD
    @'Kujaroth':

    Une video de 6 seconde sur mon PC, pas le temps de bien analyse, je n'ai jamais eu se soucis…

    Mais j'ai comme un doute, dans Techne, l'avant de ton ours est bien sur la bonne vue de face ? (Un mec c'est fait avoir et sont mob avançait par le c*l). Je dit ça car vers la fin on dirais que c'est le cas.

    Tu me met un doute XD car comme j'ai toujours fais des block sur techne je ne m'occupais pas des différente face ^^ ,comme c'est mon premier mob avec techne c'est possible que je me soie tromper, tu fais comment sur techne pour savoir les face ?

    Étant actuellement dans l'incapacité d'utiliser un ordi jusqu'à samedis je ne peut pas vous envoyer des screen ou du code ^^


  • Correcteurs

    En bas à droite sur Techne tu as l'indication de la face que tu regardes.

    F/Front, B/Back, U/Up, D/Down, L/Left, R/Right.



  • @'Toutoune1008':

    En bas à droite sur Techne tu as l'indication de la face que tu regardes.

    F/Front, B/Back, U/Up, D/Down, L/Left, R/Right.

    Merci, c'est exact mon mob n’était pas sur la face de devant il était sur la face de gauche ^^ donc je comprend mieux ce déplacement.

    par contre je me suis rendu compte d'un nouveau petit problème qui est cette fois par rapport a l'animation du model c'est au niveau des oreille:

    voici un screen : http://www.noelshack.com/2016-01-1452354569-2016-01-09-16-46-47.png

    quand le mob tourne la tête les oreille ne reste pas coller a la tête, il vole XD



  • Il faut que tu definisses correctement son point de rotation



  • @'SCAREX':

    Il faut que tu definisses correctement son point de rotation

    Dans techne ?


  • Administrateurs

    @'BurningCraft':

    @'SCAREX':

    Il faut que tu definisses correctement son point de rotation

    Dans techne ?

    private boolean getAnswer()
    {
        return true;
    }
    


  • @'robin4002':

    @'BurningCraft':

    @'SCAREX':

    Il faut que tu definisses correctement son point de rotation

    Dans techne ?

    private boolean getAnswer()
    {
        return true;
    }
    

    Es que c'est possible de m'expliquer le fonctionnement de la fonction car j'ai rien trouver dessus ^^


  • Administrateurs

    Tu me troll ou tu n'as vraiment pas compris x) ?



  • @'robin4002':

    Tu me troll ou tu n'as vraiment pas compris x) ?

    Non j'ai vraiment pas compris XD dsl ^^ (me tue pas :p)


  • Administrateurs

    getAnswer -> obtenir la réponse
    true -> vrai
    Donc la réponse à la question " Dans techne ?" est oui …



  • @'robin4002':

    getAnswer -> obtenir la réponse
    true -> vrai
    Donc la réponse à la question " Dans techne ?" est oui …

    ha okk XD, jme sens bete d'un coup ^^



  • J'ai modifier le point de rotation mais toujour le meme probleme je comprend pas pourtant quand je suis dans techne et que j'incline la tete et que j'incline les oreille avec exactement la meme valeur tout va bien mais dans le jeu sa bug

    voicie un screen du point de rotation dans techne:
    http://www.noelshack.com/2016-01-1452441119-ourstechne.png

    La Classe du model:

    public class ModelOurs extends ModelBase
    {
        public ModelRenderer legAv1;
        public ModelRenderer legAv2;
        public ModelRenderer legAr1;
        public ModelRenderer legAr2;
        public ModelRenderer body;
        public ModelRenderer head;
        public ModelRenderer oreille1;
        public ModelRenderer oreille2;
        public ModelRenderer bouche1;
        public ModelRenderer bouche2;
        public ModelRenderer queu;
    private float field_78152_i;
    
      public ModelOurs()
      {
          this.textureWidth = 64;
          this.textureHeight = 48;
    
          this.legAv1 = new ModelRenderer(this, 52, 0);
          this.legAv1.mirror = true;
          this.legAv1.addBox(0F, 0F, 0F, 3, 9, 3);
          this.legAv1.setRotationPoint(3F, 15F, -7F);
          this.legAv1.setTextureSize(64, 48);
          setRotation(this.legAv1, 0F, 0F, 0F);
    
          this.legAv2 = new ModelRenderer(this, 52, 0);
          this.legAv2.mirror = true;
          this.legAv2.addBox(0F, 0F, 0F, 3, 9, 3);
          this.legAv2.setRotationPoint(-6F, 15F, -7F);
          this.legAv2.setTextureSize(64, 48);
          setRotation(this.legAv2, 0F, 0F, 0F);
    
          this.legAr1 = new ModelRenderer(this, 1, 0);
          this.legAr1.mirror = true;
          this.legAr1.addBox(0F, 0F, 0F, 3, 8, 4);
          this.legAr1.setRotationPoint(-6F, 16F, 2F);
          this.legAr1.setTextureSize(64, 48);
          setRotation(this.legAr1, 0F, 0F, 0F);
    
          this.legAr2 = new ModelRenderer(this, 1, 0);
          this.legAr2.mirror = true;
          this.legAr2.addBox(0F, 0F, 0F, 3, 8, 4);
          this.legAr2.setRotationPoint(3F, 16F, 2F);
          this.legAr2.setTextureSize(64, 48);
          setRotation(this.legAr2, 0F, 0F, -5.8E-06F);
          this.body = new ModelRenderer(this, 0, 0);
          this.body.mirror = true;
          this.body.addBox(0F, 0F, 0F, 10, 8, 16);
          this.body.setRotationPoint(-5F, 10F, -8F);
          this.body.setTextureSize(64, 48);
          setRotation(this.body, 0F, 0F, -5.8E-06F);
          this.head = new ModelRenderer(this, 0, 24);
          this.head.mirror = true;
          this.head.addBox(0F, 0F, 0F, 8, 8, 7);
          this.head.setRotationPoint(-4F, 5F, -13F);
          this.head.setTextureSize(64, 48);
          setRotation(this.head, 0F, 0F, 0F);
    
          this.oreille1 = new ModelRenderer(this, 36, 0);
          this.oreille1.mirror = true;
          this.oreille1.addBox(-1F, -2F, -2F, 1, 3, 3);
          this.oreille1.setRotationPoint(5F, 6F, -9F);
          this.oreille1.setTextureSize(64, 48);
          setRotation(this.oreille1, 0F, 0F, 0F);
    
          this.oreille2 = new ModelRenderer(this, 36, 0);
          this.oreille2.mirror = true;
          this.oreille2.addBox(0F, -2F, -2F, 1, 3, 3);
          this.oreille2.setRotationPoint(-5F, 6F, -9F);
          this.oreille2.setTextureSize(64, 48);
          setRotation(this.oreille2, 0F, 0F, -5.8E-06F);
          this.bouche1 = new ModelRenderer(this, 36, 6);
          this.bouche1.mirror = true;
          this.bouche1.addBox(0F, 0F, 0F, 5, 3, 3);
          this.bouche1.setRotationPoint(-2.5F, 8F, -15.5F);
          this.bouche1.setTextureSize(64, 48);
          setRotation(this.bouche1, 0F, 0F, 0F);
    
          this.bouche2 = new ModelRenderer(this, 34, 24);
          this.bouche2.mirror = true;
          this.bouche2.addBox(0F, 0F, 0F, 4, 1, 3);
          this.bouche2.setRotationPoint(-2F, 11F, -15F);
          this.bouche2.setTextureSize(64, 48);
          setRotation(this.bouche2, 0F, 0F, 0F);
    
          this.queu = new ModelRenderer(this, 48, 20);
          this.queu.mirror = true;
          this.queu.addBox(0F, 0F, 0F, 4, 4, 4);
          this.queu.setRotationPoint(-2F, 11F, 8F);
          this.queu.setTextureSize(64, 48);
          setRotation(this.queu, 0F, 0F, 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);
        this.legAv1.render(f5);
        this.legAv2.render(f5);
        this.legAr1.render(f5);
        this.legAr2.render(f5);
        this.body.render(f5);
        this.head.render(f5);
        this.oreille1.render(f5);
        this.oreille2.render(f5);
        this.bouche1.render(f5);
        this.bouche2.render(f5);
        this.queu.render(f5);
      }
    
      public static void setRotation(ModelRenderer model, float x, float y, float z)
      {
        model.rotateAngleX = x;
        model.rotateAngleY = y;
        model.rotateAngleZ = z;
      }
    
      //anim
      public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4)
      {
          super.setLivingAnimations(par1EntityLivingBase, par2, par3, par4);
          this.head.rotationPointY = 6.0F + ((EntityOurs)par1EntityLivingBase).func_70894_j(par4) * 9.0F;
          this.field_78152_i = ((EntityOurs)par1EntityLivingBase).func_70890_k(par4);
      }
      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.legAv1.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1;
          this.legAr2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1;
          this.legAv2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float)Math.PI) * 1.4F * f1;
          this.legAr1.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1;
    
          this.head.rotateAngleX = this.field_78152_i;
          this.oreille1.rotateAngleX = this.head.rotateAngleX;
          this.oreille2.rotateAngleY = this.head.rotateAngleY;
          this.bouche1.rotateAngleX = this.head.rotateAngleX;
          this.bouche2.rotateAngleY = this.head.rotateAngleY;
      }
    }
    


  • Place la boule bleue au centre de la tête comme pour la tête et l'autre oreille et tu auras un point de rotation correct



  • @'SCAREX':

    Place la boule bleue au centre de la tête comme pour la tête et l'autre oreille et tu auras un point de rotation correct

    Merci Beaucoup sa marche niquel ^^