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

    Créer un modèle avec techne et l'appliquer à un mob

    Les entités
    1.6.x
    6
    36
    15875
    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

      Dans le tutoriel sur le mob basique, il n’est pas expliqué comment utiliser un modèle custom. Plutôt que de faire un tutoriel sur techne et un mini tutoriel pour appliquer le modèle, j’ai décidé de regrouper les deux ici. Nous allons donc voir comment utiliser techne et comment appliquer un modèle à un mob.

      Pré-requis

      • Un mob basique

      Téléchargement et installation de techne

      Tout d’abord, sachez que techne n’est que disponible sous Windows, il peut peut être téléchargé sur le site officiel :
      http://techne.zeux.me/Techne
      Ensuite il suffit juste de lancer l’installateur.

      Création du modèle

      Lancez techne, une fenêtre “New Model” devrait s’ouvrir. Dans “Model Name”, mettez le nom du modèle. Ensuite choisissez sur quel modèle est basé votre modèle (par défaut sur modèle base, vous pouvez par exemple utiliser comme base le creeper ou le joueur). Ensuite choisissez la taille de la texture. Cette taille n’a pas de rapport avec la résolution, une taille plus grande permet de mettre plus de morceaux, il faut donc utiliser une grande taille pour les modèles complexe. En cas de mauvais réglage, vous pouvez modifier en allant dans le menu Edit ou File -> Edit Project.

      Rapidement, présentation de la barre d’outils de gauche :

      Le nom de la forme que vous avez sélectionnés (par défaut elles sont appelées shape1, shape2 etc …). Dans cette exemple il n’y a rien car j’ai rien sélectionné.
      Les dimensions de la forme sélectionnée. (x, y, z)
      Les coordonnées x, y et z de la forme.
      En jaune, l’offset de la forme, c’est le point de rotation de la forme, votre forme va donc tournez par rapport à ce point.
      L’offset de la texture, c’est les coordonnées de la texture de la forme sélectionnée sur la texture du modèle. C’est pas très clair, mais une fois que vous aurez créer votre première forme, changer la valeur et regarder la case texture (sur la barre de droite) vous allez comprendre tout seul.
      La rotation du morceau sur les axes x, y et z.
      Et le plus important de tous, le bouton pour créer un nouveau morceau.

      En bas à droite, il y a la liste de tout vos morceaux. La planche en bois correspond au sol.

      Les contrôles :

      • clic de la molette + bouger la souris pour se déplacer.
      • clic droit + bouger la souris pour tourner.
      • la molette pour zoomer/dé-zoomer.

      Maintenant place à la pratique, créez votre modèle.

      Exporter/Importer la texture

      Vous avez pu constaté que sur la case de texture en haut à droite des couleurs apparaissent quand vous ajoutés des morceaux, et qu’elles se déplace si vous changés le texture offset de la forme. Comme je l’ai expliqué plus haut, c’est l’emplacement de la texture, faite en sorte que les textures ne se superposent pas sauf si les deux morceaux doivent avoir la même texture.
      Ensuite allez dans le menu “File”, faite “Export as” et choisissez Texturemap. Vous allez obtenir un .png, utilisez-le pour faire la texture de votre modèle. Une fois terminé, vous pouvez avoir le rendu de la texture directement sur techne, pour ça, cliquez sur le bouton “load texture” sur la barre de gauche, et cherchez votre .png.

      Exportez le modèle en java et l’appliquer au mob

      /!\ Ne suivez pas cette parti si vous souhaitez faire un rendu de bloc TESR ou un rendu d’item /!

      Comme pour la texture, allez dans “File” puis “Export as” et sélectionnez java.
      Placez le .java obtenu dans le package client de votre mod (logique, les modèles et les rendus ne sont que fait par le client)
      Il y aura quelques erreurs dans le fichier, pour les corriger :

      • Changez la déclaration de package.
      • Organisez les importations (ctrl + shift + o) (sélectionnez net.minecraft.quelque chose quand vous avez plusieurs choix)
      • Dans la méthode setRotationAngles, ajoutez un argument Entity, et dans le super. ajoutez cette argument :
      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);
      }
      
      • Dans la méthode render, ajoutez entity en argument à la fonction setRotationAngles :
      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);
          Shape1.render(f5);
          […]
      }
      

      Votre modèle est prêt, il ne reste plu qu’à l’appliquez. Allez dans votre client proxy, dans la méthode RenderingRegistry.registerEntityRenderingHandler changer simplement :
      new ModelBiped()
      par
      new NomDeVotreModel()

      Pour aller plus loin, apprenez à animer votre modèle.

      Questions / Réponses

      Rien pour l’instant.

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

        Bonjour, bonjour ! Bon, je pose ma question ici mais moi je tourne sur de la 1.7…
        Quand j’importe mon modèle en java dans la classe, tout tourne très bien, j’ai aucune erreur sur le modèle.
        Par contre j’ai un soucis dans le reste du code, dans mon registery, j’ai une erreur dans la fonction RenderingRegistry.registerEntityRenderingHandler, la paramètre ne sont pas bon…
        Ça doit venir quelque part de ma classe de render.
        Voici mes classes :
        La classe de mon mob : http://pastebin.com/fuMKzthy
        Celle du render : http://pastebin.com/NwuX5JU8
        Mon client proxy : http://pastebin.com/DptMJWTp
        Et ma classe principale, la partie concernée : http://pastebin.com/JVFpMnMw

        J’ai l’erreur dans le client proxy : “The method registerEntityRenderingHandler(Class, Render) in the type RenderingRegistry is not applicable for the arguments (Class<mobtest>, RenderMobTest)”

        Et quand j’arrive à bidouiller de façon très moche les constructeurs (qui ne doivent alors plus du tout être opérationnels), j’optiens des erreurs sur les lignes suivantes dans le modèle exporté de Techne :

        leg1.mirror = true;
        

        et

        leg3.mirror = true;
        

        Y’a-t-il un problème avec les mirror ?

        Sachant qu’en plus (parce que sinon ce n’est pas drôle), la texture ne prend pas le le fichier que je lui passe ne paramètre, mais un autre d’un mob basique que j’ai fait auparavant et qui lui marche très bien… J’ai pourtant essayé de tout reprendre depuis le début, mais même résultat 😕

        Une idée ?</mobtest>

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

          public class RenderMobTest extends EntityMob
          

          C’est faux. Revois le tutoriel sur les mobs : http://www.minecraftforgefrance.fr/showthread.php?tid=648
          Il est expliqué que le rendu doit être extends RenderBiped

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

            Oui j’avais vu après l’avoir posté.
            Mais le problème si j’étends de RenderBiped, c’est que j’ai un problème au niveau du constructeur où Eclipse me dit
            “The constructor RenderBiped(ModelMobTest, float) is undefined”
            Le constructeur ressemble alors à ça:

            public RenderMobTest(ModelMobTest modelMobTest, float var){
            super(modelMobTest, var);
            }
            

            Du coup j’ai essayé de l’étendre de Render tout court, j’ai alors:

            public RenderMobTest(ModelMobTest modelMobTest){}
            

            Mais pas beaucoup plus concluent…

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

              Ton constructeur devrait être comme ça :

              public RenderMobTutoriel(ModelBiped model, float shadow)
              {
              super(model, shadow);
              }
              
              1 réponse Dernière réponse Répondre Citer 0
              • Kazeyome
                Kazeyome dernière édition par

                Oui mais à partir du moment où tu changes le constructeur de cette façon, au niveau du proxy, la ligne

                RenderingRegistry.registerEntityRenderingHandler(MobTest.class, new RenderMobTest(new ModelMobTest(), 0.8F);
                

                devient incorrecte… Puisqu’il m’indique:

                The constructor RenderMobTest(ModelTest, float) is undefined
                
                1 réponse Dernière réponse Répondre Citer 0
                • jglrxavpok
                  jglrxavpok Modérateurs dernière édition par

                  Ton ModelTest est bien une classe avec “extends ModelBiped” ?
                  Sinon, au choix:

                  1. Fais extends ton ModelTest de ModelBiped si tu veux un mob humanoïde. (je ne le recommanderai pas pour avoir 100% de contrôle)

                  2. Change ton constructeur pour accepter ModelBase ou ModelMobTest et non plus ModelBiped (surement le plus logique à faire)

                  Modérateur sur MFF. 
                  Mon Github: http://github.com/jglrxavpok
                  Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                    Dans ce cas il faut extends RenderLiving. (exemple : RenderSpider).

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

                      @jglrxavpok : Non, je cherche à faire des choses différentes des ModelBiped, justement.
                      Robin ! Ah oui, ça marche ! Avec des dizaines d’essais, j’ai repris tout à zéro et c’est bon, le modèle marche bien ! Bon il donne un résultat différent de celui sur Techne, mais ça, ça se règle…. Génial, merci à vous !

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

                        Salut !

                        Je n’arrive pas a appliqué le model pour je pence avoir touts réussi mais il faut croire que non 🙂

                        Voici la class de mon clientproxy:

                        @Override
                        
                        public void registerRender()
                        {
                        
                        RenderingRegistry.registerEntityRenderingHandler(EntityAniZob.class, new RenderAnizob(new test(), 0.5f));
                        }
                        

                        Et voici la classe du rendu de mon mob :

                        package modCrafttech.proxy;
                        
                        import modCrafttech.common.EntityAniZob;
                        import net.minecraft.client.model.ModelBiped;
                        import net.minecraft.client.renderer.entity.Render;
                        import net.minecraft.client.renderer.entity.RenderBiped;
                        import net.minecraft.entity.Entity;
                        import net.minecraft.util.ResourceLocation;
                        
                        public class RenderAnizob extends RenderBiped {
                        protected static final ResourceLocation texture = new ResourceLocation("ModID:texture.png");
                        
                        public RenderAnizob(ModelBiped biped, float tailleOmbre)
                        {
                        super(biped, tailleOmbre);
                        }
                        
                        protected ResourceLocation getAniZobTextures(EntityAniZob anizob)
                        {
                        return texture;
                        }
                        
                        protected ResourceLocation getEntityTexture(Entity par1Entity)
                        {
                        return this.getAniZobTextures((EntityAniZob)par1Entity);
                        }
                        
                        }
                        

                        J’ai une erreur a cette ligne la :

                        RenderingRegistry.registerEntityRenderingHandler(EntityAniZob.class, new RenderAnizob(new test(), 0.5f));
                        

                        Cordialement Sidney

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

                          Si ton modèle n’est pas un modèle biped regarde juste au dessus, la solution a été donné.

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

                            Haaaaa oui
                            Je n’avais pas lu quand j’ai vu que c’etait pour la 1.7 🙂

                            Mais par contre comment je fais pour changer le hit box ?

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

                              setSize(x et z, y); dans le constructeur de l’entité.

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

                                Merci !!! 🙂

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

                                  Salut à tous et à toutes
                                  J’ai aujourd’hui rencontré un problème mon mob est invisible cela m’embête car j’ai suivi le tuto voici mes class et je confirme que j’ai fait mon modèle avec Techne et que j’y ai placé la texture 64x32 dans le dossier “textures/entity/reflet.png”
                                  Voici mes class :

                                  
                                  // Date: 28/05/2014 16:58:25
                                  // Template version 1.1
                                  // Java generated by Techne
                                  // Keep in mind that you still need to fill in some blanks
                                  // - ZeuX
                                  
                                  package mods.maxiworldcraft.mineKingdomHeartsmod.client;
                                  
                                  import net.minecraft.client.model.ModelBase;
                                  import net.minecraft.client.model.ModelRenderer;
                                  
                                  import com.sun.xml.internal.stream.Entity;
                                  
                                  public class ModelReflet extends ModelBase
                                  {
                                  private static final String __OBFID = "CL_00000836";
                                  
                                  //fields
                                  ModelRenderer tete;
                                  ModelRenderer corps;
                                  ModelRenderer brasGauche;
                                  ModelRenderer brasDroit;
                                  ModelRenderer piedGauche;
                                  ModelRenderer piedDroit;
                                  
                                  public ModelReflet()
                                  {
                                  textureWidth = 64;
                                  textureHeight = 32;
                                  
                                  tete = new ModelRenderer(this, 0, 0);
                                  tete.addBox(0F, 0F, 0F, 6, 5, 6);
                                  tete.setRotationPoint(-4F, -4F, 2F);
                                  tete.setTextureSize(64, 32);
                                  tete.mirror = true;
                                  setRotation(tete, 0.8901179F, 0F, 0F);
                                  corps = new ModelRenderer(this, 26, 0);
                                  corps.addBox(-6F, -2F, 4F, 9, 9, 3);
                                  corps.setRotationPoint(0F, 0F, 0F);
                                  corps.setTextureSize(64, 32);
                                  corps.mirror = true;
                                  setRotation(corps, 0F, 0F, 0F);
                                  brasGauche = new ModelRenderer(this, 58, 12);
                                  brasGauche.addBox(0F, 0F, 0F, 1, 18, 2);
                                  brasGauche.setRotationPoint(3F, -1F, 5F);
                                  brasGauche.setTextureSize(64, 32);
                                  brasGauche.mirror = true;
                                  setRotation(brasGauche, 0F, 0F, 0F);
                                  brasDroit = new ModelRenderer(this, 50, 12);
                                  brasDroit.addBox(0F, 0F, 0F, 1, 18, 2);
                                  brasDroit.setRotationPoint(-7F, 0F, 5F);
                                  brasDroit.setTextureSize(64, 32);
                                  brasDroit.mirror = true;
                                  setRotation(brasDroit, 0F, 0F, 0F);
                                  piedGauche = new ModelRenderer(this, 7, 12);
                                  piedGauche.addBox(0F, 0F, 0F, 2, 17, 2);
                                  piedGauche.setRotationPoint(0F, 7F, 5F);
                                  piedGauche.setTextureSize(64, 32);
                                  piedGauche.mirror = true;
                                  setRotation(piedGauche, 0F, 0F, 0F);
                                  piedDroit = new ModelRenderer(this, 18, 12);
                                  piedDroit.addBox(0F, 0F, 0F, 2, 17, 2);
                                  piedDroit.setRotationPoint(-5F, 7F, 5F);
                                  piedDroit.setTextureSize(64, 32);
                                  piedDroit.mirror = true;
                                  setRotation(piedDroit, 0F, 0F, 0F);
                                  }
                                  
                                  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
                                  {
                                  
                                  this.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
                                  tete.render(f5);
                                  corps.render(f5);
                                  brasGauche.render(f5);
                                  brasDroit.render(f5);
                                  piedGauche.render(f5);
                                  piedDroit.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)
                                  {
                                  
                                  }
                                  
                                  }
                                  
                                  
                                  
                                  package mods.maxiworldcraft.mineKingdomHeartsmod.client;
                                  
                                  import cpw.mods.fml.relauncher.Side;
                                  import cpw.mods.fml.relauncher.SideOnly;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityReflet;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.modMineKingdomHearts;
                                  import net.minecraft.client.model.ModelBase;
                                  import net.minecraft.client.renderer.entity.RenderLiving;
                                  import net.minecraft.entity.Entity;
                                  import net.minecraft.util.ResourceLocation;
                                  
                                  @SideOnly(Side.CLIENT)
                                  public class RenderReflet extends RenderLiving
                                  {
                                  private static final ResourceLocation texture = new ResourceLocation(modMineKingdomHearts.MODID, "textures/entity/reflet.png");
                                  private static final String __OBFID = "CL_00000984";
                                  
                                  public RenderReflet(ModelBase par1ModelBase, float par2)
                                  {
                                  super(par1ModelBase, par2);
                                  }
                                  
                                  /**
                                  * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
                                  */
                                  protected ResourceLocation getEntityTexture(EntityReflet entityreflet)
                                  {
                                  return texture;
                                  }
                                  
                                  /**
                                  * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
                                  */
                                  protected ResourceLocation getEntityTexture(Entity par1Entity)
                                  {
                                  return this.getEntityTexture((EntityReflet)par1Entity);
                                  }
                                  }
                                  
                                  
                                  
                                  package mods.maxiworldcraft.mineKingdomHeartsmod.client;
                                  
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityEffrayeur;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityFuu;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityHayner;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityOlette;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityPence;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityReflet;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityRei;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntitySeifer;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntitySetzer;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityVivi;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityDingo;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityDonald;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityDuoSismique;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityHades;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityHayner;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityOlette;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityPence;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityRoxas;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntitySetzer;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntitySora;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.common.modMineKingdomHearts;
                                  import mods.maxiworldcraft.mineKingdomHeartsmod.proxy.modMineKingdomHeartsCommonProxy;
                                  import net.minecraft.client.model.ModelBiped;
                                  import cpw.mods.fml.client.registry.ClientRegistry;
                                  import cpw.mods.fml.client.registry.RenderingRegistry;
                                  
                                  public class modMineKingdomHeartsClientProxy extends modMineKingdomHeartsCommonProxy
                                  {
                                  public static int renderInventoryTESRId;;
                                  
                                  @Override
                                  
                                  public void registerRenderer()
                                  {
                                  System.out.println("Salut je suis un test du client");
                                  
                                  RenderingRegistry.registerEntityRenderingHandler(EntityReflet.class, new RenderReflet(new ModelReflet(), 0.2F));
                                  
                                  }
                                  public void registerTileEntityRender()
                                  {
                                  
                                  }
                                  
                                  
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                    private static final String __OBFID = “CL_00000836”;
                                    private static final String __OBFID = “CL_00000984”;
                                    Retire. Inutile est cause des problèmes d’obfuscation. (classe du modèle et du rendu)

                                    import com.sun.xml.internal.stream.Entity;
                                    Mauvaise importation (classe du modèle)

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

                                      @‘robin4002’:

                                      private static final String __OBFID = “CL_00000836”;
                                      private static final String __OBFID = “CL_00000984”;
                                      Retire. Inutile est cause des problèmes d’obfuscation. (classe du modèle et du rendu)

                                      import com.sun.xml.internal.stream.Entity;
                                      Mauvaise importation (classe du modèle)

                                      Merci beaucoup Robin encore une fois, lol ^^

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

                                        salut j’ai suivi se tuto et j’ai une erreur avec registerEntityRenderingHandler donc je suis obliger de faire une modifiction pour ne plus avoir d’erreur mais du coup mon entity n’aparait pas dans le jeu, j’ai bien l’oeuf pour le faire spawn avec son nom , mais il est invisible

                                        Caused by: java.lang.NullPointerException
                                        [12:40:49] [Client thread/INFO] [STDOUT]: [net.minecraft.crash.CrashReport:makeCategoryDepth:356]: Negative index in crash report handler (0/25)
                                        [12:40:49] [Client thread/ERROR]: Couldn’t render entity
                                        net.minecraft.util.ReportedException: Registering texture
                                        at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:111) ~[TextureManager.class:?]
                                        at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:45) ~[TextureManager.class:?]
                                        at net.minecraft.client.renderer.entity.Render.bindTexture(Render.java:60) ~[Render.class:?]
                                        at net.minecraft.client.renderer.entity.Render.bindEntityTexture(Render.java:55) ~[Render.class:?]
                                        at net.minecraft.client.renderer.entity.RendererLivingEntity.renderModel(RendererLivingEntity.java:305) ~[RendererLivingEntity.class:?]
                                        at net.minecraft.client.renderer.entity.RendererLivingEntity.doRender(RendererLivingEntity.java:165) [RendererLivingEntity.class:?]
                                        at net.minecraft.client.renderer.entity.RenderLiving.doRender(RenderLiving.java:36) [RenderLiving.class:?]
                                        at net.minecraft.client.renderer.entity.RenderLiving.doRender(RenderLiving.java:156) [RenderLiving.class:?]
                                        at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300) [RenderManager.class:?]
                                        at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:278) [RenderManager.class:?]
                                        at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:251) [RenderManager.class:?]
                                        at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:527) [RenderGlobal.class:?]
                                        at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300) [EntityRenderer.class:?]
                                        at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1091) [EntityRenderer.class:?]
                                        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1056) [Minecraft.class:?]
                                        at net.minecraft.client.Minecraft.run(Minecraft.java:951) [Minecraft.class:?]
                                        at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_25]
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25]
                                        at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
                                        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
                                        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
                                        at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:78) [start/:?]
                                        at GradleStart.main(GradleStart.java:45) [start/:?]

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

                                          Tu as fait quoi comme modification sur registerEntityRenderingHandler ? Envoie ton code, sans ton code on ne peut pas t’aider.

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

                                            En faite je t’explique c’est pas un mob que j’essai de créer mais un genre de kart (comme un minecart ou un bateau que l’on peu utiliser sur partout) je suis donc parti en suivant le tuto "créer un mob basic " ensuite j’ai fait un model de test avec techne pour l’adapter dessus mais j’ai eu une erreur sur registerentity….

                                            voici le code :
                                            clientproxy:

                                            package minecraftkart.proxy;
                                            
                                            import minecraftkart.client.Kart;
                                            import minecraftkart.client.RenderKart;
                                            import minecraftkart.common.EntityKart;
                                            import cpw.mods.fml.client.registry.RenderingRegistry;
                                            
                                            public class ClientProxy extends CommonProxy
                                            {
                                            public void registerRender()
                                            {
                                            RenderingRegistry.registerEntityRenderingHandler(EntityKart.class, new RenderKart(new Kart(), 0));
                                            }
                                            
                                            }
                                            

                                            entity :

                                            package minecraftkart.common;
                                            
                                            import net.minecraft.entity.EntityLiving;
                                            import net.minecraft.world.World;
                                            
                                            public  class EntityKart extends EntityLiving
                                            {
                                            
                                            public EntityKart(World world) {
                                            super(world);
                                            // TODO Auto-generated constructor stub
                                            }
                                            
                                            }
                                            
                                            

                                            render :

                                            package minecraftkart.client;
                                            
                                            import minecraftkart.common.EntityKart;
                                            import net.minecraft.client.model.ModelBase;
                                            import net.minecraft.client.renderer.entity.RenderLiving;
                                            import net.minecraft.client.renderer.entity.RendererLivingEntity;
                                            import net.minecraft.entity.Entity;
                                            import net.minecraft.entity.EntityLiving;
                                            import net.minecraft.util.ResourceLocation;
                                            
                                            public class RenderKart extends RenderLiving {
                                            
                                            public RenderKart(ModelBase world, float shadow) {
                                            super(world, shadow);
                                            // TODO Auto-generated constructor stub
                                            }
                                            public final ResourceLocation texture = new ResourceLocation("ModKart", "textures/entity/Kart.png");
                                            
                                            private ResourceLocation getKartTexture(EntityKart Kart)
                                            {
                                            return texture;
                                            }
                                            @Override
                                            protected ResourceLocation getEntityTexture(Entity Kart) {
                                            // TODO Auto-generated method stub
                                            return null;
                                            }
                                            
                                            }
                                            
                                            

                                            voila tu va surment trouver plein de chose qui ne vont pas mais soit indulgent :d je n’ai jamais fait de java et j’essai d’apprendre grâce a tes tutos , merci en tout cas 😉

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB