Armure 3D
-
Salut,
Alors je vois deux problèmes :- Dans la fonction getArmorModel de ton item, il faut paramétrer le modèle avec des variables comme sneak et d’autres, je ne sais plus exactement.
- Dans la classe de ton modèle, il faut overide la fonction setRogationAngles en mettant toutes les rotations des parties de model comme body, head … à la valeur des rotations de bipedBody, bipedHead …
-
ok merci j’ai fait sa et sa marche
@Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityliving, ItemStack stack, int armor) { ModelBiped armorModel = new ArmorAlien(1f); armorModel.isSneak = entityliving.isSneaking(); armorModel.isRiding = entityliving.isRiding(); armorModel.isChild = entityliving.isChild(); armorModel.heldItemRight = 0; armorModel.aimedBow = false; EntityPlayer player = (EntityPlayer)entityliving; ItemStack held_item = player.getEquipmentInSlot(0); if (held_item != null){ armorModel.heldItemRight = 1; if (player.getItemInUseCount() > 0){ EnumAction enumaction = held_item.getItemUseAction(); if (enumaction == EnumAction.bow){ armorModel.aimedBow = true; }else if (enumaction == EnumAction.block){ armorModel.heldItemRight = 3; } } } return armorModel; }et je voudrait agrandir la tête du joueur mais comment je pourrait le faire ?
-
Quand tu dis “la tête du joueur”, tu veux dire réellement la tête de joueur ou la partie d’armure qui est sur la tête du joueur ?
Dans le premier cas, je ne sais pas comment faire et dans le deuxième cas, en jouant avec les GL11.gl_scalef (ou quelque chose comme ça), ça doit être facile. -
la tête réelle
Mais sinon je vais essayer avec GL11.gl_scalef
-
@‘Kerlann’:
la tête réelle
Mais sinon je vais essayer avec GL11.gl_scalef
Je pense avoir trouvé une solution : que le joueur met l’armure, tu prend le modèle et modifier la taille de la tête comme ça :
ModelRenderer bipedHead = event.renderer.getMainModel().bipedHead; bipedHead.cubeList.remove(0); bipedHead.add(-4.0F, -8.0F, -4.0F, 8, 8, 8, modelSize); // Ici, tu remplace modelSize par la taille que tu veuxLe problème va être quand tu veux remettre la taille normal, quand le joueur enlève l’armure, mais je pense que ça ne doit pas être compliqué à faire.
-
Il doit effectivement y avoir moyen de faire ça via l’event de rendu du joueur.
-
J’ai fait ça mais il y a rien qui change
public void onRender(RenderPlayerEvent.Post event) { ModelRenderer bipedHead = event.renderer.modelArmor.bipedHead; bipedHead.cubeList.remove(0); bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 15); } -
Tu as mis ceci avec un @SubscribeEvent au dessus, dans une classe enregistrée ?
Changes le “Post” par “Pre”.PS: utilises une balise java la prochaine fois

-
Toujours pas
@SubscribeEvent public void onRender(RenderPlayerEvent.Pre event) { ModelRenderer bipedHead = event.renderer.modelArmor.bipedHead; bipedHead.cubeList.remove(0); bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 15); } -
Mets un “System.out.println(“Quelque chose”);” dans cette fonction, et regardes si ça apparaît dans la console.
-
non ça apparaît pas
-
Alors la fonction est pas appelée, montres comment tu as enregistrée la classe d’events où est la fonction.