教程源地址: http://schwarzeszeux.tumblr.com/post/15772700951/minecraft-modeling-pieces-and-subparts-part-3-of-x首先对Techne的作者表示崇高敬意!
以下为译文
Part 1, 基本的代码建模
Part 2, 动画
Part 3, 块和子部件
Childparts分支下的东西我在Techne里把它叫做“piece”。
你要记住的最重要的东西是你创建了一个不同的ModelRenderer(模型渲染器)
让我们来看看龙的构造函数吧:
- public ModelDragon(float var1){ this.texWidth = 256; this.texHeight = 256;
- this.setTextureOffset("rearleg.main", 0, 0); this.setTextureOffset("rearfoot.main", 112, 0); this.setTextureOffset("rearlegtip.main", 196, 0);
- this.rearLeg = new ModelPart(this, "rearleg"); this.rearLeg.setPos(-16.0F, 16.0F, 42.0F); this.rearLeg.addBox("main", -8.0F, -4.0F, -8.0F, 16, 32, 16);
- this.rearLegTip = new ModelPart(this, "rearlegtip"); this.rearLegTip.setPos(0.0F, 32.0F, -4.0F); this.rearLegTip.addBox("main", -6.0F, -2.0F, 0.0F, 12, 32, 12);
- this.rearFoot = new ModelPart(this, "rearfoot"); this.rearFoot.setPos(0.0F, 31.0F, 4.0F); this.rearFoot.addBox("main", -9.0F, 0.0F, -20.0F, 18, 6, 24);
- this.rearLeg.addChild(this.rearLegTip); this.rearLegTip.addChild(this.rearFoot);}
setMapTex是不同的一个——他的参数明显由一个string(字符串)和两个int(整型)组成。这个字符串指盒子的路径。他不是完全路径,是“PieceName.BoxName”(块的名字.盒子的名字)。
整数与textureOffset无关,它该ModelRender的构造函数。
- public ModelRenderer(ModelBase var1, String var2)
放置盒子,你需要调用addBox,像你以前做的那样。
参数没有改变过,所以这里不用再解释一次。
无论如何,你要做的就是在一个piece里放置多重的盒子。所有属于一个piece(块)的盒子共享相同的材质偏移,位置和角度(锚点- -?)。
所有你需要做的就是创建一个块的层级去调用addChild与你想放置的那个子部件。
这里是一个腿的层次概览。
我也想写一写关于渲染块的东西,不过我想把它单独成篇。
完成了的龙: