- UID
- 876
- 在线时间
- 0 小时
- 最后登录
- 2019-1-14
- 注册时间
- 2011-6-19
- 宅魂
- 4869 点
- 贡献
- 10625 点
- 宅币
- 104074 枚
- 宅の石(入宅度)
- 130 块
- 元气(技能点)
- 174 点
- 活跃
- 134 ℃
- 听众
- 44
- 收听
- 20
签到天数: 25 天 连续签到: 1 天 [LV.4]偶尔看看III
最终章
☆非拔作不Ctrl★
- 积分
- 159739
|
Wait.What?
Part 1, 基本的代码建模
Part 2, 动画
Part 3, 块和子部件
Childparts分支下的东西我在Techne里把它叫做“piece”。
你要记住的最重要的东西是你创建了一个不同的ModelRenderer(模型渲染器)
让我们来看看龙的构造函数吧:
[mw_shl_code=java,true]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);}[/mw_shl_code]
TextureWidth 和 TextureHeight的意思是相当明显的。
setMapTex是不同的一个——他的参数明显由一个string(字符串)和两个int(整型)组成。这个字符串指盒子的路径。他不是完全路径,是“PieceName.BoxName”(块的名字.盒子的名字)。
整数与textureOffset无关,它该ModelRender的构造函数。
[mw_shl_code=java,true]public ModelRenderer(ModelBase var1, String var2)[/mw_shl_code]
我们需要通过对模型本身的实例得到textureoffset(材质偏移?) ,字符串是块的名称。
放置盒子,你需要调用addBox,像你以前做的那样。
参数没有改变过,所以这里不用再解释一次。
无论如何,你要做的就是在一个piece里放置多重的盒子。所有属于一个piece(块)的盒子共享相同的材质偏移,位置和角度(锚点- -?)。
所有你需要做的就是创建一个块的层级去调用addChild与你想放置的那个子部件。
这里是一个腿的层次概览。
我也想写一写关于渲染块的东西,不过我想把它单独成篇。
完成了的龙:
原帖地址:http://www.mcbbs.net/thread-37515-1-1.html
Techne教程总汇帖:https://www.gn00.com/t-88994-1-1.html
|
|