Topic category: Help with Minecraft modding (Java Edition)
I want to know how to animate your custom made mods... I am trying to look for tutorials and programs which will work. If there is any, can you give me a link to the program and to a tutorial about the program? Right now I am using Tabula ,Techne , and MCanimations. But none of them seems to work. For example, for Tabula and Techne I can get the model into MCreator but when I tried to copy and paste the animation code from the tutorial it tells me that there is an error and I don't know why. For MCanimation I couldn't get the program to work inside MCreator since it wasn't a valid JavaFile. If there is any software that I can use for MCreator1.12.2 and a tutorial for it please help me. Or if anyone can tell me the reason why my program is not working please tell me the reason.
I will be putting the code which I tried to use to get my animation but failed.
package net.mcreator.testtest.entity;
import org.lwjgl.opengl.GL11;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.common.registry.EntityEntryBuilder;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.World;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.DamageSource;
import net.minecraft.item.Item;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAIPanic;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAILeapAtTarget;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.EnumCreatureAttribute;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.Entity;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.model.ModelBase;
import net.mcreator.testtest.ElementsTestTest;
import java.util.Iterator;
import java.util.ArrayList;
@ElementsTestTest.ModElement.Tag
public class EntityCustomMob1 extends ElementsTestTest.ModElement {
public static final int ENTITYID = 1;
public static final int ENTITYID_RANGED = 2;
public EntityCustomMob1(ElementsTestTest instance) {
super(instance, 1);
}
@Override
public void initElements() {
elements.entities.add(() -> EntityEntryBuilder.create().entity(EntityCustom.class)
.id(new ResourceLocation("testtest", "custommob1"), ENTITYID).name("custommob1").tracker(64, 3, true).egg(-1, -1).build());
}
@Override
public void init(FMLInitializationEvent event) {
Biome[] spawnBiomes = allbiomes(Biome.REGISTRY);
EntityRegistry.addSpawn(EntityCustom.class, 20, 3, 30, EnumCreatureType.MONSTER, spawnBiomes);
}
private Biome[] allbiomes(net.minecraft.util.registry.RegistryNamespaced<ResourceLocation, Biome> in) {
Iterator<Biome> itr = in.iterator();
ArrayList<Biome> ls = new ArrayList<Biome>();
while (itr.hasNext())
ls.add(itr.next());
return ls.toArray(new Biome[ls.size()]);
}
@SideOnly(Side.CLIENT)
@Override
public void preInit(FMLPreInitializationEvent event) {
RenderingRegistry.registerEntityRenderingHandler(EntityCustom.class, renderManager -> {
return new RenderLiving(renderManager, new ModelHMMade10(), 0.5f) {
protected ResourceLocation getEntityTexture(Entity entity) {
return new ResourceLocation("testtest:textures/mported_piskel_15.png");
}
};
});
}
public static class EntityCustom extends EntityCreature {
public EntityCustom(World world) {
super(world);
setSize(0.6f, 1.8f);
experienceValue = 5;
this.isImmuneToFire = false;
setNoAI(!true);
}
@Override
protected void initEntityAI() {
super.initEntityAI();
this.tasks.addTask(1, new EntityAIWander(this, 1));
this.tasks.addTask(2, new EntityAILookIdle(this));
this.tasks.addTask(3, new EntityAISwimming(this));
this.tasks.addTask(4, new EntityAILeapAtTarget(this, (float) 0.8));
this.tasks.addTask(5, new EntityAIPanic(this, 1.2));
this.targetTasks.addTask(6, new EntityAIHurtByTarget(this, false));
}
@Override
public EnumCreatureAttribute getCreatureAttribute() {
return EnumCreatureAttribute.UNDEFINED;
}
@Override
protected Item getDropItem() {
return null;
}
@Override
public net.minecraft.util.SoundEvent getAmbientSound() {
return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation(""));
}
@Override
public net.minecraft.util.SoundEvent getHurtSound(DamageSource ds) {
return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation("entity.generic.hurt"));
}
@Override
public net.minecraft.util.SoundEvent getDeathSound() {
return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation("entity.generic.death"));
}
@Override
protected float getSoundVolume() {
return 1.0F;
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
if (this.getEntityAttribute(SharedMonsterAttributes.ARMOR) != null)
this.getEntityAttribute(SharedMonsterAttributes.ARMOR).setBaseValue(0D);
if (this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED) != null)
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.3D);
if (this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH) != null)
this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10D);
if (this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE) != null)
this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(3D);
}
}
public static class ModelHMMade10 extends ModelBase {
public ModelRenderer LeftHair1;
public ModelRenderer RightHair1;
public ModelRenderer LeftHair2;
public ModelRenderer RightHair2;
public ModelRenderer LeftEar;
public ModelRenderer RightEar;
public ModelRenderer Skirt;
public ModelRenderer LeftLeg;
public ModelRenderer RightLeg;
public ModelRenderer RightArm;
public ModelRenderer Torso;
public ModelRenderer Head;
public ModelRenderer LeftArm;
public ModelRenderer LeftWing1;
public ModelRenderer LeftWing2;
public ModelRenderer LeftGem;
public ModelRenderer RightWing2;
public ModelRenderer CenterWing;
public ModelRenderer RightWing1;
public ModelRenderer RightGem;
public ModelHMMade10() {
this.textureWidth = 100;
this.textureHeight = 100;
this.LeftHair1 = new ModelRenderer(this, 81, 56);
this.LeftHair1.setRotationPoint(0.0F, 5.5F, 0.0F);
this.LeftHair1.addBox(3.3F, -7.6F, -1.0F, 2, 4, 2, 0.0F);
this.RightWing2 = new ModelRenderer(this, 5, 7);
this.RightWing2.setRotationPoint(-7.3F, 1.2F, 3.0F);
this.RightWing2.addBox(0.0F, 0.0F, 0.0F, 3, 16, 1, 0.0F);
this.setRotateAngle(RightWing2, 0.0F, 0.0F, 1.2409290981679681F);
this.LeftGem = new ModelRenderer(this, 77, 0);
this.LeftGem.setRotationPoint(8.5F, 7.8F, 3.0F);
this.LeftGem.addBox(0.0F, 0.0F, 0.0F, 3, 3, 1, 0.0F);
this.setRotateAngle(LeftGem, -0.025132741228718346F, 0.0F, -0.40142572795869574F);
this.LeftEar = new ModelRenderer(this, 77, 28);
this.LeftEar.setRotationPoint(0.0F, 5.5F, 0.0F);
this.LeftEar.addBox(-4.5F, -10.5F, -1.6F, 4, 4, 1, 0.0F);
this.setRotateAngle(LeftEar, 0.0F, 0.0F, 0.7853981633974483F);
this.LeftLeg = new ModelRenderer(this, 60, 86);
this.LeftLeg.setRotationPoint(1.5F, 16.0F, 0.0F);
this.LeftLeg.addBox(-1.5F, 0.0F, -1.5F, 3, 8, 3, 0.0F);
this.RightGem = new ModelRenderer(this, 8, 0);
this.RightGem.setRotationPoint(-10.0F, 6.9F, 3.0F);
this.RightGem.addBox(0.0F, 0.0F, 0.0F, 3, 3, 1, 0.0F);
this.setRotateAngle(RightGem, -0.025132741228718346F, 0.0F, 0.40142572795869574F);
this.Head = new ModelRenderer(this, 24, 14);
this.Head.setRotationPoint(0.0F, 5.5F, 0.0F);
this.Head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F);
this.Torso = new ModelRenderer(this, 30, 40);
this.Torso.setRotationPoint(-0.1F, 5.5F, 0.0F);
this.Torso.addBox(-3.4F, 0.0F, -3.0F, 7, 6, 6, 0.0F);
this.LeftWing2 = new ModelRenderer(this, 81, 7);
this.LeftWing2.setRotationPoint(6.9F, 3.9F, 3.0F);
this.LeftWing2.addBox(0.0F, 0.0F, 0.0F, 3, 15, 1, 0.0F);
this.setRotateAngle(LeftWing2, 0.0F, 0.0F, -1.2409290981679681F);
this.RightHair2 = new ModelRenderer(this, 6, 73);
this.RightHair2.setRotationPoint(0.0F, 5.5F, 0.0F);
this.RightHair2.addBox(-5.5F, -3.7F, -1.0F, 2, 2, 1, 0.0F);
this.RightWing1 = new ModelRenderer(this, 22, 4);
this.RightWing1.setRotationPoint(-7.8F, 4.0F, 3.0F);
this.RightWing1.addBox(0.0F, 0.0F, 0.0F, 3, 15, 1, 0.0F);
this.setRotateAngle(RightWing1, 0.0F, 0.0F, -1.239183768915974F);
this.CenterWing = new ModelRenderer(this, 42, 6);
this.CenterWing.setRotationPoint(0.0F, 5.1F, 3.1F);
this.CenterWing.addBox(0.0F, 0.0F, 0.0F, 4, 4, 1, 0.0F);
this.setRotateAngle(CenterWing, 0.0F, 0.0F, 0.7853981633974483F);
this.LeftHair2 = new ModelRenderer(this, 92, 62);
this.LeftHair2.setRotationPoint(0.0F, 5.5F, 0.0F);
this.LeftHair2.addBox(3.3F, -3.7F, -1.0F, 2, 2, 1, 0.0F);
this.RightHair1 = new ModelRenderer(this, 4, 57);
this.RightHair1.setRotationPoint(0.0F, 5.5F, 0.0F);
this.RightHair1.addBox(-5.5F, -7.6F, -1.0F, 2, 4, 2, 0.0F);
this.RightArm = new ModelRenderer(this, 17, 56);
this.RightArm.setRotationPoint(-3.5F, 6.3F, 0.0F);
this.RightArm.addBox(-2.0F, 0.0F, -1.0F, 2, 9, 2, 0.0F);
this.setRotateAngle(RightArm, 0.0F, 0.0F, 0.45378560551852565F);
this.RightEar = new ModelRenderer(this, 5, 28);
this.RightEar.setRotationPoint(0.0F, 5.5F, 0.0F);
this.RightEar.addBox(-10.5F, -4.5F, -1.6F, 4, 4, 1, 0.0F);
this.setRotateAngle(RightEar, 0.0F, 0.0F, 0.7853981633974483F);
this.LeftArm = new ModelRenderer(this, 64, 56);
this.LeftArm.setRotationPoint(3.0F, 6.6F, 0.0F);
this.LeftArm.addBox(0.5F, 0.0F, -1.0F, 2, 9, 2, 0.0F);
this.setRotateAngle(LeftArm, 0.0F, 0.0F, -0.45378560551852565F);
this.Skirt = new ModelRenderer(this, 19, 59);
this.Skirt.setRotationPoint(0.0F, 11.5F, 0.0F);
this.Skirt.addBox(-5.0F, 0.0F, -5.0F, 10, 8, 10, 0.0F);
this.LeftWing1 = new ModelRenderer(this, 63, 4);
this.LeftWing1.setRotationPoint(7.4F, 1.1F, 3.0F);
this.LeftWing1.addBox(0.0F, 0.0F, 0.0F, 3, 15, 1, 0.0F);
this.setRotateAngle(LeftWing1, 0.0F, 0.0F, 1.2409290981679681F);
this.RightLeg = new ModelRenderer(this, 15, 86);
this.RightLeg.setRotationPoint(-1.5F, 16.0F, 0.0F);
this.RightLeg.addBox(-1.5F, 0.0F, -1.5F, 3, 8, 3, 0.0F);
}
@Override
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
this.LeftHair1.render(f5);
GlStateManager.pushMatrix();
GlStateManager.translate(this.RightWing2.offsetX, this.RightWing2.offsetY, this.RightWing2.offsetZ);
GlStateManager.translate(this.RightWing2.rotationPointX * f5, this.RightWing2.rotationPointY * f5, this.RightWing2.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.1D);
GlStateManager.translate(-this.RightWing2.offsetX, -this.RightWing2.offsetY, -this.RightWing2.offsetZ);
GlStateManager.translate(-this.RightWing2.rotationPointX * f5, -this.RightWing2.rotationPointY * f5,
-this.RightWing2.rotationPointZ * f5);
this.RightWing2.render(f5);
GlStateManager.popMatrix();
GlStateManager.pushMatrix();
GlStateManager.translate(this.LeftGem.offsetX, this.LeftGem.offsetY, this.LeftGem.offsetZ);
GlStateManager.translate(this.LeftGem.rotationPointX * f5, this.LeftGem.rotationPointY * f5, this.LeftGem.rotationPointZ * f5);
GlStateManager.scale(0.6D, 0.8D, 1.0D);
GlStateManager.translate(-this.LeftGem.offsetX, -this.LeftGem.offsetY, -this.LeftGem.offsetZ);
GlStateManager.translate(-this.LeftGem.rotationPointX * f5, -this.LeftGem.rotationPointY * f5, -this.LeftGem.rotationPointZ * f5);
GlStateManager.enableBlend();
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GlStateManager.color(1.0F, 1.0F, 1.0F, 0.998F);
this.LeftGem.render(f5);
GlStateManager.disableBlend();
GlStateManager.popMatrix();
GlStateManager.pushMatrix();
GlStateManager.translate(this.LeftEar.offsetX, this.LeftEar.offsetY, this.LeftEar.offsetZ);
GlStateManager.translate(this.LeftEar.rotationPointX * f5, this.LeftEar.rotationPointY * f5, this.LeftEar.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.0D);
GlStateManager.translate(-this.LeftEar.offsetX, -this.LeftEar.offsetY, -this.LeftEar.offsetZ);
GlStateManager.translate(-this.LeftEar.rotationPointX * f5, -this.LeftEar.rotationPointY * f5, -this.LeftEar.rotationPointZ * f5);
this.LeftEar.render(f5);
GlStateManager.popMatrix();
this.LeftLeg.render(f5);
GlStateManager.pushMatrix();
GlStateManager.translate(this.RightGem.offsetX, this.RightGem.offsetY, this.RightGem.offsetZ);
GlStateManager.translate(this.RightGem.rotationPointX * f5, this.RightGem.rotationPointY * f5, this.RightGem.rotationPointZ * f5);
GlStateManager.scale(0.6D, 0.8D, 1.0D);
GlStateManager.translate(-this.RightGem.offsetX, -this.RightGem.offsetY, -this.RightGem.offsetZ);
GlStateManager.translate(-this.RightGem.rotationPointX * f5, -this.RightGem.rotationPointY * f5, -this.RightGem.rotationPointZ * f5);
this.RightGem.render(f5);
GlStateManager.popMatrix();
this.Head.render(f5);
this.Torso.render(f5);
GlStateManager.pushMatrix();
GlStateManager.translate(this.LeftWing2.offsetX, this.LeftWing2.offsetY, this.LeftWing2.offsetZ);
GlStateManager.translate(this.LeftWing2.rotationPointX * f5, this.LeftWing2.rotationPointY * f5, this.LeftWing2.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.1D);
GlStateManager.translate(-this.LeftWing2.offsetX, -this.LeftWing2.offsetY, -this.LeftWing2.offsetZ);
GlStateManager.translate(-this.LeftWing2.rotationPointX * f5, -this.LeftWing2.rotationPointY * f5, -this.LeftWing2.rotationPointZ * f5);
this.LeftWing2.render(f5);
GlStateManager.popMatrix();
this.RightHair2.render(f5);
GlStateManager.pushMatrix();
GlStateManager.translate(this.RightWing1.offsetX, this.RightWing1.offsetY, this.RightWing1.offsetZ);
GlStateManager.translate(this.RightWing1.rotationPointX * f5, this.RightWing1.rotationPointY * f5, this.RightWing1.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.1D);
GlStateManager.translate(-this.RightWing1.offsetX, -this.RightWing1.offsetY, -this.RightWing1.offsetZ);
GlStateManager.translate(-this.RightWing1.rotationPointX * f5, -this.RightWing1.rotationPointY * f5,
-this.RightWing1.rotationPointZ * f5);
this.RightWing1.render(f5);
GlStateManager.popMatrix();
GlStateManager.pushMatrix();
GlStateManager.translate(this.CenterWing.offsetX, this.CenterWing.offsetY, this.CenterWing.offsetZ);
GlStateManager.translate(this.CenterWing.rotationPointX * f5, this.CenterWing.rotationPointY * f5, this.CenterWing.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.1D);
GlStateManager.translate(-this.CenterWing.offsetX, -this.CenterWing.offsetY, -this.CenterWing.offsetZ);
GlStateManager.translate(-this.CenterWing.rotationPointX * f5, -this.CenterWing.rotationPointY * f5,
-this.CenterWing.rotationPointZ * f5);
this.CenterWing.render(f5);
GlStateManager.popMatrix();
this.LeftHair2.render(f5);
this.RightHair1.render(f5);
this.RightArm.render(f5);
GlStateManager.pushMatrix();
GlStateManager.translate(this.RightEar.offsetX, this.RightEar.offsetY, this.RightEar.offsetZ);
GlStateManager.translate(this.RightEar.rotationPointX * f5, this.RightEar.rotationPointY * f5, this.RightEar.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.0D);
GlStateManager.translate(-this.RightEar.offsetX, -this.RightEar.offsetY, -this.RightEar.offsetZ);
GlStateManager.translate(-this.RightEar.rotationPointX * f5, -this.RightEar.rotationPointY * f5, -this.RightEar.rotationPointZ * f5);
this.RightEar.render(f5);
GlStateManager.popMatrix();
this.LeftArm.render(f5);
this.Skirt.render(f5);
GlStateManager.pushMatrix();
GlStateManager.translate(this.LeftWing1.offsetX, this.LeftWing1.offsetY, this.LeftWing1.offsetZ);
GlStateManager.translate(this.LeftWing1.rotationPointX * f5, this.LeftWing1.rotationPointY * f5, this.LeftWing1.rotationPointZ * f5);
GlStateManager.scale(0.5D, 1.0D, 1.1D);
GlStateManager.translate(-this.LeftWing1.offsetX, -this.LeftWing1.offsetY, -this.LeftWing1.offsetZ);
GlStateManager.translate(-this.LeftWing1.rotationPointX * f5, -this.LeftWing1.rotationPointY * f5, -this.LeftWing1.rotationPointZ * f5);
this.LeftWing1.render(f5);
GlStateManager.popMatrix();
this.RightLeg.render(f5);
}
/**
* This is a helper function from Tabula to set the rotation of model parts
*/
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);
this.Head.rotateAngleY = f3 / (180F / (float) Math.PI);
this.Head.rotateAngleX = f4 / (180F / (float) Math.PI);
this.LeftEar.rotateAngleY = f3 / (180F / (float) Math.PI);
this.LeftEar.rotateAngleX = f4 / (180F / (float) Math.PI);
this.RightEar.rotateAngleY = f3 / (180F / (float) Math.PI);
this.RightEar.rotateAngleX = f4 / (180F / (float) Math.PI);
this.LeftHair1.rotateAngleY = f3 / (180F / (float) Math.PI);
this.LeftHair1.rotateAngleX = f4 / (180F / (float) Math.PI);
this.RightHair1.rotateAngleY = f3 / (180F / (float) Math.PI);
this.RightHair1.rotateAngleX = f4 / (180F / (float) Math.PI);
this.LeftHair2.rotateAngleY = f3 / (180F / (float) Math.PI);
this.LeftHair2.rotateAngleX = f4 / (180F / (float) Math.PI);
this.RightHair2.rotateAngleY = f3 / (180F / (float) Math.PI);
this.RightHair2.rotateAngleX = f4 / (180F / (float) Math.PI);
this.LeftLeg.rotateAngleX = MathHelper.cos (f * 1.0F) * -1.0F * f1;
this.RightLeg.rotateAngleX = MathHelper.cos (f * 1.0F) * 1.0F * f1;
this.RightArm.rotateAngleX = MathHelper.cos (f * 0.6662F + (float) Math.PI) * 2.0F * f1 * 0.5F;
this.LeftArm.rotateAngleX = MathHelper.cos (f * 0.6662F + (float) Math.PI) * 2.0F * f1 * 0.5F;
}
}
}
This is the error code which I got
:deobfCompileDummyTask
:deobfProvidedDummyTask
:sourceApiJava UP-TO-DATE
:compileApiJava NO-SOURCE
:processApiResources NO-SOURCE
:apiClasses UP-TO-DATE
:sourceMainJava
C:\Users\takum\MCreatorWorkspaces\testtest\build\sources\main\java\net\mcreator\testtest\entity\EntityCustomMob1.java:340: �G���[: ')'������܂���
super.setRotationAngles (f, f1, f2, f3, f4, f5 entity);
^
C:\Users\takum\MCreatorWorkspaces\testtest\build\sources\main\java\net\mcreator\testtest\entity\EntityCustomMob1.java:340: �G���[: ���̊J�n���s���ł�
super.setRotationAngles (f, f1, f2, f3, f4, f5 entity);
^
�G���[2��
:compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 0s
5 actionable tasks: 4 executed, 1 up-to-date
BUILD FAILED
Tabula generates outdated model code not compatible with newer Minecraft versions
So is there any program that I can use in order to create my model and animate it(Which works for 1.12.2)? If there is a tutorial for it, can you also send me a link for it?
I don't think any program with animation support is still maintained to my knowledge unfortunately.
So I can`t animate my mobs in MCreator right know? It doesn't really need to be a complicated animation. I just want my mob to be able to move its leg and head...
You can define these animations when importing model in MCreator.
How do you do that? Also what application should I use in order to create my model?
Blockbench
Thanks, I was able to make my model work and have simple animation.
This problem is already solved so no more comments, please.