[1.7.10] Анимация брони.

Здравствуйте форумчане. Столкнулся с проблемой, анимацией/движением брони.
1-ая проблема, это то, что броня появляется над игроком, хотя создавал нагрудник.
image.png

2-ая проблема, шлем, туловище и руки брони не двигаются, вот код модели.
Код:
package ru.ostrix.aod.client.model;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;

public class CrystalWhiteChestplateModel extends ModelBiped
{
    private ResourceLocation texture = new ResourceLocation("aod:textures/model/armor.png");
    
  //fields
    ModelRenderer Box_0;
    ModelRenderer Box_1;
    ModelRenderer Box_2;
    ModelRenderer Box_3;
    ModelRenderer Box_4;
    ModelRenderer Box_5;
    ModelRenderer Box_6;
    ModelRenderer Box_7;
    ModelRenderer Box_8;
    ModelRenderer Box_9;
    ModelRenderer Box_10;
    ModelRenderer Box_12;
    ModelRenderer Box_13;
    ModelRenderer Box_14;
    ModelRenderer Box_15;
    ModelRenderer Box_16;
    ModelRenderer Box_17;
    ModelRenderer Box_18;
    ModelRenderer Box_19;
    ModelRenderer Box_21;
    ModelRenderer Box_23;
    ModelRenderer Box_24;
    ModelRenderer Box_25;
    ModelRenderer Box_26;
    ModelRenderer Box_27;
    ModelRenderer Box_28;
    ModelRenderer Box_29;
    ModelRenderer Box_30;
    ModelRenderer Box_31;
    ModelRenderer Box_32;
    ModelRenderer Box_33;
    ModelRenderer Box_34;
    ModelRenderer Box_35;
    ModelRenderer Box_36;
    ModelRenderer Box_37;
    ModelRenderer Box_38;
    ModelRenderer Box_39;
    ModelRenderer Box_40;
  
  public CrystalWhiteChestplateModel()
  {
    textureWidth = 64;
    textureHeight = 32;
    
    textureWidth = 512;
    textureHeight = 512;
    
      Box_0 = new ModelRenderer(this, 1, 1);
      Box_0.addBox(0F, 0F, 0F, 4, 1, 1);
      Box_0.setRotationPoint(-4F, -17F, -4.5F);
      Box_0.setTextureSize(512, 512);
      Box_0.mirror = true;
      setRotation(Box_0, 0F, 0F, 0.0698132F);
      Box_1 = new ModelRenderer(this, 17, 1);
      Box_1.addBox(0F, 0F, 0F, 4, 1, 1);
      Box_1.setRotationPoint(4F, -16F, -4.5F);
      Box_1.setTextureSize(512, 512);
      Box_1.mirror = true;
      setRotation(Box_1, 0F, 0F, -3.211406F);
      Box_2 = new ModelRenderer(this, 33, 1);
      Box_2.addBox(0F, 0F, 0F, 1, 4, 1);
      Box_2.setRotationPoint(-4F, -17F, -4.5F);
      Box_2.setTextureSize(512, 512);
      Box_2.mirror = true;
      setRotation(Box_2, 0F, 0F, 0F);
      Box_3 = new ModelRenderer(this, 41, 1);
      Box_3.addBox(0F, 0F, 0F, 1, 4, 1);
      Box_3.setRotationPoint(3F, -17F, -4.5F);
      Box_3.setTextureSize(512, 512);
      Box_3.mirror = true;
      setRotation(Box_3, 0F, 0F, 0F);
      Box_4 = new ModelRenderer(this, 49, 1);
      Box_4.addBox(0F, 0F, 0F, 3, 2, 1);
      Box_4.setRotationPoint(4F, -13F, -4.5F);
      Box_4.setTextureSize(512, 512);
      Box_4.mirror = true;
      setRotation(Box_4, 0F, 0F, -3.211406F);
      Box_5 = new ModelRenderer(this, 65, 1);
      Box_5.addBox(0F, 0F, 0F, 3, 2, 1);
      Box_5.setRotationPoint(-4F, -15F, -4.5F);
      Box_5.setTextureSize(512, 512);
      Box_5.mirror = true;
      setRotation(Box_5, 0F, 0F, 0.0698132F);
      Box_6 = new ModelRenderer(this, 81, 1);
      Box_6.addBox(0F, 0F, 0F, 3, 1, 1);
      Box_6.setRotationPoint(-3.9F, -13F, -4.5F);
      Box_6.setTextureSize(512, 512);
      Box_6.mirror = true;
      setRotation(Box_6, 0F, 0F, 0.0698132F);
      Box_7 = new ModelRenderer(this, 97, 1);
      Box_7.addBox(0F, 0F, 0F, 3, 1, 1);
      Box_7.setRotationPoint(3.85F, -12F, -4.5F);
      Box_7.setTextureSize(512, 512);
      Box_7.mirror = true;
      setRotation(Box_7, 0F, 0F, -3.211406F);
      Box_8 = new ModelRenderer(this, 113, 1);
      Box_8.addBox(0F, 0F, 0F, 3, 1, 1);
      Box_8.setRotationPoint(3.75F, -11F, -4.5F);
      Box_8.setTextureSize(512, 512);
      Box_8.mirror = true;
      setRotation(Box_8, 0F, 0F, -3.211406F);
      Box_9 = new ModelRenderer(this, 129, 1);
      Box_9.addBox(0F, 0F, 0F, 3, 1, 1);
      Box_9.setRotationPoint(-3.8F, -12F, -4.5F);
      Box_9.setTextureSize(512, 512);
      Box_9.mirror = true;
      setRotation(Box_9, 0F, 0F, 0.0698132F);
      Box_10 = new ModelRenderer(this, 145, 1);
      Box_10.addBox(0F, 0F, 0F, 1, 7, 2);
      Box_10.setRotationPoint(-0.5F, -21.3F, -5F);
      Box_10.setTextureSize(512, 512);
      Box_10.mirror = true;
      setRotation(Box_10, 0F, 0F, 0F);
      Box_12 = new ModelRenderer(this, 153, 1);
      Box_12.addBox(0F, 0F, 0F, 8, 4, 1);
      Box_12.setRotationPoint(-4F, -20F, -4.5F);
      Box_12.setTextureSize(512, 512);
      Box_12.mirror = true;
      setRotation(Box_12, 0F, 0F, 0F);
      Box_13 = new ModelRenderer(this, 49, 1);
      Box_13.addBox(0F, 0F, 0F, 1, 8, 9);
      Box_13.setRotationPoint(-4.5F, -20F, -4.5F);
      Box_13.setTextureSize(512, 512);
      Box_13.mirror = true;
      setRotation(Box_13, 0F, 0F, 0F);
      Box_14 = new ModelRenderer(this, 177, 1);
      Box_14.addBox(0F, 0F, 0F, 8, 8, 1);
      Box_14.setRotationPoint(-4F, -20F, 3.5F);
      Box_14.setTextureSize(512, 512);
      Box_14.mirror = true;
      setRotation(Box_14, 0F, 0F, 0F);
      Box_15 = new ModelRenderer(this, 81, 1);
      Box_15.addBox(0F, 0F, 0F, 1, 8, 9);
      Box_15.setRotationPoint(3.5F, -20F, -4.5F);
      Box_15.setTextureSize(512, 512);
      Box_15.mirror = true;
      setRotation(Box_15, 0F, 0F, 0F);
      Box_16 = new ModelRenderer(this, 201, 1);
      Box_16.addBox(0F, 0F, 0F, 9, 1, 9);
      Box_16.setRotationPoint(-4.5F, -20.5F, -4.5F);
      Box_16.setTextureSize(512, 512);
      Box_16.mirror = true;
      setRotation(Box_16, 0F, 0F, 0F);
      Box_17 = new ModelRenderer(this, 241, 1);
      Box_17.addBox(0F, 0F, 0F, 1, 2, 7);
      Box_17.setRotationPoint(-0.5F, -22.3F, -3F);
      Box_17.setTextureSize(512, 512);
      Box_17.mirror = true;
      setRotation(Box_17, 0F, 0F, 0F);
      Box_18 = new ModelRenderer(this, 201, 1);
      Box_18.addBox(0F, 0F, 0F, 2, 2, 2);
      Box_18.setRotationPoint(4.5F, -18F, -1F);
      Box_18.setTextureSize(512, 512);
      Box_18.mirror = true;
      setRotation(Box_18, 0F, 0F, 0F);
      Box_19 = new ModelRenderer(this, 233, 1);
      Box_19.addBox(0F, 0F, 0F, 2, 2, 2);
      Box_19.setRotationPoint(-6.5F, -18F, -1F);
      Box_19.setTextureSize(512, 512);
      Box_19.mirror = true;
      setRotation(Box_19, 0F, 0F, 0F);
      Box_21 = new ModelRenderer(this, 257, 1);
      Box_21.addBox(0F, 0F, 0F, 2, 3, 1);
      Box_21.setRotationPoint(-8.1F, -16.6F, -0.5F);
      Box_21.setTextureSize(512, 512);
      Box_21.mirror = true;
      setRotation(Box_21, 0F, 0F, -0.2617994F);
      Box_23 = new ModelRenderer(this, 265, 1);
      Box_23.addBox(0F, 0F, 0F, 1, 6, 1);
      Box_23.setRotationPoint(5.5F, -24F, -0.5F);
      Box_23.setTextureSize(512, 512);
      Box_23.mirror = true;
      setRotation(Box_23, 0F, 0F, 0F);
      Box_24 = new ModelRenderer(this, 273, 1);
      Box_24.addBox(0F, 0F, 0F, 1, 3, 1);
      Box_24.setRotationPoint(5.5F, -24F, -0.5F);
      Box_24.setTextureSize(512, 512);
      Box_24.mirror = true;
      setRotation(Box_24, 0F, 0F, -0.4363323F);
      Box_25 = new ModelRenderer(this, 281, 1);
      Box_25.addBox(0F, 0F, 0F, 2, 3, 1);
      Box_25.setRotationPoint(5.5F, -22F, -0.5F);
      Box_25.setTextureSize(512, 512);
      Box_25.mirror = true;
      setRotation(Box_25, 0F, 0F, -0.1919862F);
      Box_26 = new ModelRenderer(this, 289, 1);
      Box_26.addBox(0F, 0F, 0F, 2, 4, 1);
      Box_26.setRotationPoint(6F, -20F, -0.5F);
      Box_26.setTextureSize(512, 512);
      Box_26.mirror = true;
      setRotation(Box_26, 0F, 0F, 0F);
      Box_27 = new ModelRenderer(this, 297, 1);
      Box_27.addBox(0F, 0F, 0F, 2, 3, 1);
      Box_27.setRotationPoint(6.1F, -17F, -0.5F);
      Box_27.setTextureSize(512, 512);
      Box_27.mirror = true;
      setRotation(Box_27, 0F, 0F, 0.2792527F);
      Box_28 = new ModelRenderer(this, 305, 1);
      Box_28.addBox(0F, 0F, 0F, 1, 6, 1);
      Box_28.setRotationPoint(-6.5F, -24F, -0.5F);
      Box_28.setTextureSize(512, 512);
      Box_28.mirror = true;
      setRotation(Box_28, 0F, 0F, 0F);
      Box_29 = new ModelRenderer(this, 313, 1);
      Box_29.addBox(0F, 0F, 0F, 1, 3, 1);
      Box_29.setRotationPoint(-6.45F, -24.43F, -0.5F);
      Box_29.setTextureSize(512, 512);
      Box_29.mirror = true;
      setRotation(Box_29, 0F, 0F, 0.4363323F);
      Box_30 = new ModelRenderer(this, 321, 1);
      Box_30.addBox(0F, 0F, 0F, 2, 3, 1);
      Box_30.setRotationPoint(-7.5F, -22.3F, -0.5F);
      Box_30.setTextureSize(512, 512);
      Box_30.mirror = true;
      setRotation(Box_30, 0F, 0F, 0.1919862F);
      Box_31 = new ModelRenderer(this, 329, 1);
      Box_31.addBox(0F, 0F, 0F, 2, 4, 1);
      Box_31.setRotationPoint(-8F, -20F, -0.5F);
      Box_31.setTextureSize(512, 512);
      Box_31.mirror = true;
      setRotation(Box_31, 0F, 0F, 0F);
      Box_32 = new ModelRenderer(this, 337, 1);
      Box_32.addBox(0F, 0F, 0F, 8, 7, 6);
      Box_32.setRotationPoint(-4F, -12F, -3F);
      Box_32.setTextureSize(512, 512);
      Box_32.mirror = true;
      setRotation(Box_32, 0F, 0F, 0F);
      Box_33 = new ModelRenderer(this, 369, 1);
      Box_33.addBox(0F, 0F, 0F, 6, 5, 7);
      Box_33.setRotationPoint(-3F, -11F, -3.4F);
      Box_33.setTextureSize(512, 512);
      Box_33.mirror = true;
      setRotation(Box_33, 0F, 0F, 0F);
      Box_34 = new ModelRenderer(this, 401, 1);
      Box_34.addBox(0F, 0F, 0F, 8, 4, 5);
      Box_34.setRotationPoint(-4F, -5F, -2.5F);
      Box_34.setTextureSize(512, 512);
      Box_34.mirror = true;
      setRotation(Box_34, 0F, 0F, 0F);
      Box_35 = new ModelRenderer(this, 433, 1);
      Box_35.addBox(0F, 0F, 0F, 4, 1, 4);
      Box_35.setRotationPoint(5F, -12.5F, -2F);
      Box_35.setTextureSize(512, 512);
      Box_35.mirror = true;
      setRotation(Box_35, 0F, 0F, 0F);
      Box_36 = new ModelRenderer(this, 457, 1);
      Box_36.addBox(0F, 0F, 0F, 4, 1, 4);
      Box_36.setRotationPoint(-9F, -12.5F, -2F);
      Box_36.setTextureSize(512, 512);
      Box_36.mirror = true;
      setRotation(Box_36, 0F, 0F, 0F);
      Box_37 = new ModelRenderer(this, 481, 1);
      Box_37.addBox(0F, 0F, 0F, 2, 4, 2);
      Box_37.setRotationPoint(7.5F, -13.5F, -1F);
      Box_37.setTextureSize(512, 512);
      Box_37.mirror = true;
      setRotation(Box_37, 0F, 0F, 0F);
      Box_38 = new ModelRenderer(this, 497, 1);
      Box_38.addBox(0F, 0F, 0F, 2, 4, 2);
      Box_38.setRotationPoint(-9.5F, -13.5F, -1F);
      Box_38.setTextureSize(512, 512);
      Box_38.mirror = true;
      setRotation(Box_38, 0F, 0F, 0F);
      Box_39 = new ModelRenderer(this, 369, 1);
      Box_39.addBox(0F, 0F, 0F, 1, 4, 2);
      Box_39.setRotationPoint(7.5F, -5.5F, -1F);
      Box_39.setTextureSize(512, 512);
      Box_39.mirror = true;
      setRotation(Box_39, 0F, 0F, 0F);
      Box_40 = new ModelRenderer(this, 393, 1);
      Box_40.addBox(0F, 0F, 0F, 1, 4, 2);
      Box_40.setRotationPoint(-8.5F, -5.5F, -1F);
      Box_40.setTextureSize(512, 512);
      Box_40.mirror = true;
      setRotation(Box_40, 0F, 0F, 0F);
      
      this.bipedHead.addChild(Box_0);
      this.bipedHead.addChild(Box_1);
      this.bipedHead.addChild(Box_2);
      this.bipedHead.addChild(Box_3);
      this.bipedHead.addChild(Box_4);
      this.bipedHead.addChild(Box_5);
      this.bipedHead.addChild(Box_6);
      this.bipedHead.addChild(Box_7);
      this.bipedHead.addChild(Box_8);
      this.bipedHead.addChild(Box_9);
      this.bipedHead.addChild(Box_10);
      this.bipedHead.addChild(Box_12);
      this.bipedHead.addChild(Box_13);
      this.bipedHead.addChild(Box_14);
      this.bipedHead.addChild(Box_15);
      this.bipedHead.addChild(Box_16);
      this.bipedHead.addChild(Box_17);
      this.bipedHead.addChild(Box_18);
      this.bipedHead.addChild(Box_19);
      this.bipedHead.addChild(Box_21);
      this.bipedHead.addChild(Box_23);
      this.bipedHead.addChild(Box_24);
      this.bipedHead.addChild(Box_25);
      this.bipedHead.addChild(Box_26);
      this.bipedHead.addChild(Box_27);
      this.bipedHead.addChild(Box_28);
      this.bipedHead.addChild(Box_29);
      this.bipedHead.addChild(Box_30);
      this.bipedHead.addChild(Box_31);
      this.bipedBody.addChild(Box_32);
      this.bipedBody.addChild(Box_33);
      this.bipedBody.addChild(Box_34);
      this.bipedRightArm.addChild(Box_36);
      this.bipedLeftArm.addChild(Box_35);
      this.bipedRightArm.addChild(Box_38);
      this.bipedLeftArm.addChild(Box_37);
      this.bipedRightArm.addChild(Box_40);
      this.bipedLeftArm.addChild(Box_39);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
        Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
        setRotationAngles(f, f1, f2, f3, f4, f5, entity);
        super.render(entity, f, f1, f2, f3, f4, f5);
    Box_0.render(f5);
    Box_1.render(f5);
    Box_2.render(f5);
    Box_3.render(f5);
    Box_4.render(f5);
    Box_5.render(f5);
    Box_6.render(f5);
    Box_7.render(f5);
    Box_8.render(f5);
    Box_9.render(f5);
    Box_10.render(f5);
    Box_12.render(f5);
    Box_13.render(f5);
    Box_14.render(f5);
    Box_15.render(f5);
    Box_16.render(f5);
    Box_17.render(f5);
    Box_18.render(f5);
    Box_19.render(f5);
    Box_21.render(f5);
    Box_23.render(f5);
    Box_24.render(f5);
    Box_25.render(f5);
    Box_26.render(f5);
    Box_27.render(f5);
    Box_28.render(f5);
    Box_29.render(f5);
    Box_30.render(f5);
    Box_31.render(f5);
    Box_32.render(f5);
    Box_33.render(f5);
    Box_34.render(f5);
    Box_35.render(f5);
    Box_36.render(f5);
    Box_37.render(f5);
    Box_38.render(f5);
    Box_39.render(f5);
    Box_40.render(f5);
    GL11.glPopMatrix();
  }
  
  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);
            Render render = RenderManager.instance
                    .getEntityRenderObject(entity);
            
            if (!(render instanceof RenderPlayer))
                    return;
            RenderPlayer r = (RenderPlayer)render;
  }

}

Ну и код самого итема на всякий.
Код:
package ru.ostrix.aod.common.item;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import ru.ostrix.aod.client.model.CrystalWhiteChestplateModel;

public class ItemWhiteCrystalChestplate extends ItemArmor {

    public ItemWhiteCrystalChestplate() {
        super(ArmorMaterial.DIAMOND, 0, 1);
        this.setUnlocalizedName("whitecrystal");
    }

    @Override
    @SideOnly(Side.CLIENT)
    public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) {
        if (armorSlot != 1)
            return null;
        CrystalWhiteChestplateModel model = new CrystalWhiteChestplateModel();
        model.bipedHead.showModel = false;
        model.bipedHeadwear.showModel = false;
        model.bipedBody.showModel = true;
        model.bipedBody.isHidden = true;
        model.bipedRightArm.showModel = false;
        model.bipedLeftArm.showModel = false;
        model.bipedRightLeg.showModel = false;
        model.bipedLeftLeg.showModel = false;
        model.isSneak = entityLiving.isSneaking();
        model.isRiding = entityLiving.isRiding();
        model.isChild = entityLiving.isChild();
        if(entityLiving instanceof EntityPlayer){
            model.aimedBow =((EntityPlayer)entityLiving).getItemInUseDuration() > 2;
        }
        return model;
        
    }
}

Надеюсь мне помогут...
 
nickita45 написал(а):
Ты куда смотришь? В теме 1.7.10, а ты на 1.6.4 кинул. И не надо говорить, что всё равно, ибо не всё равно, а из-за таких слов возникают подобные вопросы.

1. Меняй Offset, ибо для каждой части он должен быть в (0; 0; 0)
2.Руки и ноги должны быть привязаны отдельно и анимированы спец. кодом
 
AlexSocol написал(а):
nickita45 написал(а):
Ты куда смотришь? В теме 1.7.10, а ты на 1.6.4 кинул. И не надо говорить, что всё равно, ибо не всё равно, а из-за таких слов возникают подобные вопросы.

1. Меняй Offset, ибо для каждой части он должен быть в (0; 0; 0)
2.Руки и ноги должны быть привязаны отдельно и анимированы спец. кодом
Можешь скинуть этот спец код? И где менять offset?
 
яб на твоем месте
1)Воспользовался сраным переюзанным RenderPlayerApi,ведь там можно привязать определенную модель на разные части.
Удобнокодик
Код:
    if(par1AbstractClientPlayer.getCurrentArmor(2) != null){
            if(par1AbstractClientPlayer.getCurrentArmor(2).itemID == ItemList.item_armor_gas_mask.itemID){
                GL11.glPushMatrix();
                Minecraft.getMinecraft().getTextureManager().bindTexture(model_ga_texture);
                GL11.glTranslatef(0F, 0F, 0F);
                main.bipedBody.postRender(0.0625F);
                model_ga.renderArmor();
                GL11.glPopMatrix();
            }
        }
[merge_posts_bbcode]Добавлено: 06.03.2016 19:18:57[/merge_posts_bbcode]
 
:blink: Эм. А почему нельзя просто сделать по найду Хирурга? Он на 1.7.10. Спец код там же. 
А офсет в самой моделе. Вернее, не офсет, а анкер. Сует его в нуляру. Ну или двигай glTranslatef'ом
 
Назад
Сверху