当前位置: 首页 > 知识库问答 >
问题:

在Minecraft中更改玩家的模型

龙学
2023-03-14

我正在尝试为我为MC 1.10创建的mod更改播放器的模型。我已经尝试了几件事,但都没有成功。我已经制作了一个模型和渲染器,但无法让它替换播放器。这是我尝试的(自定义模型称为悬停爪(长故事)):

RenderingRegistry.registerEntityRenderingHandler(EntityPlayer.class, (IRenderFactory)RenderHoverClawsFactory.INSTANCE);

也:

public class RenderCustomPlayerEvent
{
    RenderHoverClaws render = new RenderHoverClaws(Minecraft.getMinecraft().getRenderManager(), new ModelHoverClaws(), 1F);

    @Subscribe
    public void renderCustomPlayer(RenderPlayerEvent.Pre pre)
    {
        pre.setCanceled(true);
        render.doRender((EntityLiving) pre.getEntityLiving(), 0D, -1.625, 0D, 0F, 0.0625F);
}

}

我浏览了整个网站,以及minecraft和forge论坛。

请帮忙!

编辑:我已经查看了IChun的变形模型的源代码,但我找不到它是如何改变玩家模型的。如果你回答这个问题,说我应该看看这个mod,那么请也指导我的部分代码,有实际的球员模型的变化。

共有1个答案

颜骁
2023-03-14

首先,我建议你不要这样做,因为许多mod和模型取决于玩家看起来像他一样,东西是精心排列的,这样看起来很好。

RenderingRegistry.registerEntityRenderingHandler(EntityPlayer.class, new IRenderFactory(){@Override
                public Render createRenderFor(RenderManager manager) { 
                    return new RenderPlayerRobotABC(manager,new ModelHoverClaws(), 0.3F);
                 }
            });

您的模型是RenderPlayerRobotABC()从RenderPlayer类中恢复。

在forgeSrc中查看RenderPlayer,复制所有代码,然后更改所需的内容。

然后,渲染玩家模型并添加悬停爪作为层。

protected void setDamageLayer() {
    this.addLayer(new LayerRenderer(){
        @Override
        public void doRenderLayer(EntityLivingBase player, float par2, float par3,
                float partialTicks, float par5, float par6, float par7, float scale) {
            RenderTools.bindTexture("textures/entity/player/hvoerclaws.png");
            claws.setLivingAnimations(player,par2,par3,partialTicks);
            claws.render(player, par2, par3, par5, par6, par7, scale);


        }

        @Override
        public boolean shouldCombineTextures() {
            return false;
        }

    });
}

一些关键部分依赖于所有字段/方法都是可访问的,因此请确保它们是:-)

 类似资料:
  • 对于一个Minecraft项目,我想让玩家逐渐面对(0,60,0)。到目前为止,当玩家在(0,60,0)周围移动超过720°时,我尝试的一切似乎都失败了。 有人知道如何让相机无缝移动到(0,60,0)吗? 非常感谢。 这是我到目前为止的代码(切换时循环运行): 这段没有if语句的代码可以正常工作。偏航和俯仰变量以度为单位。 我遇到的问题是,每当我转过身(0,60,0)几次,屏幕就会突然360°旋转

  • 我第一次尝试做一个新的命令,并遵循这个教程,虽然有点旧,但我相信它仍然有效。完成后,我试着运行我的mod,一切正常,但我的命令不存在。这是我的密码: 和我实际的类: 它正在调用一个实体,这是我自己创建的,只是一个爆炸威力增加的火球。

  • 我正在Forge1.8中编写一个mod,我正在利用SidedProxy系统。我为测试添加了一些项/块,但我的mod大多需要在东西的服务器端控制逻辑/保存时写读一些数据。以我的理解,在一款minecraft游戏中,总有一个服务器,在singleplayer中就是内部服务器。但是,当从eclipse运行时,ServerProxy永远不会运行,因为我没有看到来自print语句的输出,并且块处理程序也没有

  • 为什么我的保安(S)和唐纳德(D)处于相同的位置。 地图应该是这样打印出来的 [D----] [- - - - -] [- - - - -] [--S-] [--P--] 但它却像这样出现 [S----] [- - - - -] [- - - - -] [- - - - -] [--P--] 所以正如你在这里看到的,我把安全位置设为[3,2],但出于某种原因,它没有将其识别为[3,2],并将安全位

  • https://drive . Google . com/file/d/1 UC 2s ys 7 zfd 686 ukqlyamedzkefehzcar/view?usp =共享 正如你在视频中看到的那样,当我试图从山上跳下来时,玩家只是穿过地形,好像没有地形一样,但我仍然可以正常移动。我注意到,每当我离开地面时快速移动时,问题就出现了,就像我第一次开始这个关卡时,我跳得很慢,然后返回地面,每当我

  • 我正在制作的网站可以在德语和英语之间切换显示语言。Shaka player似乎支持本地化切换,但我无法用英语以外的任何语言显示该播放器。尝试在新沙卡上使用changeLocale。用户界面。本地化实例,但它似乎对玩家没有影响。 如果能在不同地区之间切换,我将不胜感激。