Сделал в Blockbench'е броню (просто куча рандомных полосок), экспортировал .java-объект и сохранил текстуру. И вроде даже рендерится на игроке, но вот проблема - моделька просто висит на месте игрока, не следуя поворотам головы, рук и ног... В чём проблема и есть ли альтернативные способы создания/подключения моделей?
Скрины:
Код модели:
Скрины:
Код модели:
Java:
public class CustomArmorModel extends BipedModel<LivingEntity> {
private final ModelRenderer Head;
private final ModelRenderer Body;
private final ModelRenderer RightArm;
private final ModelRenderer LeftArm;
private final ModelRenderer RightLeg;
private final ModelRenderer LeftLeg;
public CustomArmorModel() {
super(1);
textureWidth = 64;
textureHeight = 64;
Head = new ModelRenderer(this);
Head.setRotationPoint(0.0F, 0.0F, 0.0F);
Head.setTextureOffset(32, 0).addBox(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, 0.5F, false);
Body = new ModelRenderer(this);
Body.setRotationPoint(0.0F, 0.0F, 0.0F);
Body.setTextureOffset(16, 32).addBox(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, 0.25F, false);
Body.setTextureOffset(0, 0).addBox(-1.0F, 2.0F, 3.0F, 1.0F, 1.0F, 1.0F, 0.0F, false);
Body.setTextureOffset(40, 32).addBox(-8.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.25F, false);
RightArm = new ModelRenderer(this);
RightArm.setRotationPoint(-5.0F, 2.0F, 0.0F);
LeftArm = new ModelRenderer(this);
LeftArm.setRotationPoint(5.0F, 2.0F, 0.0F);
LeftArm.setTextureOffset(48, 48).addBox(-1.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.25F, false);
RightLeg = new ModelRenderer(this);
RightLeg.setRotationPoint(-1.9F, 12.0F, 0.0F);
RightLeg.setTextureOffset(0, 32).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.25F, false);
LeftLeg = new ModelRenderer(this);
LeftLeg.setRotationPoint(1.9F, 12.0F, 0.0F);
LeftLeg.setTextureOffset(0, 48).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, 0.25F, false);
}
@Override
public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
Head.render(matrixStack, buffer, packedLight, packedOverlay);
Body.render(matrixStack, buffer, packedLight, packedOverlay);
RightArm.render(matrixStack, buffer, packedLight, packedOverlay);
LeftArm.render(matrixStack, buffer, packedLight, packedOverlay);
RightLeg.render(matrixStack, buffer, packedLight, packedOverlay);
LeftLeg.render(matrixStack, buffer, packedLight, packedOverlay);
}
}