Jump to content

[1.8] Having some more modeling issues -.-


Recommended Posts

Hey, I got a little issue going on with my model once again  >:( For some reason, I try to change the position of the jaw to be 3 blocks down below the top one, but it ends up moving down too much AND it moves forward instead of just down. It's suppose to look like this photo


width=800 height=450http://i1319.photobucket.com/albums/t661/Nova_Leary/Zinogre%20Normal_zpsjrvy7dyo.png[/img]


But it comes out like this

width=800 height=450http://i1319.photobucket.com/albums/t661/Nova_Leary/Zinogre%20Abnormal_zpsohuztygg.png[/img]



My Code:

package common.zeroquest.client.model;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelZinogre extends ModelBase {
// fields
ModelRenderer Tail1;
ModelRenderer Tail2;
ModelRenderer Tail3;
ModelRenderer Tail4;
ModelRenderer LS1;
ModelRenderer LS2;
ModelRenderer LS3;
ModelRenderer LS4;
ModelRenderer LS5;
ModelRenderer LS6;
ModelRenderer LS7;
ModelRenderer LS8;
ModelRenderer LS9;
ModelRenderer LS10;
ModelRenderer LS11;
ModelRenderer LS12;
ModelRenderer LS13;
ModelRenderer LS14;
ModelRenderer LS15;
ModelRenderer LS16;
ModelRenderer LS17;
ModelRenderer LS18;
ModelRenderer LS19;
ModelRenderer RS1;
ModelRenderer RS2;
ModelRenderer RS3;
ModelRenderer RS4;
ModelRenderer RS5;
ModelRenderer RS6;
ModelRenderer RS7;
ModelRenderer RS8;
ModelRenderer RS9;
ModelRenderer RS10;
ModelRenderer RS11;
ModelRenderer RS12;
ModelRenderer RS13;
ModelRenderer RS14;
ModelRenderer RS15;
ModelRenderer RS16;
ModelRenderer RS17;
ModelRenderer RS18;
ModelRenderer RS19;
ModelRenderer Neck2;
ModelRenderer Neck1;
ModelRenderer Belly;
ModelRenderer Mid;
ModelRenderer Hips;
ModelRenderer Ear1;
ModelRenderer Ear2;
ModelRenderer LH1;
ModelRenderer LH2;
ModelRenderer RH1;
ModelRenderer RH2;
ModelRenderer TJ1;
ModelRenderer TJ2;
ModelRenderer TJ3;
ModelRenderer BJ1;
ModelRenderer BJ2;
ModelRenderer BJ3;
ModelRenderer LHL1;
ModelRenderer LHL2;
ModelRenderer LHL3;
ModelRenderer LHL4;
ModelRenderer LHLC1;
ModelRenderer LHLC2;
ModelRenderer LHLC3;
ModelRenderer RHL1;
ModelRenderer RHL2;
ModelRenderer RHL3;
ModelRenderer RHL4;
ModelRenderer RHLC1;
ModelRenderer RHLC2;
ModelRenderer RHLC3;
ModelRenderer LFL1;
ModelRenderer LFL2;
ModelRenderer LFL3;
ModelRenderer LFLC1;
ModelRenderer LFLC2;
ModelRenderer LFLC3;
ModelRenderer RFL1;
ModelRenderer RFL2;
ModelRenderer RFL3;
ModelRenderer RFLC1;
ModelRenderer RFLC2;
ModelRenderer RFLC3;

public ModelZinogre() {
	textureWidth = 256;
	textureHeight = 128;

	Tail1 = new ModelRenderer(this, 127, 30);
	Tail1.addBox(-4F, -3F, 0F, 8, 5, 12);
	Tail1.setRotationPoint(-1.5F, 6F, 12F);
	setRotation(Tail1, 0F, 0F, 0F);
	Tail2 = new ModelRenderer(this, 127, 49);
	Tail2.addBox(-4F, -3F, 0F, 7, 4, 12);
	Tail2.setRotationPoint(0.5F, 0.5F, 9F);
	setRotation(Tail2, 0F, 0F, 0F);
	Tail3 = new ModelRenderer(this, 127, 68);
	Tail3.addBox(-4.5F, -3F, 0F, 6, 3, 12);
	Tail3.setRotationPoint(1F, 0.5F, 9F);
	setRotation(Tail3, 0F, 0F, 0F);
	Tail4 = new ModelRenderer(this, 127, 86);
	Tail4.addBox(-4F, -1F, 0F, 5, 2, 12);
	Tail4.setRotationPoint(0F, -1.5F, 10F);
	setRotation(Tail4, 0F, 0F, 0F);
	LS1 = new ModelRenderer(this, 81, 60);
	LS1.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS1.setRotationPoint(2.3F, 0F, 12F);
	setRotation(LS1, 0F, -1.003826F, 0F);
	LS2 = new ModelRenderer(this, 81, 60);
	LS2.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS2.setRotationPoint(2.3F, 0F, 10F);
	setRotation(LS2, 0F, -1.010807F, 0F);
	LS3 = new ModelRenderer(this, 81, 60);
	LS3.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS3.setRotationPoint(2.3F, 0F, 8F);
	setRotation(LS3, 0F, -1.003819F, 0F);
	LS4 = new ModelRenderer(this, 81, 60);
	LS4.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS4.setRotationPoint(2.3F, 0F, 6F);
	setRotation(LS4, 0F, -1.003819F, 0F);
	LS5 = new ModelRenderer(this, 81, 60);
	LS5.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS5.setRotationPoint(2.3F, 0F, 4F);
	setRotation(LS5, 0F, -1.003819F, 0F);
	LS6 = new ModelRenderer(this, 81, 60);
	LS6.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS6.setRotationPoint(2.5F, -1.5F, 12F);
	setRotation(LS6, 0F, -1.003819F, 0F);
	LS7 = new ModelRenderer(this, 81, 60);
	LS7.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS7.setRotationPoint(2.5F, -1.5F, 10F);
	setRotation(LS7, 0F, -1.003819F, 0F);
	LS8 = new ModelRenderer(this, 81, 60);
	LS8.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS8.setRotationPoint(2.5F, -1.5F, 8F);
	setRotation(LS8, 0F, -1.003819F, 0F);
	LS9 = new ModelRenderer(this, 81, 60);
	LS9.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS9.setRotationPoint(2.3F, -1.5F, 6F);
	setRotation(LS9, 0F, -1.003819F, 0F);
	LS10 = new ModelRenderer(this, 81, 60);
	LS10.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS10.setRotationPoint(2.5F, -1.5F, 4F);
	setRotation(LS10, 0F, -1.003819F, 0F);
	LS11 = new ModelRenderer(this, 81, 60);
	LS11.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS11.setRotationPoint(3.8F, -1F, 11F);
	setRotation(LS11, 0F, -1.003819F, 0F);
	LS12 = new ModelRenderer(this, 81, 60);
	LS12.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS12.setRotationPoint(3.8F, -1F, 9F);
	setRotation(LS12, 0F, -1.003819F, 0F);
	LS13 = new ModelRenderer(this, 81, 60);
	LS13.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS13.setRotationPoint(3.8F, -1F, 7F);
	setRotation(LS13, 0F, -1.003819F, 0F);
	LS14 = new ModelRenderer(this, 81, 60);
	LS14.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS14.setRotationPoint(3.8F, -1F, 5F);
	setRotation(LS14, 0F, -1.003819F, 0F);
	LS15 = new ModelRenderer(this, 81, 60);
	LS15.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS15.setRotationPoint(4.8F, -0.5F, 12F);
	setRotation(LS15, 0F, -1.003819F, 0F);
	LS16 = new ModelRenderer(this, 81, 60);
	LS16.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS16.setRotationPoint(4.8F, -0.5F, 10F);
	setRotation(LS16, 0F, -1.003819F, 0F);
	LS17 = new ModelRenderer(this, 81, 60);
	LS17.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS17.setRotationPoint(4.8F, -0.5F, 8F);
	setRotation(LS17, 0F, -1.003819F, 0F);
	LS18 = new ModelRenderer(this, 81, 60);
	LS18.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS18.setRotationPoint(4.8F, -0.5F, 6F);
	setRotation(LS18, 0F, -1.003819F, 0F);
	LS19 = new ModelRenderer(this, 81, 60);
	LS19.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	LS19.setRotationPoint(4.8F, -0.5F, 4F);
	setRotation(LS19, 0F, -1.003819F, 0F);
	RS1 = new ModelRenderer(this, 81, 60);
	RS1.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS1.setRotationPoint(-3.5F, 0F, 10F);
	setRotation(RS1, 0F, 1.003822F, 0F);
	RS2 = new ModelRenderer(this, 81, 60);
	RS2.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS2.setRotationPoint(-3.5F, 0F, 8F);
	setRotation(RS2, 0F, 1.003822F, 0F);
	RS3 = new ModelRenderer(this, 81, 60);
	RS3.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS3.setRotationPoint(-3.5F, 0F, 6F);
	setRotation(RS3, 0F, 1.003822F, 0F);
	RS4 = new ModelRenderer(this, 81, 60);
	RS4.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS4.setRotationPoint(-3.5F, 0F, 4F);
	setRotation(RS4, 0F, 1.003822F, 0F);
	RS5 = new ModelRenderer(this, 81, 60);
	RS5.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS5.setRotationPoint(-3.5F, 0F, 2F);
	setRotation(RS5, 0F, 1.003822F, 0F);
	RS6 = new ModelRenderer(this, 81, 60);
	RS6.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS6.setRotationPoint(-3.8F, -1.5F, 10F);
	setRotation(RS6, 0F, 1.003822F, 0F);
	RS7 = new ModelRenderer(this, 81, 60);
	RS7.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS7.setRotationPoint(-3.8F, -1.5F, 8F);
	setRotation(RS7, 0F, 1.003822F, 0F);
	RS8 = new ModelRenderer(this, 81, 60);
	RS8.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS8.setRotationPoint(-3.8F, -1.5F, 6F);
	setRotation(RS8, 0F, 1.003822F, 0F);
	RS9 = new ModelRenderer(this, 81, 60);
	RS9.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS9.setRotationPoint(-3.8F, -1.5F, 4F);
	setRotation(RS9, 0F, 1.003822F, 0F);
	RS10 = new ModelRenderer(this, 81, 60);
	RS10.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS10.setRotationPoint(-3.8F, -1.5F, 2F);
	setRotation(RS10, 0F, 1.003822F, 0F);
	RS11 = new ModelRenderer(this, 81, 60);
	RS11.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS11.setRotationPoint(-3.3F, -1F, 9F);
	setRotation(RS11, 0F, 1.003822F, 0F);
	RS12 = new ModelRenderer(this, 81, 60);
	RS12.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS12.setRotationPoint(-3.3F, -1F, 7F);
	setRotation(RS12, 0F, 1.003822F, 0F);
	RS13 = new ModelRenderer(this, 81, 60);
	RS13.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS13.setRotationPoint(-3.3F, -1F, 5F);
	setRotation(RS13, 0F, 1.003822F, 0F);
	RS14 = new ModelRenderer(this, 81, 60);
	RS14.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS14.setRotationPoint(-3.3F, -1F, 3F);
	setRotation(RS14, 0F, 1.003822F, 0F);
	RS15 = new ModelRenderer(this, 81, 60);
	RS15.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS15.setRotationPoint(-3.3F, -0.5F, 10F);
	setRotation(RS15, 0F, 1.003822F, 0F);
	RS16 = new ModelRenderer(this, 81, 60);
	RS16.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS16.setRotationPoint(-3.3F, -0.5F, 8F);
	setRotation(RS16, 0F, 1.003822F, 0F);
	RS17 = new ModelRenderer(this, 81, 60);
	RS17.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS17.setRotationPoint(-3.3F, -0.5F, 6F);
	setRotation(RS17, 0F, 1.003822F, 0F);
	RS18 = new ModelRenderer(this, 81, 60);
	RS18.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS18.setRotationPoint(-3.3F, -0.5F, 4F);
	setRotation(RS18, 0F, 1.003822F, 0F);
	RS19 = new ModelRenderer(this, 81, 60);
	RS19.addBox(-3F, -0.5F, -0.5F, 3, 1, 1);
	RS19.setRotationPoint(-3.3F, -0.5F, 2F);
	setRotation(RS19, 0F, 1.003822F, 0F);

	Neck1 = new ModelRenderer(this, 33, 0);
	Neck1.addBox(-5F, -5F, -9F, 7, 9, 10);
	Neck1.setRotationPoint(0F, 2.5F, -24F);
	setRotation(Neck1, -0.5205006F, 0F, 0F);
	Neck2 = new ModelRenderer(this, 0, 0);
	Neck2.addBox(-5F, -5F, -9F, 6, 7, 10);
	Neck2.setRotationPoint(0.5F, 1.5F, -6F);
	setRotation(Neck2, -0.1115358F, 0F, 0F);
	Belly = new ModelRenderer(this, 68, 0);
	Belly.addBox(-6F, -6F, 0F, 10, 13, 14);
	Belly.setRotationPoint(-0.5F, 1F, -25F);
	Belly.setTextureSize(256, 128);
	Belly.mirror = true;
	setRotation(Belly, -0.2602503F, 0F, 0F);
	Mid = new ModelRenderer(this, 117, 0);
	Mid.addBox(-6F, -6F, 0F, 10, 11, 17);
	Mid.setRotationPoint(-0.5F, 5.5F, -13F);
	Mid.setTextureSize(256, 128);
	Mid.mirror = true;
	setRotation(Mid, -0.1115358F, 0F, 0F);
	Hips = new ModelRenderer(this, 81, 37);
	Hips.addBox(-6F, -6F, 0F, 10, 11, 11);
	Hips.setRotationPoint(-0.5F, 7.5F, 3F);
	Hips.setTextureSize(256, 128);
	Hips.mirror = true;
	setRotation(Hips, 0F, 0F, 0F);
	Ear1 = new ModelRenderer(this, 99, 69);
	Ear1.addBox(0F, -1F, 0F, 1, 2, 6);
	Ear1.setRotationPoint(0.5F, -7F, -36F);
	Ear1.setTextureSize(256, 128);
	Ear1.mirror = true;
	setRotation(Ear1, 0.9666439F, 0F, 0F);
	Ear2 = new ModelRenderer(this, 99, 60);
	Ear2.addBox(-1F, -1F, 0F, 1, 2, 6);
	Ear2.setRotationPoint(-3.5F, -7F, -36F);
	Ear2.setTextureSize(256, 128);
	Ear2.mirror = true;
	setRotation(Ear2, 0.9666506F, 0F, 0F);
	LH1 = new ModelRenderer(this, 36, 54);
	LH1.addBox(-0.5F, -1.5F, -5F, 2, 2, 5);
	LH1.setRotationPoint(0.2F, -8F, -36F);
	LH1.setTextureSize(256, 128);
	LH1.mirror = true;
	setRotation(LH1, -0.7063936F, 0F, 0F);
	LH2 = new ModelRenderer(this, 36, 62);
	LH2.addBox(-0.5F, -0.5F, -3F, 1, 1, 4);
	LH2.setRotationPoint(0.7F, -11.3F, -39F);
	LH2.setTextureSize(256, 128);
	LH2.mirror = true;
	setRotation(LH2, -0.4833219F, 0F, 0F);
	RH1 = new ModelRenderer(this, 36, 54);
	RH1.addBox(-1.5F, -1.5F, -5F, 2, 2, 5);
	RH1.setRotationPoint(-2.8F, -8F, -36F);
	RH1.setTextureSize(256, 128);
	RH1.mirror = true;
	setRotation(RH1, -0.7063936F, 0F, 0F);
	RH2 = new ModelRenderer(this, 36, 62);
	RH2.addBox(-0.5F, -0.5F, -3F, 1, 1, 4);
	RH2.setRotationPoint(-3.3F, -11.3F, -39F);
	RH2.setTextureSize(256, 128);
	RH2.mirror = true;
	setRotation(RH2, -0.4833219F, 0F, 0F);

	TJ1 = new ModelRenderer(this, 25, 70);
	TJ1.addBox(-0.5F, -1.5F, -9F, 2, 2, 9);
	TJ1.setRotationPoint(2F, 0F, 0F);
	setRotation(TJ1, 0F, 0.2230655F, 0F);
	TJ1.mirror = false;
	TJ2 = new ModelRenderer(this, 0, 70);
	TJ2.addBox(-0.5F, -1.5F, -10F, 2, 2, 10);
	TJ2.setRotationPoint(-2.5F, -3F, -8F);
	setRotation(TJ2, 0.6320364F, 0F, 0F);
	TJ3 = new ModelRenderer(this, 0, 83);
	TJ3.addBox(-1.5F, -1.5F, -9F, 2, 2, 9);
	TJ3.setRotationPoint(-1F, 0F, 0F);
	setRotation(TJ3, 0F, -0.2230717F, 0F);
	BJ1 = new ModelRenderer(this, 75, 63);
	BJ1.addBox(-0.5F, -1.5F, -9F, 2, 3, 9);
	BJ1.setRotationPoint(2F, 0F, 0F);
	setRotation(BJ1, 0F, 0.2230655F, 0F);
	BJ2 = new ModelRenderer(this, 55, 49);
	BJ2.addBox(-0.5F, -1.5F, -10F, 2, 3, 10);
	BJ2.setRotationPoint(-2.5F, 0F, -8F); <<<< This is the trouble here
	setRotation(BJ2, 0.6320364F, 0F, 0F);
	BJ3 = new ModelRenderer(this, 52, 63);
	BJ3.addBox(-1.5F, -1.5F, -9F, 2, 3, 9);
	BJ3.setRotationPoint(-1F, 0F, 0F);
	setRotation(BJ3, 0F, -0.2230717F, 0F);

	LHL1 = new ModelRenderer(this, 67, 28);
	LHL1.addBox(-2F, 0F, -3F, 4, 10, 7);
	LHL1.setRotationPoint(4F, 5.8F, 9F);
	setRotation(LHL1, 0F, 0F, 0F);
	LHL2 = new ModelRenderer(this, 21, 38);
	LHL2.addBox(-2F, 0F, -3F, 4, 4, 11);
	LHL2.setRotationPoint(0F, 7.2F, 1.4F);
	setRotation(LHL2, -0.3717861F, 0F, 0F);
	LHL3 = new ModelRenderer(this, 19, 54);
	LHL3.addBox(-2F, 0F, -3F, 4, 8, 4);
	LHL3.setRotationPoint(0F, 0.4F, 7.2F);
	setRotation(LHL3, 0.3717861F, 0F, 0F);
	LHL4 = new ModelRenderer(this, 90, 28);
	LHL4.addBox(-2.5F, 0F, -4.5F, 5, 2, 6);
	LHL4.setRotationPoint(0F, 6F, 0F);
	setRotation(LHL4, 0F, 0F, 0F);
	LHLC1 = new ModelRenderer(this, 46, 20);
	LHLC1.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	LHLC1.setRotationPoint(-2F, 1F, -5F); //
	setRotation(LHLC1, 0.3717861F, 0F, 0F);
	LHLC2 = new ModelRenderer(this, 46, 20);
	LHLC2.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	LHLC2.setRotationPoint(0F, 1F, -5F); //
	setRotation(LHLC2, 0.3717861F, 0F, 0F);
	LHLC3 = new ModelRenderer(this, 46, 20);
	LHLC3.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	LHLC3.setRotationPoint(2F, 1F, -5F);//
	setRotation(LHLC3, 0.3717861F, 0F, 0F);
	RHL1 = new ModelRenderer(this, 21, 20);
	RHL1.addBox(-2F, 0F, -3F, 4, 10, 7);
	RHL1.setRotationPoint(-7F, 5.8F, 9F);
	setRotation(RHL1, 0F, 0F, 0F);
	RHL2 = new ModelRenderer(this, 21, 38);
	RHL2.addBox(-2F, 0F, -3F, 4, 4, 11);
	RHL2.setRotationPoint(0F, 7.2F, 1.4F);
	setRotation(RHL2, -0.3717861F, 0F, 0F);
	RHL3 = new ModelRenderer(this, 19, 54);
	RHL3.addBox(-2F, 0F, -3F, 4, 8, 4);
	RHL3.setRotationPoint(0F, 0.4F, 7.2F);
	setRotation(RHL3, 0.3717861F, 0F, 0F);
	RHL4 = new ModelRenderer(this, 90, 28);
	RHL4.addBox(-2.5F, 0F, -4.5F, 5, 2, 6);
	RHL4.setRotationPoint(0F, 6F, 0F);
	setRotation(RHL4, 0F, 0F, 0F);
	RHLC1 = new ModelRenderer(this, 46, 20);
	RHLC1.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	RHLC1.setRotationPoint(-2F, 1F, -5F);
	setRotation(RHLC1, 0.3717861F, 0F, 0F);
	RHLC2 = new ModelRenderer(this, 46, 20);
	RHLC2.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	RHLC2.setRotationPoint(0F, 1F, -5F);
	setRotation(RHLC2, 0.3717861F, 0F, 0F);
	RHLC3 = new ModelRenderer(this, 46, 20);
	RHLC3.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	RHLC3.setRotationPoint(2F, 1F, -5F);
	setRotation(RHLC3, 0.3717861F, 0F, 0F);
	LFL1 = new ModelRenderer(this, 46, 29);
	LFL1.addBox(-2F, 0F, -3F, 4, 13, 6);
	LFL1.setRotationPoint(4F, 2F, -18F);
	setRotation(LFL1, 0.7063936F, 0F, 0F);
	LFL2 = new ModelRenderer(this, 0, 38);
	LFL2.addBox(-2F, 0F, -3F, 4, 14, 6);
	LFL2.setRotationPoint(0F, 11F, 0.7F);
	setRotation(LFL2, -0.7063936F, 0F, 0F);
	LFL3 = new ModelRenderer(this, 0, 59);
	LFL3.addBox(-2.5F, 0F, -4.5F, 5, 2, ;
	LFL3.setRotationPoint(0F, 12F, 0F);
	setRotation(LFL3, 0F, 0F, 0F);
	LFLC1 = new ModelRenderer(this, 46, 20);
	LFLC1.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	LFLC1.setRotationPoint(-2F, 1F, -4.5F);
	setRotation(LFLC1, 0.3717861F, 0F, 0F);
	LFLC2 = new ModelRenderer(this, 46, 20);
	LFLC2.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	LFLC2.setRotationPoint(0F, 1F, -4.5F);
	setRotation(LFLC2, 0.3717861F, 0F, 0F);
	LFLC3 = new ModelRenderer(this, 46, 20);
	LFLC3.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	LFLC3.setRotationPoint(2F, 1F, -4.5F);
	setRotation(LFLC3, 0.3717861F, 0F, 0F);
	RFL1 = new ModelRenderer(this, 0, 18);
	RFL1.addBox(-2F, 0F, -3F, 4, 13, 6);
	RFL1.setRotationPoint(-7F, 2F, -18F);
	setRotation(RFL1, 0.7063936F, 0F, 0F);
	RFL2 = new ModelRenderer(this, 0, 38);
	RFL2.addBox(-2F, 0F, -3F, 4, 14, 6);
	RFL2.setRotationPoint(0F, 11F, 0.7F);
	setRotation(RFL2, -0.7063936F, 0F, 0F);
	RFL3 = new ModelRenderer(this, 0, 59);
	RFL3.addBox(-2.5F, 0F, -4.5F, 5, 2, ;
	RFL3.setRotationPoint(0F, 12F, 0F);
	setRotation(RFL3, 0F, 0F, 0F);
	RFLC1 = new ModelRenderer(this, 46, 20);
	RFLC1.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	RFLC1.setRotationPoint(-2F, 1F, -4.5F);
	setRotation(RFLC1, 0.3717861F, 0F, 0F);
	RFLC2 = new ModelRenderer(this, 46, 20);
	RFLC2.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	RFLC2.setRotationPoint(0F, 1F, -4.5F);
	setRotation(RFLC2, 0.3717861F, 0F, 0F);
	RFLC3 = new ModelRenderer(this, 46, 20);
	RFLC3.addBox(-0.5F, -1F, -1F, 1, 2, 2);
	RFLC3.setRotationPoint(2F, 1F, -4.5F);
	setRotation(RFLC3, 0.3717861F, 0F, 0F);

	// Head\\

	/* TJ1.addChild(LH1);
	 RH1.addChild(RH2); */

	// Front Legs\\

	// Back Legs\\

	// Tail\\

public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
	super.render(entity, f, f1, f2, f3, f4, f5);
	this.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
	GL11.glScalef(2.6F, 2.6F, 2.6F);
	GL11.glTranslatef(0.0F, -0.9F, 0.0F);



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);



I've changed several times, and it still moves forward or back too much, even though I do not touch any of the other coordinates

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

  • Replies 78
  • Created
  • Last Reply

Top Posters In This Topic

If you ever have a model piece moving in more direction than one from just changing one coordinate, it's because you have rotated that piece somehow so it is no longer aligned with the x/y/z axes.


For example, if the jaw piece is rotate 45 degrees along the x axis so that it is now pointing between x and z, and you move its x coordinate, it will actually move half that distance along x, and the other half along z.


There is not much to be done for it other than play with the numbers until you get it right, or sit down and do some serious math (if you know how - I don't). Perhaps others may have better suggestions, but I really think you're going to have a lot of trial and error on your hand here.


Using Techne or some other modeling program can usually help you visualize what's going on, but, as you've discovered, it's not always one-to-one correspondence.

Link to comment
Share on other sites

If you want your model to move smoothly, you should be converting pieces into children anyway - all you need to do is subtract the offset points up the chain to get it back into the correct place, then animations (i.e. rotating pieces) becomes far simpler.


Rotating, btw, is what I would suggest rather than changing the offset, at least if what you are going for is a 'mouth opening' type of effect. Then you just say 'lowerJaw.rotationZ = 30F' or whatever and it should look pretty good if you have the rotation point in the right spot.

Link to comment
Share on other sites

This is just the acutally getting the mouth to set in the default position like in techne, I haven't put any animations yet. The part just isn't siting correctly on the model, when I move the part downward, it moves forward even though I don't change the z point

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Nvm, I finally got it to sit correctly. And now I got a question, how do I scale a part smaller? I want to very slightly scale the legs (RFL2, LFL2, RHL2 and RHL3, LHL2 and LHL3) like this person has their model: http://techne.zeux.me/324218e8

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

I can't do decimals on Techne, it only does whole numbers

Don't limit yourself to Techne -  you've got all that Java that you can do whatever the heck you want with, or you can search for another program that lets you do decimals, or you can scale your entire model by however much you need to get the legs looking right, and then glScale the entire thing to the right size within your render class.

Link to comment
Share on other sites

Thanks for trying to help guys! And I have one last question, is it possible to combine 3 models into one model class? I have an entity that can evolve, which changes it's physical appearance entirely every time it evolves (it has 3 forms, the unevolved form, the first stage evolve, and the final form; similar to that game Evolve). I already have 2 models inside the model already but this final form is much, MUCH larger than the other two

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Do you actually need to have all of the models together, or can you just have your entity renderer switch models as needed?


Combining models / rendering a transition between models is far more complicated than simply switching models, and I would only attempt it if it was really important for your entity to appear to transform, vs. if the entity just has 3 different evolution forms and the player doesn't really care about the transformation, just its current form.


Even if you are going to create a transition, you don't need the models to be combined into one - see IChun's Morph mod if you are really interested in working on such a transformation.

Link to comment
Share on other sites

I want the appearance to switch, the skin doesn't just change, but the entire model changes when the entity is evolved

You can change entire models within your render class just as easily as you can skins.


All you do is create a reference to each model when you construct the render class, then in doRender, use the entity parameter to figure out which evolved state it is in and choose the model accordingly (this.mainModel = differentModel or something like that).

Link to comment
Share on other sites

Is it possible for me to make a superclass renderer for all entites that extend to EntityZertumEntity (the superclass for my many types of Zertums that uses the AI from it)? And how do I put in the seperate models in the render class?

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Link to comment
Share on other sites

Is it possible for me to make a superclass renderer for all entites that extend to EntityZertumEntity (the superclass for my many types of Zertums that uses the AI from it)? And how do I put in the seperate models in the render class?

This is pretty basic Java:

public class YourRenderClass extends RenderWhatever {
  private final ModelBase[] models;
  public YourRenderClass(ModelBase ... models) {
     this.models = models; // now you have an array of models to choose from

  // Or, if you don't like arrays:
  private final ModelBase model1, model2, ... modelN;
  public YourRenderClass(ModelBase model1, ModelBase model2, ... ModelBase modelN) {
    this.model1 = model1;
    // etc.

  public void doRender(Entity entity, ... other args) {
     int modelIndex = ((YourEntity) entity).getCurrentEvolutionStage(); // this value needs to be known on the client as well as server
     // now you know which model to use
    this.mainModel = models[i]; // or make a switch if you went with option 2

That will work for any of your sub-entities that follow the same logic. You probably want to brush up on Object-Oriented programming if the above doesn't make sense to you.


EDIT in reply to your last reply: if you are having troubles with such simple issues as how to make a boolean method, you need to take the time to properly learn Java or any other OO language. That's just a fact of programming life that you're going to have to come to grips with.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • The crash log keeps saying something about the tick rate. Can someone please help me fix?   ---- Minecraft Crash Report ---- // Everything's going to plan. No, really, that was supposed to happen. Time: 2024-06-21 16:24:55 Description: Exception in server tick loop java.lang.NullPointerException: Cannot invoke "com.cobblemon.mod.common.api.conditional.RegistryLikeCondition.fits(Object, net.minecraft.core.Registry)" because "condition" is null at com.cobblemon.mod.common.api.spawning.condition.SpawningCondition.fits(SpawningCondition.java:85) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.condition.AreaTypeSpawningCondition.fits(AreaTypeSpawningCondition.java:30) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.condition.GroundedTypeSpawningCondition.fits(GroundedTypeSpawningCondition.java:28) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.condition.GroundedTypeSpawningCondition.fits(GroundedTypeSpawningCondition.java:24) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.condition.SpawningCondition.isSatisfiedBy(SpawningCondition.java:68) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.detail.SpawnDetail.isSatisfiedBy(SpawnDetail.java:78) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.spawner.Spawner$DefaultImpls.getMatchingSpawns(Spawner.java:42) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner.getMatchingSpawns(TickingSpawner.java:31) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.selection.FlatContextWeightedSelector.getSelectionData(FlatContextWeightedSelector.java:79) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.selection.FlatContextWeightedSelector.select(FlatContextWeightedSelector.java:106) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.spawner.AreaSpawner.run(AreaSpawner.java:94) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner.tick(TickingSpawner.java:71) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.spawning.SpawnerManager.onServerTick(SpawnerManager.java:58) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.events.ServerTickHandler.onTick(ServerTickHandler.java:20) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.Cobblemon$initialize$7.invoke(Cobblemon.java:368) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.Cobblemon$initialize$7.invoke(Cobblemon.java:368) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.reactive.ObservableSubscription.handle(ObservableSubscription.java:16) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.common.api.reactive.SimpleObservable.emit(SimpleObservable.java:39) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.forge.event.ForgePlatformEventHandler.onTick(ForgePlatformEventHandler.kt:172) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading} at com.cobblemon.mod.forge.event.__ForgePlatformEventHandler_onTick_ServerTickEvent.invoke(.dynamic) ~[Cobblemon-forge-1.5.2+1.20.1.jar%23121!/:?] {re:classloading,pl:eventbus:B} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2352!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2352!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2352!/:?] {} at net.minecraftforge.event.ForgeEventFactory.onPostServerTick(ForgeEventFactory.java:950) ~[forge-1.20.1-47.2.17-universal.jar%23138!/:?] {re:classloading} at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:835) ~[server-1.20.1-20230612.114412-srg.jar%23133!/:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23133!/:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23133!/:?] {re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:840) ~[?:?] {re:mixin}
    • okay i've managed to fix it. looks like i made the stupidest error known to man. i hadn't installed forge to the client, which i assumed only affected the launcher which wouldn't affect me because i used a third party one. evidently not. the more you know
    • tried a fresh install of above and beyond with java 8 installed. got a popup that says "Error: Unable to access jarfile forge-1.16.5-36.2.8.jar". every good programmer knows getting a different error means you've made progress!
    • https://paste.ee/p/Ntb3m
    • Updated Graphics drivers, Tried reinstalling forge, but all to no avail. I am using the official curseforge launcher for it, but the minecraft launcher with forge gives me the same log anyway. Crash-Log: https://paste.ee/p/8Eyzz
  • Topics

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.