Как наложить текстуру на свою java модель ?

Версия Minecraft
1.12.2
85
3
3
Здравствуйте ,столкнулся с такой проблемой ,я прикрепил модель к игроку через addChild.
Но в игре текстура не отображается...
(Сразу скажу что мне нужно рендерить модели без использования брони) !

Вот код и скрин
Java:
            GL11.glPushMatrix(); {
                GL11.glPushMatrix();

                GL11.glRotatef(180F, 1F, 0F, 0F);

                ResourceLocation textures = new ResourceLocation("klnd:models/mayka.png");
                Minecraft.getMinecraft().renderEngine.bindTexture(textures);
                
                event.getRenderer().getMainModel().bipedBody.addChild(Mayka.bipedBody);
                event.getRenderer().getMainModel().bipedRightArm.addChild(Mayka.bipedRightArm);
                event.getRenderer().getMainModel().bipedLeftArm.addChild(Mayka.bipedLeftArm);

                GL11.glPopMatrix();
            } GL11.glPopMatrix();

Безымянный.png





Но когда я делаю вот так ,модель не двигается за игроком ,но текстура есть...

Вот код
Java:
            GL11.glPushMatrix(); {
                GL11.glPushMatrix();

                GL11.glRotatef(180F, 1F, 0F, 0F);

                ResourceLocation textures = new ResourceLocation("klnd:models/mayka.png");
                Minecraft.getMinecraft().renderEngine.bindTexture(textures);
                Mayka.bipedBody.render(0.0625F);


                GL11.glPopMatrix();
            } GL11.glPopMatrix();


Помогите пожалуйста..
 
1,200
37
237
А) У тебя модель точно рабочая?
Б) Ты ведь знаешь, что модель игрока рендерится только одной текстурой и двумя ее размерами (ну так задумано)?
В) Ты ведь настроил развертку модели?
Г) Почему бы не рендерить поверх игрока отдельно, а не приделывать к его модели еще части (которые, опять же, нужно разворачивать на самой текстуре игрока).
 

jopi

Попрошайка
1,421
30
260
1.6.4 и ниже(Если на 1.12 так-же то тебе повезло ибо я не сижу там) -
Если это броня то в классе брони есть метод, если нет то должен быть по сути рендер где ты это и должен делать
 
85
3
3
В САМОМ ФАЙЛЕ МОДЕЛИ. Ты в первом случае её не рендеришь, а во втором не закрепляешь.


Сделал вот так -
Java:
    @SubscribeEvent
    public void test(RenderPlayerEvent.Pre event)
    {
        EntityPlayer player = event.getEntityPlayer();
        float parTicks = event.getPartialRenderTick();

        ArmorCojanka Mayka = new ArmorCojanka(1);
        ResourceLocation texture = new ResourceLocation("klnd:models/mayka.png");

            event.getRenderer().getMainModel().bipedHead.showModel = false;
            event.getRenderer().getMainModel().bipedHeadwear.showModel = false;
            event.getRenderer().getMainModel().bipedBody.showModel = false;
            event.getRenderer().getMainModel().bipedRightArm.showModel = false;
            event.getRenderer().getMainModel().bipedLeftArm.showModel = false;
            event.getRenderer().getMainModel().bipedRightLeg.showModel = false;
            event.getRenderer().getMainModel().bipedLeftLeg.showModel = false;

            event.getRenderer().getMainModel().isSneak = player.isSneaking();
            event.getRenderer().getMainModel().isRiding = player.isRiding();
            event.getRenderer().getMainModel().isChild = player.isChild();

            GL11.glPushMatrix(); {
                GL11.glPushMatrix();

                GL11.glRotatef(180F, 1F, 0F, 0F);
                Mayka.render(player, player.limbSwing, player.limbSwingAmount, parTicks, player.rotationYaw, player.rotationPitch, 0.05F);

                GL11.glPopMatrix();
            } GL11.glPopMatrix();
    }



Класс с самой моделью -
Java:
public class ArmorCojanka extends ModelBiped {

    private final ModelRenderer body;
    private final ModelRenderer leftarm;
    private final ModelRenderer rightarm;

    private ResourceLocation texture = new ResourceLocation("klnd:models/mayka.png");

    private ArrayList<ModelRenderer> modelList = new ArrayList<ModelRenderer>();

    public ArmorCojanka(int type) {

        textureWidth = 64;
        textureHeight = 32;

        body = new ModelRenderer(this);
        body.setRotationPoint(0.0F, 0.0F, 0.0F);
        body.cubeList.add(new ModelBox(body, 19, 7, -4.0F, 0.025F, -2.1F, 2, 12, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 29, 7, 2.0F, 0.025F, -2.1F, 2, 12, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 19, 9, -1.0F, 2.025F, -2.1F, 2, 10, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 18, 8, -2.925F, 1.025F, -1.825F, 6, 11, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 19, 7, -4.125F, 0.025F, -1.85F, 2, 12, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 24, 7, 2.075F, 0.025F, -1.85F, 2, 12, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 21, 8, -2.0F, 1.025F, -2.1F, 1, 11, 4, 0.0F, true));
        body.cubeList.add(new ModelBox(body, 19, 8, 1.0F, 1.025F, -2.1F, 1, 11, 4, 0.0F, true));
        setRotation(body, 0F, 0F, 0F);

        leftarm = new ModelRenderer(this);
        leftarm.setRotationPoint(-22.0F, 0.0F, 0.0F);
        leftarm.cubeList.add(new ModelBox(leftarm, 19, 5, 9.0F, -2.025F, -2.0F, 4, 4, 4, 0.0F, false));
        leftarm.cubeList.add(new ModelBox(leftarm, 27, 13, 9.0F, -2.0F, -2.1F, 4, 5, 4, 0.0F, false));
        leftarm.cubeList.add(new ModelBox(leftarm, 19, 13, 9.0F, -2.0F, -1.9F, 4, 5, 4, 0.0F, false));
        leftarm.cubeList.add(new ModelBox(leftarm, 18, 15, 9.1F, -2.0F, -2.0F, 4, 5, 4, 0.0F, false));
        setRotation(leftarm, 0F, 0F, 0F);

        rightarm = new ModelRenderer(this);
        rightarm.setRotationPoint(22.0F, 0.0F, 0.0F);
        rightarm.cubeList.add(new ModelBox(rightarm, 28, 3, -13.0F, -2.025F, -2.0F, 4, 5, 4, 0.0F, false));
        rightarm.cubeList.add(new ModelBox(rightarm, 26, 11, -13.0F, -2.0F, -2.1F, 4, 5, 4, 0.0F, false));
        rightarm.cubeList.add(new ModelBox(rightarm, 20, 15, -13.0F, -2.0F, -1.9F, 4, 5, 4, 0.0F, false));
        rightarm.cubeList.add(new ModelBox(rightarm, 22, 15, -13.1F, -2.0F, -2.0F, 4, 5, 4, 0.0F, false));
        setRotation(rightarm, 0F, 0F, 0F);

        this.bipedBody.cubeList.clear();
        this.bipedRightArm.cubeList.clear();
        this.bipedLeftArm.cubeList.clear();

        switch (type)
        {
            case 0:
                break;
            case 1:
                this.bipedBody.addChild(body);
                this.bipedLeftArm.addChild(leftarm);
                this.bipedRightArm.addChild(rightarm);
                break;
            case 2:
                break;
            case 3:
                break;
        }
    }

    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
    {
        Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
        super.render(entity, f, f1, f2, f3, f4, f5);
        setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    }

    private void setRotation(ModelRenderer model, float x, float y, float z)
    {
        model.rotateAngleX = x;
        model.rotateAngleY = y;
        model.rotateAngleZ = z;
    }

    public void setRotationAngles(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
    {
        super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    }

}


вроде всё двигается1564823417459.png

Голова ,руки ,ноги двигаются.
Но body не вращается.

Что я делаю не так ?
Мне просто нужно привязать модель к частям тела ,без всяких ячеек с бронёй ,что бы на нём появлялась эта модель.
 
Сверху