Résolu Probleme de rendu d'un mob
-
Salut, J’ai deux problème avec mon mob :
il est en deux fois je veux dire par la qu’il y a le model donc le mob en plus grand et a l’intérieur il y a le petit mob
et il ne bouge qu’une jambe il ne la fait pas bouger en arrière =/http://image.noelshack.com/fichiers/2015/37/1442137332-2015-09-13-11-41-36.png
package fr.paladium.Modevent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.entity.Entity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.boss.BossStatus; import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.entity.monster.EntityMob; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class mobano extends EntityMob{ public mobano (World world) { super(world); } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(5000D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(4D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(9999999D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(30D); } public Item getDropItem() { Item item = GameRegistry.findItem("serveur", "bottemobs"); if(item != null) { return item; } else { return null; } } }
package fr.paladium.Modevent.proxy; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; public class ModelPerso extends ModelBiped { //fields ModelRenderer head2; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; ModelRenderer head; public ModelPerso() { textureWidth = 128; textureHeight = 64; head2 = new ModelRenderer(this, 64, 0); head2.addBox(-8F, -16F, -8F, 16, 16, 16); head2.setRotationPoint(-4F, -24F, 0F); head2.setTextureSize(128, 64); head2.mirror = true; setRotation(head2, 0F, 0F, 0F); body = new ModelRenderer(this, 32, 32); body.addBox(-8F, 0F, -4F, 16, 24, 8); body.setRotationPoint(-4F, -24F, 0F); body.setTextureSize(128, 64); body.mirror = true; setRotation(body, 0F, 0F, 0F); rightarm = new ModelRenderer(this, 80, 32); rightarm.addBox(-8F, -4F, -4F, 8, 24, 8); rightarm.setRotationPoint(-12F, -20F, 0F); rightarm.setTextureSize(128, 64); rightarm.mirror = true; setRotation(rightarm, 0F, 0F, 0F); leftarm = new ModelRenderer(this, 80, 32); leftarm.addBox(0F, -4F, -4F, 8, 24, 8); leftarm.setRotationPoint(4F, -20F, 0F); leftarm.setTextureSize(128, 64); leftarm.mirror = true; setRotation(leftarm, 0F, 0F, 0F); rightleg = new ModelRenderer(this, 0, 32); rightleg.addBox(-4F, 0F, -4F, 8, 24, 8); rightleg.setRotationPoint(-8F, 0F, 0F); rightleg.setTextureSize(128, 64); rightleg.mirror = true; setRotation(rightleg, 0F, 0F, 0F); leftleg = new ModelRenderer(this, 0, 32); leftleg.addBox(-4F, 0F, -4F, 8, 24, 8); leftleg.setRotationPoint(0F, 0F, 0F); leftleg.setTextureSize(128, 64); leftleg.mirror = true; setRotation(leftleg, 0F, 0F, 0F); head = new ModelRenderer(this, 0, 0); head.addBox(-8F, -16F, -8F, 16, 16, 16); head.setRotationPoint(-4F, -24F, 0F); head.setTextureSize(128, 64); head.mirror = true; setRotation(head, 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); head2.render(f5); body.render(f5); rightarm.render(f5); leftarm.render(f5); rightleg.render(f5); leftleg.render(f5); head.render(f5); this.rightleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * 1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * -1.0F * f1; this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 1.0F * f1; } 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); this.rightleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * 1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * -1.0F * f1; this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 1.0F * f1; } }
package fr.paladium.Modevent; import fr.paladium.Modevent.proxy.ModelPerso; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class RenderMobRed extends RenderBiped{ public final ResourceLocation texture = new ResourceLocation ("modevent", "textures/entity/mobred.png"); public RenderMobRed (ModelBiped model, float shadow){ super(model,shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobs((mobred)living); } private ResourceLocation getMobs(mobred Mobs) { return texture; } }
Voila si quelqu’un a une idée je prend
-
A quoi te sert ta classe ModelPerso, quand l’appelles-tu ?
Et puis on pourrait avoir ton ClientProxy, voir la ligne d’enregistrement du rendu de ton mob.
-
Oui tien :
RenderingRegistry.registerEntityRenderingHandler(mobano.class, new RenderMobano(new ModelPerso(), 1.5F));
-
Essaie sa
RenderingRegistry.registerEntityRenderingHandler(mobano.class, new RenderMobano(new ModelBiped(), 1.5F));
-
J’ai encore jamais vu un problème de double mod. Je peux avoir le code de tes proxys et ta classe principale ?
-
Un debut a tous =p
Tien je te passe le tout :package fr.paladium.Modevent; import java.awt.Color; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.EntityRegistry; import fr.paladium.Modevent.proxy.commonproxy; @Mod(modid = "modevent", version = "1.0") public class modevent { @Instance("modevent") public static modevent instance; @SidedProxy(clientSide = "fr.paladium.Modevent.proxy.clientproxy", serverSide = "fr.paladium.Modevent.proxy.commonproxy") public static commonproxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); EntityRegistry.registerGlobalEntityID(Mobfuze.class, "fuzemob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(Mobfuze.class, "fuzemob", 440, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(MobMosca.class, "moscamob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(MobMosca.class, "moscamob", 441, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(MobArduin.class, "arduinmob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(MobArduin.class, "arduinmob", 442, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(mobzoldru.class, "zoldrumob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(mobzoldru.class, "zoldrumob", 443, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(mobsoristos.class, "soristosmob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(mobsoristos.class, "soristosmob", 444, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(mobhiss.class, "hissmob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(mobhiss.class, "hissmob", 445, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(mobred.class, "redmob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(mobred.class, "redmob", 446, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(mobano.class, "anomob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(mobano.class, "anomob", 447, this.instance, 40, 1, true); EntityRegistry.registerGlobalEntityID(mobremi.class, "remimob", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 255, 0).getRGB(), new Color(255, 0, 0).getRGB()); EntityRegistry.registerModEntity(mobremi.class, "remimob", 448, this.instance, 40, 1, true); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }
package fr.paladium.Modevent.proxy; import cpw.mods.fml.client.registry.RenderingRegistry; import fr.paladium.Modevent.MobArduin; import fr.paladium.Modevent.MobMosca; import fr.paladium.Modevent.Mobfuze; import fr.paladium.Modevent.RenderMobArduin; import fr.paladium.Modevent.RenderMobHiss; import fr.paladium.Modevent.RenderMobMosca; import fr.paladium.Modevent.RenderMobRed; import fr.paladium.Modevent.RenderMobSoristos; import fr.paladium.Modevent.RenderMobZoldru; import fr.paladium.Modevent.RenderMobano; import fr.paladium.Modevent.RenderMobfuze; import fr.paladium.Modevent.RenderMobremi; import fr.paladium.Modevent.mobano; import fr.paladium.Modevent.mobhiss; import fr.paladium.Modevent.mobred; import fr.paladium.Modevent.mobremi; import fr.paladium.Modevent.mobsoristos; import fr.paladium.Modevent.mobzoldru; import net.minecraft.client.model.ModelBiped; public class clientproxy extends commonproxy { @Override public void registerRender() { System.out.println("méthode côté client"); RenderingRegistry.registerEntityRenderingHandler(Mobfuze.class, new RenderMobfuze(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(MobArduin.class, new RenderMobArduin(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(MobMosca.class, new RenderMobMosca(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(mobsoristos.class, new RenderMobSoristos(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(mobzoldru.class, new RenderMobZoldru(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(mobhiss.class, new RenderMobHiss(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(mobred.class, new RenderMobRed(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(mobano.class, new RenderMobano(new ModelPerso(), 1.5F)); RenderingRegistry.registerEntityRenderingHandler(mobremi.class, new RenderMobremi(new ModelPerso(), 1.5F)); } }
package fr.paladium.Modevent.proxy; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; public class ModelPerso extends ModelBiped { //fields ModelRenderer head2; ModelRenderer body; ModelRenderer rightarm; ModelRenderer leftarm; ModelRenderer rightleg; ModelRenderer leftleg; ModelRenderer head; public ModelPerso() { textureWidth = 128; textureHeight = 64; head2 = new ModelRenderer(this, 64, 0); head2.addBox(-8F, -16F, -8F, 16, 16, 16); head2.setRotationPoint(-4F, -24F, 0F); head2.setTextureSize(128, 64); head2.mirror = true; setRotation(head2, 0F, 0F, 0F); body = new ModelRenderer(this, 32, 32); body.addBox(-8F, 0F, -4F, 16, 24, 8); body.setRotationPoint(-4F, -24F, 0F); body.setTextureSize(128, 64); body.mirror = true; setRotation(body, 0F, 0F, 0F); rightarm = new ModelRenderer(this, 80, 32); rightarm.addBox(-8F, -4F, -4F, 8, 24, 8); rightarm.setRotationPoint(-12F, -20F, 0F); rightarm.setTextureSize(128, 64); rightarm.mirror = true; setRotation(rightarm, 0F, 0F, 0F); leftarm = new ModelRenderer(this, 80, 32); leftarm.addBox(0F, -4F, -4F, 8, 24, 8); leftarm.setRotationPoint(4F, -20F, 0F); leftarm.setTextureSize(128, 64); leftarm.mirror = true; setRotation(leftarm, 0F, 0F, 0F); rightleg = new ModelRenderer(this, 0, 32); rightleg.addBox(-4F, 0F, -4F, 8, 24, 8); rightleg.setRotationPoint(-8F, 0F, 0F); rightleg.setTextureSize(128, 64); rightleg.mirror = true; setRotation(rightleg, 0F, 0F, 0F); leftleg = new ModelRenderer(this, 0, 32); leftleg.addBox(-4F, 0F, -4F, 8, 24, 8); leftleg.setRotationPoint(0F, 0F, 0F); leftleg.setTextureSize(128, 64); leftleg.mirror = true; setRotation(leftleg, 0F, 0F, 0F); head = new ModelRenderer(this, 0, 0); head.addBox(-8F, -16F, -8F, 16, 16, 16); head.setRotationPoint(-4F, -24F, 0F); head.setTextureSize(128, 64); head.mirror = true; setRotation(head, 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); head2.render(f5); body.render(f5); rightarm.render(f5); leftarm.render(f5); rightleg.render(f5); leftleg.render(f5); head.render(f5); this.rightleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * 1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * -1.0F * f1; this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 1.0F * f1; } 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); this.rightleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * 1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((90F / (float)Math.PI)) * -1.0F * f1; this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -1.0F * f1; this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 1.0F * f1; } }
package fr.paladium.Modevent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.entity.Entity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.boss.BossStatus; import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.entity.monster.EntityMob; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class mobano extends EntityMob{ public mobano (World world) { super(world); } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(5000D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(4D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(9999999D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(30D); } public Item getDropItem() { Item item = GameRegistry.findItem("serveur", "bottemobs"); if(item != null) { return item; } else { return null; } } }
package fr.paladium.Modevent; import fr.paladium.Modevent.proxy.ModelPerso; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class RenderMobano extends RenderBiped{ public final ResourceLocation texture = new ResourceLocation ("modevent", "textures/entity/mobano.png"); public RenderMobano (ModelPerso model, float shadow){ super(model,shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobs((mobano)living); } private ResourceLocation getMobs(mobano Mobs) { return texture; } }
ModelBiped marche mais le mob est de deux de haut hors la je veux mon propre model =/
-
Dans ce cas au lien de extends ton model de ModelBiped, extends le de ModelBase
Et du coup ton render tu l’extends de RenderLiving au lieu de RenderBiped, et ton constructeur ressemblera donc à çapublic RenderMobano (ModelBase model, float shadow){ super(model,shadow); }
-
package fr.paladium.Modevent; import fr.paladium.Modevent.proxy.ModelPerso; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class RenderMobano extends RenderLiving{ public final ResourceLocation texture = new ResourceLocation ("modevent", "textures/entity/mobano.png"); public RenderMobano (ModelBase model, float shadow){ super(model,shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobs((mobano)living); } private ResourceLocation getMobs(mobano Mobs) { return texture; } }
J’ai une erreur sur public class RenderMobano extends RenderLiving
RenderMobano -
Normal :
protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobs((mobano)living); }
Tu as mis EntityLiving au lieu de Entity. Du coup il te propose d’importer la méthode à nouveau.
Change EntityLiving par Entity -
Voila mais rien a changer sur le mob =/
-
Bonjour,
j’avais eu le même problème au début, tu es en rendu modelBiped qui a une structure prédéfinie, tu doit donc le mettre en modelBase et RendererLiving.
Essaye ça :dans ta classe modelPerso, tu mets :
public class ModelPerso extends ModelBase{//la suite de ton code
dans ta classe render :
public class RenderMobRed extends RenderLiving{ public final ResourceLocation texture = new ResourceLocation ("modevent", "textures/entity/mobred.png"); public RenderMobRed (ModelPerso model, float shadow){ super(model,shadow); }
Dans ton ClientProxy
RenderingRegistry.registerEntityRenderingHandler(mobano.class, new RenderMobRed(new ModelPerso(), 1.5F));
essaye ça et dit moi
-
J’ai une erreur dans : Clientproxy
new RenderMobRed(new ModelPerso(), 1.5F));
RenderingRegistry.registerEntityRenderingHandler(mobred.class, new RenderMobRed(new ModelPerso(), 1.5F));
-
regarde si toutes tes classes sont bien importées, si oui, efface la ligne et refait la manuellement en important au fur et à mesure
-
C’est bon mais maintenant je ne vois plus les mobs juste l’ombre a terre
-
J’ai pas vu ta class main, tu as pas oublier de déclarer le mob dans init?J’ai essayer c’est pas ça, mais j’avais eu le problème de l’ombre laisse moi réfléchir
-
Il est mis dans la class init
-
Je viens de voir que tu as plusieurs mobs, tu as bien fait les modifications dans mobano et tester ses classes et son spawn?
-
J’ai modif tous les mobs et lancer je le spawn avec un 9 =p
Edit : C’est bon mais toujours le meme probleme avec les pieds =/ -
Tu as toujours le même problème avec une doublure des pieds? ou alors la marche se fait bizarrement?
-
Bah il avance qu’un pied genre il écarte reviens et ne fait pas dans l’autre sens