Модель персонажа

Как заменить модель стива на свою?
Какой нужно использовать ивент?
Если не трудно, то более менее подробно распишите.
Спасибо)
 
Можно просто обычным заменой рендера:
Код:
RenderingRegistry.registerEntityRenderingHandler(EntityPlayer.class, new RenderNewPlayer());
И новый класс рендера будет унаследована от RenderPlayer и рендеришь свою модель.
Либо с помощью эвента RenderPlayerEvent (или одно из его под-классов этого эвента). Но вот что делать именно с этим эвентом, я точно не знаю.
 
Такое дело:
Использовал я код из тутора.
Прокси
Код:
RenderingRegistry.registerEntityRenderingHandler(EntityPlayer.class, new RenderElf());
Рендер
Код:
public class RenderElf extends RenderPlayer
{
    private static final ResourceLocation DarkElf = new ResourceLocation(ModInfo.MODID + ":" + "textures/model/ElfModelF.png");
    public ModelBiped DarkElfModel;
    private static final String __OBFID = "CL_00001020";


    
    public RenderElf()
    {
        super();
        this.mainModel = new ModelBiped(0.0F);
        this.modelBipedMain = (ModelBiped) this.mainModel;
        this.modelArmorChestplate = new ModelBiped(1.0F);
        this.modelArmor = new ModelBiped(0.5F);
        this.DarkElfModel = new ElfModelF(0.5f);
    }
    
    @Override
    public void renderModel(EntityLivingBase entity, float par2, float par3, float par4, float par5, float par6, float par7)
    {

            ModelBiped modelBiped;
            for (int i = 0; i < 4; ++i)
            {
                modelBiped = this.DarkElfModel;
            
                GL11.glColor4f(1, 1, 1, 1);
                this.bindTexture(DarkElf);
                modelBiped.bipedHead.showModel = i == 0;
                modelBiped.bipedHeadwear.showModel = i == 0;
                modelBiped.bipedBody.showModel = i == 1 || i == 2;
                modelBiped.bipedRightArm.showModel = i == 1;
                modelBiped.bipedLeftArm.showModel = i == 1;
                modelBiped.bipedRightLeg.showModel = i == 2 || i == 3;
                modelBiped.bipedLeftLeg.showModel = i == 2 || i == 3;
                modelBiped.onGround = this.mainModel.onGround;
                modelBiped.isRiding = this.mainModel.isRiding;
                modelBiped.isChild = this.mainModel.isChild;
                if (this.mainModel instanceof ModelBiped)
                {
                    modelBiped.heldItemLeft = ((ModelBiped) this.mainModel).heldItemLeft;
                    modelBiped.heldItemRight = ((ModelBiped) this.mainModel).heldItemRight;
                    modelBiped.isSneak = ((ModelBiped) this.mainModel).isSneak;
                    modelBiped.aimedBow = ((ModelBiped) this.mainModel).aimedBow;
                }
                modelBiped.setLivingAnimations(entity, par2, par3, 0.0F);
                modelBiped.render(entity, par2, par3, par4, par5, par6, par7);
            
                
                GL11.glDisable(GL11.GL_LIGHTING);
                this.bindTexture(DarkElf);
                GL11.glEnable(GL11.GL_ALPHA_TEST);
                GL11.glEnable(GL11.GL_BLEND);
                GL11.glAlphaFunc(GL11.GL_GREATER, 0.0F);
                GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                float time = entity.ticksExisted / 10.0F;
                float sTime = (float) Math.sin(time) * 0.5F + 0.5F;
            
                float r = 0.2F * sTime;
                float g = 1.0F * sTime;
                float b = 0.2F * sTime;
            
            
                modelBiped.render(entity, par2, par3, par4, par5, par6, par7);
                GL11.glDisable(GL11.GL_BLEND);
                GL11.glEnable(GL11.GL_ALPHA_TEST);
                GL11.glColor4f(1, 1, 1, 1);
                GL11.glEnable(GL11.GL_LIGHTING);
            
                }
            
        
        }


    
    }

Модель
Код:
public class ElfModelF extends ModelBiped
{
  //fields
    Шейпы....
  
  public ElfModelF(float f)
  {
    textureWidth = 128;
    textureHeight = 64;
    
      Позиция шейпов...
  }
  
  public void render(Entity entity, float par2, float par3, float par4, float par5, float par6, float par7)
  {
    super.render(entity, par2, par3, par4, par5, par6, par7);
    setRotationAngles(par2, par3, par4, par5, par6, par7, entity);
    Shape1.render(par7);
    Shape2.render(par7);
    Shape3.render(par7);
    Shape4.render(par7);
    Shape5.render(par7);
    Shape6.render(par7);
    Shape7.render(par7);
    Shape8.render(par7);
    Shape9.render(par7);
    Shape10.render(par7);
    Shape11.render(par7);
    Shape12.render(par7);
    Shape13.render(par7);
    Shape14.render(par7);
    Shape15.render(par7);
    Shape16.render(par7);
    Shape17.render(par7);
    Shape18.render(par7);
    Shape19.render(par7);
    
  }
  
  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(f5, f, f1, f2, f3, f4, entity);
  }

}
Ошибка в консоли
Код:
java.lang.NullPointerException
    at net.minecraft.client.model.ModelRenderer.render(ModelRenderer.java:187) ~[ModelRenderer.class:?]
    at net.minecraft.client.model.ModelBiped.render(ModelBiped.java:101) ~[ModelBiped.class:?]
    at rinkirin.model.ElfModelF.render(ElfModelF.java:153) ~[ElfModelF.class:?]
    at rinkirin.renders.RenderElf.renderModel(RenderElf.java:60) ~[RenderElf.class:?]
    at net.minecraft.client.renderer.entity.RendererLivingEntity.doRender(RendererLivingEntity.java:165) [RendererLivingEntity.class:?]
    at net.minecraft.client.renderer.entity.RenderPlayer.localRenderPlayer(RenderPlayer.java:167) [RenderPlayer.class:?]
    at api.player.render.RenderPlayerAPI.renderPlayer(Unknown Source) [RenderPlayerAPI.class:?]
    at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java) [RenderPlayer.class:?]
    at net.minecraft.client.renderer.entity.RenderPlayer.doRender(RenderPlayer.java:565) [RenderPlayer.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300) [RenderManager.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:278) [RenderManager.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:251) [RenderManager.class:?]
    at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:527) [RenderGlobal.class:?]
    at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300) [EntityRenderer.class:?]
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1087) [EntityRenderer.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1067) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_91]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_91]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
    at GradleStart.main(Unknown Source) [start/:?]
[16:05:23] [Client thread/ERROR]: ########## GL ERROR ##########
[16:05:23] [Client thread/ERROR]: @ Post render
[16:05:23] [Client thread/ERROR]: 1283: Stack overflow
[16:05:23] [Client thread/ERROR]: Couldn't render entity
java.lang.NullPointerException
Итог
http://rgho.st/6h6mwYbvJ.view
 
up
[merge_posts_bbcode]Добавлено: 03.07.2016 14:50:24[/merge_posts_bbcode]

Это баг если что. Может кто-нибудь помочь с этим мне?
 
У меня получилось изменить модель, окей.
Но как её анимировать?
Как добавить анимацию ходьбы, удара и т.д?
 
lordraider написал(а):
У меня получилось изменить модель, окей.
Но как её анимировать?
Как добавить анимацию ходьбы, удара и т.д?
Я конечно этим не занимался, но, думаю событиями ловить это все дело.
Если не так, поправьте меня:)
 
Назад
Сверху