Minecraft(我的世界)中文论坛
标题: 【mod开发者的福音!】Techne教程翻译part1——基本的代码建模【HAYO翻译组】
作者: kirbykirby 时间: 2012-7-28 22:50
标题: 【mod开发者的福音!】Techne教程翻译part1——基本的代码建模【HAYO翻译组】
本帖最后由 kirbykirby 于 2012-7-29 11:03 编辑
教程源地址:http://schwarzeszeux.tumblr.com/post/13854104445/minecraft-modeling-tutorial-part-1-of-x首先对Techne的作者表示崇高敬意!
以下为译文
我觉得是时候写一写Techne的教程了,当我开始制作Techne的时候我不知道做建模最重要的事情,所以在测试中遇到了很多错误。
我甚至没有想过写出Techne后公开,
只是想给朋友们用——不过他们从来没有用过它……
Part 1, 基本的代码建模
Part 2, 动画
Part 3, 块和子部件(啥……)
好吧……教程。
在Minecraft中做建模,在没有Techne的情况下
这个教程先不用Techne,因为我想让你知道到底是怎么在Minecraft里做建模的。这是为了为以后的教程打好基础,也为了你能做出更多更好玩的模型着想。
无论如何,我会在Techne上截一些图给你们看。
这里是一个Minecraft的坐标系(和Techne的)的简要概述。上面的那个盒子在原点(0,0,0),那个下面的盒子正好在地面上(0,23,0)。
盒子们都是1x1x1像素的,这里所有的单位都是像素,但是那是材质的像素点。这个的意思是一个1x1x1的盒子会给我们展示每个面一个像素点。一个16x16x16像素相当于现实中的1米x1米x1米(yay,这是啥……不会翻……感叹词而已吧……)一只苦力怕有26像素高,相当于他有1.625米那么高。
一个模型文件必须继承ModelBase类和应该重载渲染方法。这个方法将被调用到每一帧,在那里你要调用每次里渲染所有模型渲染器中你有的方法。(这句不太会翻……)
- package net.minecraft.src;
- public class ModelTutorial extends ModelBase{ ModelRenderer body;
- public ModelTutorial() { body = new ModelRenderer(this, 18, 4); body.addBox(-6F, -10F, -7F, 12, 18, 10, 0.0F); body.setRotationPoint(0.0F, 5F, 2.0F); body.rotateAngleX = -0.7854F; }
- @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { setRotationAngles(f, f1, f2, f3, f4, f5); body.render(f5); }
- @Override public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5) {
- }}
复制代码 这是一个非常简单的模型类,它定义了一个盒子并渲染到每一帧。来看一看一些代码里的小片段吧
- body = new ModelRenderer(this, 18, 4);
- body.addBox(-6F, -10F, -7F, 12, 18, 10, 0.0F);
- body.setRotationPoint(0.0F, 5F, 2.0F);
- new ModelRenderer(this, 18, 4);
复制代码 new ModelRenderer(this, 18, 4); 这个会创建一个模型渲染器的新实例,你传递了你的模型类的实例,作为第一个参数,第二 是材质偏移X轴,第三是材质偏移Y轴。
addBox需要7个参数:offsetX, offsetY, offsetZ, sizeX, sizeY, sizeZ 和 extension。我以后会解释一下"offset"做了些啥(和“position”和设置“setRotationPoint”)还有现在我们可以无视掉“extension”。
setRotationPoint会设置这个盒子的位置,那个rotation-point (或者 anchor-point) 是在周围的点,该模型将围绕它旋转。
旋转一个盒子,你要使用rotateAngleX-Z的公共领域。比方说,我们希望那条尾巴旋转-45°,如上面的图片所示。注意rotateAngleX-Z的弧度是很重要的。有一个快捷的计算方法 360°==2pi n/180*(-45)=-0.7854。
body.rotateAngleX = -0.7854F;
你做的每一个模型都将包含这些盒子。
现在让我们看看渲染方法,它有7个参数。第一个是你渲染的那个实体(entity),你用它来确定(实体的)状态。ModelWolf(狼模型)会检查它是在坐着还是在甩身体接着依照着它改变模型。
接下来的5个参数定义各种动画的幅度,首先是活动的模型在走动的时候,第二个飞行时(如鸡扇动自己的翅膀)等。最后一个参数是时间。
更新:好吧,我道歉,这是不完全正确,我会在接下来的文章中解释
更新2:你可以在这里找到这篇文章
在这个方法你呼叫了你的模型渲染器里的渲染方法,那样它们就会显示在你的屏幕上。我会在以后的教程里慢慢解释这些细节,我以后也会解释动画是怎么工作的还有那些参数是什么意思。
=======================以下为小广告=====================
可能没有人知道我开过一个叫Dreamland服务器,恩……已经倒闭了……不过这不要紧,我会用做mod的形式来Return to Dreamland!我需要大家的力量!有意者加我企鹅号986869429吧!急需美工和程序员!如果你有关于mod的创意(前沿科技mod)也可以加我。
作者: 719823597 时间: 2012-7-28 23:19
哇 好厉害 模型什么的我都是丢给kelas的= =
作者: 混乱 时间: 2012-7-28 23:33
技术文,强势围观
作者: doudou19758 时间: 2012-7-28 23:52
膜拜啊。。。。。。。。。。。
作者: 世界Revenge 时间: 2012-7-29 07:06
看不懂······················
作者: xyx0826 时间: 2012-7-29 07:53
这个写的真好哦~
作者: Condor 时间: 2012-7-29 10:26
好强大的东东。。。。
作者: sabo970 时间: 2012-7-29 11:06
表示看到程序就蛋疼。。。。。
作者: oomanj 时间: 2012-7-29 11:49
很强大的样子!
作者: Nat 时间: 2012-7-29 19:24
必须顶起~~~好东西必须必须顶
作者: 369874641 时间: 2013-1-28 09:56
先顶一个虽然看不懂
作者: redsheep3 时间: 2013-5-14 18:31
[diamond_pickaxe]
作者: ByZYM 时间: 2014-8-31 21:50
很强大的软件。。。。
作者: 我是冷场帝 时间: 2015-1-31 02:44
其实我看不懂{:10_535:}