Animer simplement un mob
-
Très bon tutoriel. Moi qui ne comprenait pas trop le système d’animation.

-
Je valide.
-
Petit soucis : les liens d’images que tu fais sont 404. Penses à corriger cela.

-
Moi je les vois parfaitement ?
-
Essaie un autre hébergeur

Très bon tutoriel, malgré les images invisibles a nos yeux !
-
Idem. Le problème c’est que tu as utiliser les pièces jointes depuis minecraft-france, donc il faut être connecté sur minecraft-france pour les voir.
Réupload en pièce jointe ici ou sur un hébergeur comme imgur. -
Bonjour, très bon tuto"s" ! C’est peut être le seul qui marche sur tous ce que j’ai vu ^^
Cependant, je voudrais savoir comment serait-il possible de faire une animation sur block quand on clique dessus, un peu comme le coffre ?Merci d’avance.
-
http://www.minecraftforgefrance.fr/showthread.php?tid=375
(d’ailleurs tu me fais penser qu’il faut que je rédige la deuxième partie). -
Merci, je l’ai trouvé entre temps
J’ai une question encore, j’ai peut être pas trop cherché, mais sur ce forum, est-il possible de poster un topic concernant notre mod ? -
@‘JackCarterSmith’:
Merci, je l’ai trouvé entre temps
J’ai une question encore, j’ai peut être pas trop cherché, mais sur ce forum, est-il possible de poster un topic concernant notre mod ? -
Yo, sympa le tuto, mais est-ce normal que mon pied reste figé pendant la phase de déplacement et revienne a ça position initial après ce dernier ?
-
@‘UnknowOrigin’:
Yo, sympa le tuto, mais est-ce normal que mon pied reste figé pendant la phase de déplacement et revienne a ça position initial après ce dernier ?
tu as du te tromper a un endroit regarde bien ton code ^^.
-
Bonjour a tous j’ai suivie les étapes je pense comme il faut mais je n’arrive pas a faire bouger les ailes a mon mob (ailes droite et gauche) cela me torture pouvez vous me mettre sur la vois ?
public static class ModelDimorphodon extends ModelBase { ModelRenderer aile_gauche; ModelRenderer corps; ModelRenderer bras_sous_aile_droite; ModelRenderer bras_sous_aile_gauche; ModelRenderer cou; ModelRenderer tete; ModelRenderer queue; ModelRenderer queu; ModelRenderer jambe_droite; ModelRenderer jambe_gauche; ModelRenderer aile_droite; public ModelDimorphodon() { textureWidth = 64; textureHeight = 64; aile_gauche = new ModelRenderer(this, 1, 48); aile_gauche.addBox(0F, 0F, 0F, 12, 1, 7); aile_gauche.setRotationPoint(2F, 0F, 0F); aile_gauche.setTextureSize(64, 64); aile_gauche.mirror = true; setRotation(aile_gauche, 0F, 0F, 0F); corps = new ModelRenderer(this, 20, 35); corps.addBox(0F, 0F, 0F, 4, 4, 8); corps.setRotationPoint(-2F, -1F, 0F); corps.setTextureSize(64, 64); corps.mirror = true; setRotation(corps, 0F, 0F, 0F); bras_sous_aile_droite = new ModelRenderer(this, 41, 51); bras_sous_aile_droite.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_droite.setRotationPoint(-6F, 1.1F, 3F); bras_sous_aile_droite.setTextureSize(64, 64); bras_sous_aile_droite.mirror = true; setRotation(bras_sous_aile_droite, 0F, 0F, 0F); bras_sous_aile_gauche = new ModelRenderer(this, 13, 59); bras_sous_aile_gauche.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_gauche.setRotationPoint(2F, 1.1F, 3F); bras_sous_aile_gauche.setTextureSize(64, 64); bras_sous_aile_gauche.mirror = true; setRotation(bras_sous_aile_gauche, 0F, 0F, 0F); cou = new ModelRenderer(this, 26, 27); cou.addBox(0F, 0F, 0F, 2, 2, 4); cou.setRotationPoint(-1F, 0F, -4F); cou.setTextureSize(64, 64); cou.mirror = true; setRotation(cou, 0F, 0F, 0F); tete = new ModelRenderer(this, 24, 16); tete.addBox(0F, 0F, 0F, 3, 4, 5); tete.setRotationPoint(-1.5F, -1F, -9F); tete.setTextureSize(64, 64); tete.mirror = true; setRotation(tete, 0F, 0F, 0F); queue = new ModelRenderer(this, 35, 3); queue.addBox(0F, 0F, 0F, 3, 2, 3); queue.setRotationPoint(-1.5F, -1F, 8F); queue.setTextureSize(64, 64); queue.mirror = true; setRotation(queue, 0F, 0F, 0F); queu = new ModelRenderer(this, 16, 2); queu.addBox(0F, 0F, 0F, 1, 1, 7); queu.setRotationPoint(-0.5F, -1F, 11F); queu.setTextureSize(64, 64); queu.mirror = true; setRotation(queu, 0F, 0F, 0F); jambe_droite = new ModelRenderer(this, 43, 15); jambe_droite.addBox(0F, 0F, 0F, 1, 4, 1); jambe_droite.setRotationPoint(-2.3F, 3F, 5F); jambe_droite.setTextureSize(64, 64); jambe_droite.mirror = true; setRotation(jambe_droite, 1.047198F, -0.0174533F, 0F); jambe_gauche = new ModelRenderer(this, 17, 15); jambe_gauche.addBox(0F, 0F, 0F, 1, 4, 1); jambe_gauche.setRotationPoint(1.3F, 3F, 5F); jambe_gauche.setTextureSize(64, 64); jambe_gauche.mirror = true; setRotation(jambe_gauche, 1.047198F, 0F, 0F); aile_droite = new ModelRenderer(this, 25, 56); aile_droite.addBox(0F, 0F, 0F, 12, 1, 7); aile_droite.setRotationPoint(-14F, 0F, 0F); aile_droite.setTextureSize(64, 64); aile_droite.mirror = true; setRotation(aile_droite, 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); aile_gauche.render(f5); corps.render(f5); bras_sous_aile_droite.render(f5); bras_sous_aile_gauche.render(f5); cou.render(f5); tete.render(f5); queue.render(f5); queu.render(f5); jambe_droite.render(f5); jambe_gauche.render(f5); aile_droite.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 e) { super.setRotationAngles(f, f1, f2, f3, f4, f5, e); } } } -
Ca ne me semble pas compliquer pourtant il est bien écrit
- L’animation :
Dans votre classe Liquid.Java , rendez vous à cette ligne :
Code (java):
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Puis ajoutez :
Code Java : (Tout sélectionner)
this.Membre.rotateAngleX
Ou Membre est à remplacer par le membre en question , ici on va le remplacer rightleg.
Vous pouvez changer X par Y ou par Z.
Ensuite , au bout de cette ligne , rajoutez :
Code Java : (Tout sélectionner)
= MathHelper.cos((180F / (float)Math.PI)) * -xF * f1;Pour avoir une animation de balancement ( ? ) sinon :
Code Java : (Tout sélectionner)
= MathHelper.cos((180F / (float)y)) * -xF * f1;Pour l’animation que d’un coté.
Remplacez X et Y par une valeur quelconque. ( pour X j’ai mis 3.8 )
Ensuite testez. Vous verrez que Liquid ne bouge qu’une seule jambe.
Refaites la même opération pour chacun des membres qui bougent !
Vous devriez avoir ça :Code Java : (Tout sélectionner)
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;Testez. Vous verrez que le mouvement n’est pas naturel …
Enlevez tout simplement le - devant un membre inférieur ( les jambes ) et supérieur ( les bras ) :Code Java : (Tout sélectionner)
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
this.rightleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
this.leftleg.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
this.rightarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 3.8F * f1;
this.leftarm.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
Vous pouvez diminuer 3.8 ou l’augmenter si cela ne vous convient pas.Dans cette fonction
super.setRotationAngles(f, f1, f2, f3, f4, f5, e); } }tu ajoute soit pour les déplacement de l’axe X: - this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
ou pour un déplacement de l’axe Y : this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;
et un déplacement de l’axe Z : this.LENOMDETONMEMBREQUIDOITBOUGER.rotateAngleZ = MathHelper.cos((180F / (float)Math.PI)) * -3.8F * f1;A toi ensuite de changer la valeur -3.8F par quelque chose qui te convient

Il me semble que la chauve souris c’est +1.0F quelque chose comme ca

–----------------------------------
N’hésite pas si je t’ai aider le petit bouton +/-
- L’animation :
-
Désoler de Re déranger mais cela ne marche pas je dois vraiment être stupide voici ma class :
import cpw.mods.fml.client.*; import cpw.mods.fml.client.registry.*; import cpw.mods.fml.common.*; import cpw.mods.fml.common.asm.*; import cpw.mods.fml.common.asm.transformers.*; import cpw.mods.fml.common.discovery.*; import cpw.mods.fml.common.discovery.asm.*; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.functions.*; import cpw.mods.fml.common.network.*; import cpw.mods.fml.common.registry.*; import cpw.mods.fml.common.toposort.*; import cpw.mods.fml.common.versioning.*; import cpw.mods.fml.relauncher.*; import cpw.mods.fml.server.*; import net.minecraft.block.*; import net.minecraft.block.material.*; import net.minecraft.client.*; import net.minecraft.client.audio.*; import net.minecraft.client.entity.*; import net.minecraft.client.gui.*; import net.minecraft.client.gui.achievement.*; import net.minecraft.client.gui.inventory.*; import net.minecraft.client.model.*; import net.minecraft.client.multiplayer.*; import net.minecraft.client.particle.*; import net.minecraft.client.renderer.*; import net.minecraft.client.renderer.culling.*; import net.minecraft.client.renderer.entity.*; import net.minecraft.client.renderer.tileentity.*; import net.minecraft.client.settings.*; import net.minecraft.command.*; import net.minecraft.crash.*; import net.minecraft.creativetab.*; import net.minecraft.dispenser.*; import net.minecraft.enchantment.*; import net.minecraft.entity.*; import net.minecraft.entity.ai.*; import net.minecraft.entity.boss.*; import net.minecraft.entity.effect.*; import net.minecraft.entity.item.*; import net.minecraft.entity.monster.*; import net.minecraft.entity.passive.*; import net.minecraft.entity.player.*; import net.minecraft.entity.projectile.*; import net.minecraft.inventory.*; import net.minecraft.item.*; import net.minecraft.item.crafting.*; import net.minecraft.nbt.*; import net.minecraft.network.*; import net.minecraft.network.rcon.*; import net.minecraft.pathfinding.*; import net.minecraft.potion.*; import net.minecraft.profiler.*; import net.minecraft.server.*; import net.minecraft.server.dedicated.*; import net.minecraft.server.gui.*; import net.minecraft.server.integrated.*; import net.minecraft.server.management.*; import net.minecraft.src.*; import net.minecraft.stats.*; import net.minecraft.tileentity.*; import net.minecraft.util.*; import net.minecraft.village.*; import net.minecraft.world.*; import net.minecraft.world.biome.*; import net.minecraft.world.chunk.*; import net.minecraft.world.chunk.storage.*; import net.minecraft.world.demo.*; import net.minecraft.world.gen.*; import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.layer.*; import net.minecraft.world.gen.structure.*; import net.minecraft.world.storage.*; import net.minecraftforge.classloading.*; import net.minecraftforge.client.*; import net.minecraftforge.client.event.*; import net.minecraftforge.client.event.sound.*; import net.minecraftforge.common.*; import net.minecraftforge.event.*; import net.minecraftforge.event.entity.*; import net.minecraftforge.event.entity.item.*; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.minecart.*; import net.minecraftforge.event.entity.player.*; import net.minecraftforge.event.terraingen.*; import net.minecraftforge.event.world.*; import net.minecraftforge.oredict.*; import net.minecraftforge.transformers.*; import net.minecraft.init.*; import java.util.Random; @SuppressWarnings("unchecked") public class mcreator_dimorphodon { public static int mobid = 0; public Object instance; public void load(){} public void generateNether(World world, Random random, int chunkX, int chunkZ){} public void generateSurface(World world, Random random, int chunkX, int chunkZ){} public int addFuel(ItemStack fuel){ return 0; } public void registerRenderers(){ RenderingRegistry.registerEntityRenderingHandler(mcreator_dimorphodon.Entitydimorphodon.class, new RenderLiving(new mcreator_dimorphodon.ModelDimorphodon(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("Dimorphodon texture.png");}}); } public void serverLoad(FMLServerStartingEvent event){} public void preInit(FMLPreInitializationEvent event){ int entityID = EntityRegistry.findGlobalUniqueEntityId(); mobid = entityID; EntityRegistry.registerGlobalEntityID(mcreator_dimorphodon.Entitydimorphodon.class, "dimorphodon", entityID); EntityRegistry.registerModEntity(mcreator_dimorphodon.Entitydimorphodon.class, "dimorphodon", entityID, instance, 64, 1, true); EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (255 << 16) + (255 << 8) + 0, (255 << 16) + (51 << 8) + 51)); DungeonHooks.addDungeonMob("dimorphodon", 180); } /*public Entity spawnEntity(int var1, World var2, double var3, double var5, double var7) { if(var1==mobid) return new mcreator_dimorphodon.Entitydimorphodon(var2); else return null; }*/ public static class Entitydimorphodon extends EntityFlying { World world = null; public Entitydimorphodon(World var1) { super(var1); world = var1; experienceValue = 5; this.isImmuneToFire = false; addRandomArmor(); } protected void applyEntityAttributes(){ super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(2.0D); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); if(this.getEntityAttribute(SharedMonsterAttributes.attackDamage)!=null)this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3D); } protected void addRandomArmor(){ } protected void dropRareDrop(int par1){ this.dropItem(Items.bone, 1); } public boolean isAIEnabled() { return false; } /** * Drop 0-2 items of this living's type */ protected void dropFewItems(boolean var1, int var2) { this.entityDropItem(new ItemStack(Items.feather), 0.0F); } /** * Returns the sound this mob makes while it's alive. */ protected String getLivingSound() { return ""; } /** * Returns the sound this mob makes when it is hurt. */ protected String getHurtSound() { return ""; } /** * Returns the sound this mob makes on death. */ protected String getDeathSound() { return ""; } public void onStruckByLightning(EntityLightningBolt entityLightningBolt){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; } protected void fall(float l){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; super.fall(l); } public void onCriticalHit(Entity entity) { int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; } public void onKillEntity(EntityLiving entityLiving){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; } public boolean interact(EntityPlayer entity){ int i = (int)this.posX; int j = (int)this.posY; int k = (int)this.posZ; return true; } public String getEntityName(){ return "dimorphodon"; } } // Date: 02/09/2014 12:59:32 // Template version 1.1 // Java generated by Techne // Keep in mind that you still need to fill in some blanks // - ZeuX public static class ModelDimorphodon extends ModelBase { //fields ModelRenderer aile_gauche; ModelRenderer corps; ModelRenderer bras_sous_aile_droite; ModelRenderer bras_sous_aile_gauche; ModelRenderer cou; ModelRenderer tete; ModelRenderer queue; ModelRenderer queu; ModelRenderer jambe_droite; ModelRenderer jambe_gauche; ModelRenderer aile_droite; public ModelDimorphodon() { textureWidth = 64; textureHeight = 64; aile_gauche = new ModelRenderer(this, 1, 48); aile_gauche.addBox(0F, 0F, 0F, 12, 1, 7); aile_gauche.setRotationPoint(2F, 0F, 0F); aile_gauche.setTextureSize(64, 64); aile_gauche.mirror = true; setRotation(aile_gauche, 0F, 0F, 0F); corps = new ModelRenderer(this, 20, 35); corps.addBox(0F, 0F, 0F, 4, 4, 8); corps.setRotationPoint(-2F, -1F, 0F); corps.setTextureSize(64, 64); corps.mirror = true; setRotation(corps, 0F, 0F, 0F); bras_sous_aile_droite = new ModelRenderer(this, 41, 51); bras_sous_aile_droite.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_droite.setRotationPoint(-6F, 1.1F, 3F); bras_sous_aile_droite.setTextureSize(64, 64); bras_sous_aile_droite.mirror = true; setRotation(bras_sous_aile_droite, 0F, 0F, 0F); bras_sous_aile_gauche = new ModelRenderer(this, 13, 59); bras_sous_aile_gauche.addBox(0F, 0F, 0F, 4, 1, 1); bras_sous_aile_gauche.setRotationPoint(2F, 1.1F, 3F); bras_sous_aile_gauche.setTextureSize(64, 64); bras_sous_aile_gauche.mirror = true; setRotation(bras_sous_aile_gauche, 0F, 0F, 0F); cou = new ModelRenderer(this, 26, 27); cou.addBox(0F, 0F, 0F, 2, 2, 4); cou.setRotationPoint(-1F, 0F, -4F); cou.setTextureSize(64, 64); cou.mirror = true; setRotation(cou, 0F, 0F, 0F); tete = new ModelRenderer(this, 24, 16); tete.addBox(0F, 0F, 0F, 3, 4, 5); tete.setRotationPoint(-1.5F, -1F, -9F); tete.setTextureSize(64, 64); tete.mirror = true; setRotation(tete, 0F, 0F, 0F); queue = new ModelRenderer(this, 35, 3); queue.addBox(0F, 0F, 0F, 3, 2, 3); queue.setRotationPoint(-1.5F, -1F, 8F); queue.setTextureSize(64, 64); queue.mirror = true; setRotation(queue, 0F, 0F, 0F); queu = new ModelRenderer(this, 16, 2); queu.addBox(0F, 0F, 0F, 1, 1, 7); queu.setRotationPoint(-0.5F, -1F, 11F); queu.setTextureSize(64, 64); queu.mirror = true; setRotation(queu, 0F, 0F, 0F); jambe_droite = new ModelRenderer(this, 43, 15); jambe_droite.addBox(0F, 0F, 0F, 1, 4, 1); jambe_droite.setRotationPoint(-2.3F, 3F, 5F); jambe_droite.setTextureSize(64, 64); jambe_droite.mirror = true; setRotation(jambe_droite, 1.047198F, -0.0174533F, 0F); jambe_gauche = new ModelRenderer(this, 17, 15); jambe_gauche.addBox(0F, 0F, 0F, 1, 4, 1); jambe_gauche.setRotationPoint(1.3F, 3F, 5F); jambe_gauche.setTextureSize(64, 64); jambe_gauche.mirror = true; setRotation(jambe_gauche, 1.047198F, 0F, 0F); aile_droite = new ModelRenderer(this, 25, 56); aile_droite.addBox(0F, 0F, 0F, 12, 1, 7); aile_droite.setRotationPoint(-14F, 0F, 0F); aile_droite.setTextureSize(64, 64); aile_droite.mirror = true; setRotation(aile_droite, 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); aile_gauche.render(f5); corps.render(f5); bras_sous_aile_droite.render(f5); bras_sous_aile_gauche.render(f5); cou.render(f5); tete.render(f5); queue.render(f5); queu.render(f5); jambe_droite.render(f5); jambe_gauche.render(f5); aile_droite.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 e) { super.setRotationAngles(f, f1, f2, f3, f4, f5, e); this.aile_droite.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.aile_gauche.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.tete.rotateAngleX = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.tete.rotateAngleY = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; this.tete.rotateAngleZ = MathHelper.cos((180F / (float)Math.PI)) * 0.5F * f1; } } } -
Les balises, les balises mon petit … Car la c’est du viol d’œil
-
Désoler je me suis prit un avertissement pour cela mais je ne sais pas comme le faire pouvait vous m’expliquer que cela n’arrive plus
-
C’est pas compliqué. Si tu veux mettre du code java, tu mets : [java ] code ici [/java] (pas d’étoile dans les balises bien sûr). Si c’est pour u code qui est autre que java (ex : crash report, JSON….), tu mets [code] code ici [/code] (toujours sans les étoiles :p).
-
Ensuite, tu utilises mc_creator, il fait de la merde avec les codes.
-
Sérieusement, ici c’est MFF, pas le support de mcreator daube. Tout ton code est bon à être refait, comme superloup l’a dit mcreator fait N’IMPORTE QUOI, MAIS VRAIMENT N’IMPORTE QUOI.

