[TUTORIAL] How to make 3D rendered armor, with moving arms, legs and head.

Started by StrawS on

Topic category: Advanced modding

Joined Jan 2017
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
[TUTORIAL] How to make 3D rendered armor, with moving arms, legs and head.
Mon, 12/16/2019 - 19:40 (edited)

First, I recommend using Block Bench to make your models, as Techne is outdated and broken, and doesn't seem to work for this. I won't be giving a guide on how to use Block Bench as there are tutorials for that already, just how to make your model work with armor.

When making your model, you want to make sure everything you make is within groups. And you must have a group for each body part, head, body, right arm, left arm, right leg, left leg. For the boots, you're going to want to make a separate group exactly the same as the legs. When modeling the actual armor pieces, you want to make sure each piece is under the corresponding group you want it to be moving with. For example a helmet you made would be under the head group.

It is also VERY important the group's origin points are the same as the player model, so that they rotate together.

I recommend making a plain biped model to help guide you, but it is not required.

Example of how the groups are supposed to be set up:

Example

For a player model, the origin points are:

  • Head and Body: 0, 24, 0
  • Right Arm: 5, 22, 0
  • Left Arm: -5, 22, 0
  • Right Leg: 2, 12, 0
  • Left Leg: -2, 12, 0

After you're done, export it, and when MCreator asks which parts to animate, you can skip that, as that doesn't do anything.

When making your armor, select the group for each corresponding body part. Don't worry about the arms for now, for the helmet choose the head group, for the body choose the body group, and for the legs and boots, choose the left leg group for "L" and the right leg group for "R"

Animating arms is little bit more complicated as it requires you to put two lines of code:

NOTE: You must change the part where it says "name of x here" to whatever you made the name of the group  for that body part in Block Bench.

Under this line of code:

armorModel.bipedBody = new NameOfModelHere().NameOfBodyHere;

Put in these two lines of code.

armorModel.bipedRightArm = new NameOfModelHere().NameOfRightArmHere;
armorModel.bipedLeftArm = new NameOfModelHere().NameOfLeftArmHere;

After that everything should be working and animated!

Example of it working on armor:

Example

If you have questions or need help leave a comment.

Edited by StrawS on Mon, 12/16/2019 - 19:40
Joined Apr 2021
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Could I have some help with…
Mon, 04/19/2021 - 17:14

Could I have some help with actually getting my blockbench project into MCreator?

Joined Apr 2018
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Can you make a tutorial…
Sun, 05/16/2021 - 11:12

Can you make a tutorial video about the whole process because I stucked in the part when you say export. Can you export a full armor from blockbench and put it into MCreator, how?

Joined Mar 2021
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
thanks, i learned nothing! :)
Mon, 07/19/2021 - 18:58

thanks, i learned nothing! :)

Joined Feb 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Hello! I have a question,…
Tue, 02/15/2022 - 21:19

Hello! I have a question, why is there no word when I select the model, and then after entering the game, the equipped items disappear. Do you know why?

Joined Mar 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Im using 2021.3 MCreator…
Mon, 03/28/2022 - 23:12

Im using 2021.3 MCreator. Where do I insert the code? This is the code.

package net.mcreator.mycatspaw.item;

/* imports omitted */

public abstract class ErfannsItem extends ArmorItem {

	public ErfannsItem(EquipmentSlot slot, Item.Properties properties) {
		super(new ArmorMaterial() {
			@Override
			public int getDurabilityForSlot(EquipmentSlot slot) {
				return new int[]{13, 15, 16, 11}[slot.getIndex()] * 25;
			}

			@Override
			public int getDefenseForSlot(EquipmentSlot slot) {
				return new int[]{2, 5, 6, 2}[slot.getIndex()];
			}

			@Override
			public int getEnchantmentValue() {
				return 9;
			}

			@Override
			public SoundEvent getEquipSound() {
				return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(""));
			}

			@Override
			public Ingredient getRepairIngredient() {
				return Ingredient.EMPTY;
			}

			@Override
			public String getName() {
				return "erfanns";
			}

			@Override
			public float getToughness() {
				return 0f;
			}

			@Override
			public float getKnockbackResistance() {
				return 0f;
			}
		}, slot, properties);
	}

	public static class Helmet extends ErfannsItem {

		public Helmet() {
			super(EquipmentSlot.HEAD, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT));

			setRegistryName("erfanns_helmet");
		}

		@Override
		public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String type) {
			return "my_cats_paw:textures/models/armor/_layer_1.png";
		}

	}

	public static class Chestplate extends ErfannsItem {

		public Chestplate() {
			super(EquipmentSlot.CHEST, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT));

			setRegistryName("erfanns_chestplate");
		}

		public void initializeClient(java.util.function.Consumer<net.minecraftforge.client.IItemRenderProperties> consumer) {
			consumer.accept(new IItemRenderProperties() {
				@Override
				@OnlyIn(Dist.CLIENT)
				public HumanoidModel getArmorModel(LivingEntity living, ItemStack stack, EquipmentSlot slot, HumanoidModel defaultModel) {
					HumanoidModel armorModel = new HumanoidModel(new ModelPart(Collections.emptyList(), Map.of("body",
							new Modelsteve(Minecraft.getInstance().getEntityModels().bakeLayer(Modelsteve.LAYER_LOCATION)).RightArm, "left_arm",
							new Modelsteve(Minecraft.getInstance().getEntityModels().bakeLayer(Modelsteve.LAYER_LOCATION)).RightArm, "right_arm",
							new Modelsteve(Minecraft.getInstance().getEntityModels().bakeLayer(Modelsteve.LAYER_LOCATION)).RightArm, "head",
							new ModelPart(Collections.emptyList(), Collections.emptyMap()), "hat",
							new ModelPart(Collections.emptyList(), Collections.emptyMap()), "right_leg",
							new ModelPart(Collections.emptyList(), Collections.emptyMap()), "left_leg",
							new ModelPart(Collections.emptyList(), Collections.emptyMap()))));
					armorModel.crouching = living.isShiftKeyDown();
					armorModel.riding = defaultModel.riding;
					armorModel.young = living.isBaby();
					return armorModel;
				}
			});
		}

		@Override
		public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String type) {
			return "my_cats_paw:textures/models/armor/_layer_1.png";
		}

	}

	public static class Leggings extends ErfannsItem {

		public Leggings() {
			super(EquipmentSlot.LEGS, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT));

			setRegistryName("erfanns_leggings");
		}

		@Override
		public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String type) {
			return "my_cats_paw:textures/models/armor/_layer_2.png";
		}

	}

	public static class Boots extends ErfannsItem {

		public Boots() {
			super(EquipmentSlot.FEET, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT));

			setRegistryName("erfanns_boots");
		}

		@Override
		public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String type) {
			return "my_cats_paw:textures/models/armor/_layer_1.png";
		}

	}

}

 

Joined Jun 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Hey StrawS, I just recently…
Tue, 06/07/2022 - 21:59

Hey StrawS, I just recently started trying to make a custom set of armor...it compiles just fine when i export from BBench, but when i try to import  it into MCr. it says  "Model name is not file name, but the name inside the java code (model class name)."

It's not using the names i set in BBench for the pieces, and I was only trying to complete the helm. It looks like you did a whole set in one shot...I want to be able to do that. I just need a little direction to figure out what I'm doing wrong...the video i watched "Chew" just did a hat and got it to work without any hitches and didnt even touch any code as far as his video would portray, though i dont think that's the cleanest most bug free way to do it. This is what is spits out when i export from BB.

// Made with Blockbench 4.2.4
// Exported for Minecraft version 1.7 - 1.12
// Paste this class into your mod and generate all required imports

public class ravenfrosthelm extends ModelBase {
    private final ModelRenderer ravenfrosthelm;
    private final ModelRenderer helmrside_r1;

    public ravenfrosthelm() {
        textureWidth = 64;
        textureHeight = 64;

        ravenfrosthelm = new ModelRenderer(this);
        ravenfrosthelm.setRotationPoint(0.0F, 0.0F, 0.0F);
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 19, 10, -5.0F, -8.0F, -4.0F, 1, 8, 8, 0.0F, false));
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 0, 0, -4.0F, -9.0F, -4.0F, 8, 1, 8, 0.0F, false));
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 0, 10, 4.0F, -8.0F, -4.0F, 1, 8, 8, 0.0F, false));
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 25, 0, -4.0F, -8.0F, -5.0F, 8, 4, 1, 0.0F, false));
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 38, 14, -4.0F, -3.0F, -5.0F, 3, 3, 1, 0.0F, false));
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 0, 37, 1.0F, -3.0F, -5.0F, 3, 3, 1, 0.0F, false));
        ravenfrosthelm.cubeList.add(new ModelBox(ravenfrosthelm, 0, 27, -4.0F, -8.0F, 4.0F, 8, 8, 1, 0.0F, false));

        helmrside_r1 = new ModelRenderer(this);
        helmrside_r1.setRotationPoint(0.0F, -7.0F, -2.0F);
        ravenfrosthelm.addChild(helmrside_r1);
        setRotationAngle(helmrside_r1, 0.3927F, 0.0F, 0.0F);
        helmrside_r1.cubeList.add(new ModelBox(helmrside_r1, 33, 22, -6.0F, 1.0F, -1.0F, 1, 1, 5, 0.0F, false));
        helmrside_r1.cubeList.add(new ModelBox(helmrside_r1, 11, 10, -6.0F, 0.0F, -1.0F, 1, 1, 6, 0.0F, false));
        helmrside_r1.cubeList.add(new ModelBox(helmrside_r1, 19, 27, -6.0F, -1.0F, 0.0F, 1, 1, 7, 0.0F, false));
        helmrside_r1.cubeList.add(new ModelBox(helmrside_r1, 14, 36, 5.0F, 1.0F, -1.0F, 1, 1, 5, 0.0F, false));
        helmrside_r1.cubeList.add(new ModelBox(helmrside_r1, 30, 6, 5.0F, 0.0F, -1.0F, 1, 1, 6, 0.0F, false));
        helmrside_r1.cubeList.add(new ModelBox(helmrside_r1, 29, 29, 5.0F, -1.0F, 0.0F, 1, 1, 7, 0.0F, false));
    }

    @Override
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
        ravenfrosthelm.render(f5);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.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.ravenfrosthelm.rotateAngleY = f3 / (180F / (float) Math.PI);
        this.ravenfrosthelm.rotateAngleX = f4 / (180F / (float) Math.PI);
        this.helmrside_r1.rotateAngleY = f3 / (180F / (float) Math.PI);
        this.helmrside_r1.rotateAngleX = f4 / (180F / (float) Math.PI);
    }
}

Joined Jun 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
P.S. I fixed the tags/labels…
Tue, 06/07/2022 - 22:06

P.S. I fixed the tags/labels of everything in the Blockbench file after that one...even did a little more work to the helm and tried to make sure everything was kosher, but still got hit with the same message

 

 

Joined Jun 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
I don't understand where to…
Mon, 06/13/2022 - 18:45

I don't understand where to put the two lines of code for the arms...I have everything working except the arms...they never show up.

public EoC() {
        textureWidth = 128;
        textureHeight = 128;

        Head = new ModelRenderer(this);
        Head.setRotationPoint(0.0F, 0.0F, 0.0F);
        Head.cubeList.add(new ModelBox(Head, 0, 36, -5.0F, -8.0F, -4.0F, 1, 8, 8, 0.0F, false));
        Head.cubeList.add(new ModelBox(Head, 0, 26, -4.0F, -9.0F, -4.0F, 8, 1, 8, 0.0F, false));
        Head.cubeList.add(new ModelBox(Head, 25, 32, 4.0F, -8.0F, -4.0F, 1, 8, 8, 0.0F, false));
        Head.cubeList.add(new ModelBox(Head, 28, 14, -4.0F, -8.0F, -5.0F, 8, 4, 1, 0.0F, false));
        Head.cubeList.add(new ModelBox(Head, 48, 62, -4.0F, -3.0F, -5.0F, 3, 3, 1, 0.0F, false));
        Head.cubeList.add(new ModelBox(Head, 46, 53, 1.0F, -3.0F, -5.0F, 3, 3, 1, 0.0F, false));
        Head.cubeList.add(new ModelBox(Head, 62, 0, -4.0F, -8.0F, 4.0F, 8, 8, 1, 0.0F, false));

        Head_r1 = new ModelRenderer(this);
        Head_r1.setRotationPoint(0.0F, -5.0F, -4.0F);
        Head.addChild(Head_r1);
        setRotationAngle(Head_r1, 0.2182F, 0.0F, 0.0F);
        Head_r1.cubeList.add(new ModelBox(Head_r1, 53, 62, 5.0F, -3.0F, 2.0F, 1, 1, 7, 0.0F, false));
        Head_r1.cubeList.add(new ModelBox(Head_r1, 66, 56, 5.0F, -2.0F, 1.0F, 1, 1, 6, 0.0F, false));
        Head_r1.cubeList.add(new ModelBox(Head_r1, 71, 17, 5.0F, -1.0F, 1.0F, 1, 1, 5, 0.0F, false));
        Head_r1.cubeList.add(new ModelBox(Head_r1, 63, 64, -6.0F, -3.0F, 2.0F, 1, 1, 7, 0.0F, false));
        Head_r1.cubeList.add(new ModelBox(Head_r1, 38, 70, -6.0F, -2.0F, 1.0F, 1, 1, 6, 0.0F, false));
        Head_r1.cubeList.add(new ModelBox(Head_r1, 53, 71, -6.0F, -1.0F, 1.0F, 1, 1, 5, 0.0F, false));

        Body = new ModelRenderer(this);
        Body.setRotationPoint(0.0F, 0.0F, 0.0F);
        Body.cubeList.add(new ModelBox(Body, 0, 14, -5.0F, 3.5F, -3.5F, 10, 4, 7, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 29, 20, -4.5F, 7.3125F, -3.125F, 9, 5, 6, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 0, 0, -6.0F, 0.5F, -4.0F, 12, 5, 8, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 77, 24, -5.5F, 0.0F, -4.375F, 4, 5, 1, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 75, 54, 1.5F, 0.0F, -4.375F, 4, 5, 1, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 57, 0, 0.5F, 0.25F, -4.375F, 1, 3, 1, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 55, 44, -1.5F, 0.25F, -4.375F, 1, 3, 1, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 34, 62, -0.5F, 0.4375F, -4.375F, 1, 2, 1, 0.0F, false));
        Body.cubeList.add(new ModelBox(Body, 8, 83, -4.125F, -0.625F, -3.0625F, 8, 3, 6, 0.0F, false));

        RightArm = new ModelRenderer(this);
        RightArm.setRotationPoint(-5.0F, 2.0F, 0.0F);
        RightArm.cubeList.add(new ModelBox(RightArm, 74, 36, -3.75F, -3.0F, -3.4375F, 4, 5, 1, 0.0F, false));
        RightArm.cubeList.add(new ModelBox(RightArm, 51, 53, -3.5F, 2.0F, -2.5F, 5, 3, 5, 0.0F, false));
        RightArm.cubeList.add(new ModelBox(RightArm, 30, 53, -3.375F, 7.1875F, -2.5F, 5, 3, 5, 0.0F, false));
        RightArm.cubeList.add(new ModelBox(RightArm, 25, 70, -4.75F, -3.0F, -2.5F, 1, 5, 5, 0.0F, false));
        RightArm.cubeList.add(new ModelBox(RightArm, 44, 32, -3.75F, -4.0F, -2.5F, 5, 6, 5, 0.0F, false));
        RightArm.cubeList.add(new ModelBox(RightArm, 66, 73, -3.75F, -3.0F, 2.5F, 4, 5, 1, 0.0F, false));

        RightArm_r1 = new ModelRenderer(this);
        RightArm_r1.setRotationPoint(-5.0F, -7.5F, 0.0F);
        RightArm.addChild(RightArm_r1);
        setRotationAngle(RightArm_r1, 0.0F, 0.0F, 0.7854F);
        RightArm_r1.cubeList.add(new ModelBox(RightArm_r1, 0, 0, 2.3375F, 1.7875F, -2.375F, 1, 5, 1, 0.0F, false));
        RightArm_r1.cubeList.add(new ModelBox(RightArm_r1, 45, 78, 2.3375F, 1.7875F, -0.5625F, 1, 7, 1, 0.0F, false));
        RightArm_r1.cubeList.add(new ModelBox(RightArm_r1, 0, 14, 0.3375F, 1.775F, -0.5625F, 1, 5, 1, 0.0F, false));
        RightArm_r1.cubeList.add(new ModelBox(RightArm_r1, 0, 26, 2.3375F, 1.775F, 1.25F, 1, 5, 1, 0.0F, false));
        RightArm_r1.cubeList.add(new ModelBox(RightArm_r1, 11, 36, 0.3375F, 1.75F, -2.375F, 1, 3, 1, 0.0F, false));
        RightArm_r1.cubeList.add(new ModelBox(RightArm_r1, 19, 43, 0.3052F, 1.7777F, 1.25F, 1, 3, 1, 0.0F, false));

        RightArm_r2 = new ModelRenderer(this);
        RightArm_r2.setRotationPoint(-2.5F, -3.5F, 0.0F);
        RightArm.addChild(RightArm_r2);
        setRotationAngle(RightArm_r2, 0.0F, 0.0F, 0.7854F);
        RightArm_r2.cubeList.add(new ModelBox(RightArm_r2, 19, 36, -4.4375F, -0.25F, -2.375F, 4, 1, 1, 0.0F, false));
        RightArm_r2.cubeList.add(new ModelBox(RightArm_r2, 46, 12, -4.4375F, -0.25F, -0.5625F, 4, 1, 1, 0.0F, false));
        RightArm_r2.cubeList.add(new ModelBox(RightArm_r2, 60, 47, -4.4375F, -0.25F, 1.25F, 4, 1, 1, 0.0F, false));

        LeftArm = new ModelRenderer(this);
        LeftArm.setRotationPoint(5.0F, 2.0F, 0.0F);
        LeftArm.cubeList.add(new ModelBox(LeftArm, 73, 64, -0.375F, -3.0F, 2.5F, 4, 5, 1, 0.0F, false));
        LeftArm.cubeList.add(new ModelBox(LeftArm, 41, 0, -1.375F, -4.0F, -2.5F, 5, 6, 5, 0.0F, false));
        LeftArm.cubeList.add(new ModelBox(LeftArm, 0, 73, -0.375F, -3.0F, -3.5F, 4, 5, 1, 0.0F, false));
        LeftArm.cubeList.add(new ModelBox(LeftArm, 12, 70, 3.625F, -3.0F, -2.5F, 1, 5, 5, 0.0F, false));
        LeftArm.cubeList.add(new ModelBox(LeftArm, 14, 49, -1.625F, 2.0F, -2.5F, 5, 3, 5, 0.0F, false));
        LeftArm.cubeList.add(new ModelBox(LeftArm, 39, 44, -1.6875F, 7.1875F, -2.5F, 5, 3, 5, 0.0F, false));

        LeftArm_r1 = new ModelRenderer(this);
        LeftArm_r1.setRotationPoint(2.5F, -3.5F, 0.0F);
        LeftArm.addChild(LeftArm_r1);
        setRotationAngle(LeftArm_r1, 0.0F, 0.0F, -0.7854F);
        LeftArm_r1.cubeList.add(new ModelBox(LeftArm_r1, 77, 31, 0.4375F, -0.25F, -2.375F, 4, 1, 1, 0.0F, false));
        LeftArm_r1.cubeList.add(new ModelBox(LeftArm_r1, 47, 71, 0.4375F, -0.25F, 1.25F, 4, 1, 1, 0.0F, false));
        LeftArm_r1.cubeList.add(new ModelBox(LeftArm_r1, 33, 70, 0.4375F, -0.25F, -0.5625F, 4, 1, 1, 0.0F, false));

        LeftArm_r2 = new ModelRenderer(this);
        LeftArm_r2.setRotationPoint(5.0F, -7.5F, 0.0F);
        LeftArm.addChild(LeftArm_r2);
        setRotationAngle(LeftArm_r2, 0.0F, 0.0F, -0.7854F);
        LeftArm_r2.cubeList.add(new ModelBox(LeftArm_r2, 30, 49, -1.3375F, 1.75F, -2.375F, 1, 3, 1, 0.0F, false));
        LeftArm_r2.cubeList.add(new ModelBox(LeftArm_r2, 0, 36, -3.3375F, 1.775F, 1.25F, 1, 5, 1, 0.0F, false));
        LeftArm_r2.cubeList.add(new ModelBox(LeftArm_r2, 55, 78, -1.3375F, 1.775F, -0.5625F, 1, 5, 1, 0.0F, false));
        LeftArm_r2.cubeList.add(new ModelBox(LeftArm_r2, 50, 78, -3.3375F, 1.7875F, -0.5625F, 1, 7, 1, 0.0F, false));
        LeftArm_r2.cubeList.add(new ModelBox(LeftArm_r2, 60, 78, -3.3375F, 1.7875F, -2.375F, 1, 5, 1, 0.0F, false));
        LeftArm_r2.cubeList.add(new ModelBox(LeftArm_r2, 47, 15, -1.3052F, 1.7777F, 1.25F, 1, 3, 1, 0.0F, false));

        RightLeg = new ModelRenderer(this);
        RightLeg.setRotationPoint(-1.9F, 12.0F, 0.0F);
        RightLeg.cubeList.add(new ModelBox(RightLeg, 60, 24, -2.0F, 0.0F, -2.0F, 4, 7, 4, 0.25F, false));

        LeftLeg = new ModelRenderer(this);
        LeftLeg.setRotationPoint(1.9F, 12.0F, 0.0F);
        LeftLeg.cubeList.add(new ModelBox(LeftLeg, 17, 58, -2.0F, 0.0F, -2.0F, 4, 7, 4, 0.25F, false));

        RightBoot = new ModelRenderer(this);
        RightBoot.setRotationPoint(-1.9F, 12.0F, 0.0F);
        RightBoot.cubeList.add(new ModelBox(RightBoot, 34, 62, -2.0F, 10.0F, -3.0F, 4, 2, 5, 0.25F, false));
        RightBoot.cubeList.add(new ModelBox(RightBoot, 67, 47, -2.0F, 7.5F, -2.0F, 4, 2, 4, 0.25F, false));

        RightBoot_r1 = new ModelRenderer(this);
        RightBoot_r1.setRotationPoint(1.9F, -17.0F, -4.0F);
        RightBoot.addChild(RightBoot_r1);
        setRotationAngle(RightBoot_r1, 0.2182F, 0.0F, 0.0F);
        RightBoot_r1.cubeList.add(new ModelBox(RightBoot_r1, 11, 36, -5.0F, 24.0F, -2.5F, 1, 1, 5, 0.0F, false));
        RightBoot_r1.cubeList.add(new ModelBox(RightBoot_r1, 73, 76, -5.0F, 25.0F, -3.5F, 1, 1, 4, 0.0F, false));
        RightBoot_r1.cubeList.add(new ModelBox(RightBoot_r1, 33, 0, -5.0F, 26.0F, -3.5F, 1, 1, 3, 0.0F, false));

        LeftBoot = new ModelRenderer(this);
        LeftBoot.setRotationPoint(1.9F, 12.0F, 0.0F);
        LeftBoot.cubeList.add(new ModelBox(LeftBoot, 60, 39, -2.0F, 10.0F, -3.0F, 4, 2, 5, 0.25F, false));
        LeftBoot.cubeList.add(new ModelBox(LeftBoot, 0, 66, -2.0F, 7.5F, -2.0F, 4, 2, 4, 0.25F, false));

        LeftBoot_r1 = new ModelRenderer(this);
        LeftBoot_r1.setRotationPoint(-1.9F, -17.0F, -4.0F);
        LeftBoot.addChild(LeftBoot_r1);
        setRotationAngle(LeftBoot_r1, 0.2182F, 0.0F, 0.0F);
        LeftBoot_r1.cubeList.add(new ModelBox(LeftBoot_r1, 36, 32, 4.0F, 26.0F, -3.5F, 1, 1, 3, 0.0F, false));
        LeftBoot_r1.cubeList.add(new ModelBox(LeftBoot_r1, 34, 78, 4.0F, 25.0F, -3.5F, 1, 1, 4, 0.0F, false));
        LeftBoot_r1.cubeList.add(new ModelBox(LeftBoot_r1, 71, 10, 4.0F, 24.0F, -2.5F, 1, 1, 5, 0.0F, false));
    }

    @Override
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
        Head.render(f5);
        Body.render(f5);
        RightArm.render(f5);
        LeftArm.render(f5);
        RightLeg.render(f5);
        LeftLeg.render(f5);
        RightBoot.render(f5);
        LeftBoot.render(f5);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }
}

Joined Sep 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
how do i open the premade…
Fri, 09/22/2023 - 07:36

how do i open the premade biped modle

Joined Jul 2024
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Thanks! BTW in newer…
Mon, 07/22/2024 - 20:38

Thanks! BTW in newer versions of MCreator you don't need to manually add the code you just have to choose the arm groups like the other ones so i just wanted to add that to help.

Joined Nov 2024
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
I don’t know why is not…
Tue, 11/05/2024 - 06:05

I don’t know why is not working, the texture look weird. Do we have to create a separate textures for each parts of the armor or make one texture for the whole armor