【教程】自定义实体教程和深层的应用
minecraftpe吧
全部回复
仅看楼主
level 12
FRee肯 楼主
[惊哭]吧务不会删的
2015年02月04日 01点02分 1
level 12
FRee肯 楼主
2楼通知
2015年02月04日 01点02分 2
回复
FRee��
:83-156楼最易懂的解释了
2015年02月13日 08点02分
完全不会J's系列吧友请绕道,因为你看不懂。
2015年05月04日 13点05分
楼主楼主,看来你的教程我弄了个0.10.5版的小恶灵,但是只是0.11.1的恶灵的1/2,怎么把他扩大一倍?我尝试过,但是贴图抽象了
2015年07月20日 06点07分
回复
����������ͬ��
:@FRee肯
2015年07月20日 06点07分
level 12
FRee肯 楼主
3楼@人
2015年02月04日 01点02分 3
level 12
FRee肯 楼主
自定义实体教程
自定义实体中许多东西没有真正的专业术语所以给它定义了一些概念方便表达
====================================================
part.1【自定义实体的基本框架】
「解释」:
也就是一般编写一个实体模型的格式
「内容」:
1.
function Abc/*自定义的函数名字*/(empty/*模型名*/)
{
var model = empty.getModel();//获取empty这个模型
/*在这里编写实体模型①*/
}
var e=Renderer.createHumanoidRenderer()
/*创建一个人物的模型叫做e*/
Abc(e)
/*执行Abc这个自定义函数 这时e代入到上面的empty
这时这个e模型就变成你编辑的模型*/
2.
最后用这个来替换实体模型:
Entity.setRenderType(/*替换的实体*/,e.renderType)
//里面的e表示你编辑的模型,后面部分为固定格式*/
2015年02月04日 01点02分 4
请问替换的实体有哪些?
2015年04月25日 11点04分
回复
a��b��c��d
:只要是生物的实体都可以替换,箭,矿车这些则不能
2015年04月25日 11点04分
回复 FRee肯 :请问生物实体是ID吗?
2015年04月25日 12点04分
回复
FRee��
:@FRee肯
2015年04月25日 14点04分
level 12
FRee肯 楼主
====================================================
[下面章节主要是在①部分的编写,自定义一个模型,以后写入的内容会标记:①]
part.2【自定义模型的三维坐标系】
「解释」:
由于是三维模型所以我们需要知道三维坐标系
「内容」:
如图,我们先定义Z轴反方向为前,正方向为后,Y轴为上下,X轴反方向为右,正方向为左————————实体视角
2015年02月04日 01点02分 5
是不是以实体的视角看方向呀?,还有,什么是现房?
2015年02月10日 00点02分
回复
�ö���i8
:对
2015年02月10日 00点02分
回复
�ö���i8
:愚哥
2015年04月30日 11点04分
小学生表示不懂,让我多看看
2016年02月20日 14点02分
level 14
围观
   ヘ⌒ヽフ
.  (  ・ω・)
  ノ"" )  )
  彡ノ,,,,ノ
―〃-〃――――
  レ,,/
吃↑这只,是从头吃,还是从尾吃比较好?
2015年02月04日 01点02分 6
头
2015年02月16日 01点02分
从屁眼吃[滑稽]
2015年02月16日 08点02分
level 12
FRee肯 楼主
======================================================
[下面章节主要是编写实体模型时的概念和用法,为了方便教学,最好了解这些概念,因为后面有很多复杂算法方便表达]
part.3【概念1,模型单元】:
「解释」:
比如史蒂夫在跑的时候两脚在动,它们就是两个模型单元,实质就是模型的骨骼
「内容」:
实体模型单元分成
头(head)
左手(leftArm)
右手(rightArm)
身体(body)
左脚(leftLeg)
右脚(rightLeg)
<获取方式>
var rA=model.getPart("rightArm")①
<清除方式>
var rA=model.getPart("rightArm").clear()
其他模型单元同理
[里面的model对应part.1的model]
♠♥♣♦♤♡♧♢写入①部分:
function Abc(empty)
{
var model = empty.getModel();
var rA=model.getPart("rightArm")
}
var e=Renderer.createHumanoidRenderer()
Abc(e)
♠♥♣♦♤♡♧♢
2015年02月04日 01点02分 7
level 11
围观
                   _这年头连小尾巴都有人偷_____什么世道嘛ヽ(≥Д≤)ノ
__我是苦力怕菌__眼熟我吧
   --来自助手版贴吧客户端
2015年02月04日 01点02分 8
level 12
顶!
—— 无视我的头像[胜利][滑稽][胜利]
2015年02月04日 01点02分 9
level 11
顶
                   _这年头连小尾巴都有人偷_____什么世道嘛ヽ(≥Д≤)ノ
__我是苦力怕菌__眼熟我吧
   --来自助手版贴吧客户端
2015年02月04日 01点02分 10
level 11
围观   咦 这是神奇的小尾巴么  好漂亮哦O(∩_∩)O!
   --来自助手版贴吧客户端
2015年02月04日 01点02分 11
level 12
FRee肯 楼主
part.4【概念2,单元轴】:
「解释」:
单元轴就是模型单元运动的时候围绕的一个点,比如史蒂夫砍人的时候右手围绕肩膀的单元轴挥动,骨骼点
人物模型本身有默认的单元轴
「内容」:
<默认单元轴位置>看图
<改变单元轴位置方式>
模型单元.setRotationPoint(Xr,Yr,Zr)
单元轴从原来位置向Xr,Yr,Zr移动
Xr填X轴方向的移动的大小,其他同理
「例子」:
rA.setRotationPoint(-4,0,0)①
[里面的rA对应part.3的rA]
[由part.2可知此时左手单元轴向右移动4单位]
2015年02月04日 01点02分 12
楼主你是有多牛逼[喷][滑稽]
2015年02月04日 02点02分
回复
د��ʥ��ʹ��ؼ
:[委屈]概念都是自己乱说的[滑稽]
2015年02月04日 02点02分
回复
FRee��
:[滑稽]
2015年02月04日 03点02分
回复
shine������
:看不懂那个图吗还是概念
2015年02月04日 10点02分
level 13
顶
————现在北京时间2015年02月04日周三 上午 09:57:08
 
2015年02月04日 01点02分 13
level 13
……
2015年02月04日 01点02分 14
level 12
前排[咦]
----纯净版小尾巴
2015年02月04日 01点02分 17
level 12
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
2015年02月04日 02点02分 18
level 12
FRee肯 楼主
======================================================
part.6【②模型块放大数】补充
「解释」:
就是模型块XYZ轴正反方向共六个方向都拉伸的数值
比如上个章节的2x6x5的长方体,如果方大数为1:
X轴正反方向都拉伸1,就是1+2+1
Y轴正反方向都拉伸1,就是1+6+1
Z同理,于是变成4x8x7的长方体
[这个看起来简单其实有很深的应用,具体后面章节讲③]
2015年02月04日 02点02分 19
我知道了,原来没看这节,小恶灵要长大了
2015年07月20日 06点07分
level 12
FRee肯 楼主
======================================================
part.7【模型块贴图的偏移1】重难点
「解释」:
1.模型的贴图布局有一定规律,我们可以把这个点看作一个模型块贴图的原点,默认原点位置为左上角
2.平面坐标系Y轴方向向下,X向右,由图可以推出模型块贴图大小为(2z+2z)x(z+y)[长x宽][xyz对应part.5中addBox的xyz]
3.偏移值不可小于0,必须是整数
4.由于默认贴图大小为64x32,所以每偏移1个单位实际上就是在实际贴图上移动[贴图长÷64或贴图宽÷32]个像素
5.贴图偏移的代码必须在它的模型块添加之前写入[看④]
「内容」:
(所在模型块的)模型单元.setTextureOffset(Xt,Yt)
Xt,Yt分别是XY两轴的偏移值
「例子」:
rA.setTextureOffset(2,0)①
[坐标偏移2单位]
♠♥♣♦♤♡♧♢当前内容:
function Abc(empty)
{
var model = empty.getModel();
var rA=model.getPart("rightArm")
rA.setRotationPoint(4,0,0)
rA.setTextureOffset(2,0)④
rA.addBox(-3,1,-1,2,6,4)④
}
var e=Renderer.createHumanoidRenderer()
Abc(e)
♠♥♣♦♤♡♧♢
2015年02月04日 02点02分 20
level 13
楼主一定是事先就打好的字[真棒]
2015年02月04日 02点02分 21
对啊[滑稽]
2015年02月04日 02点02分
久仰大名
2015年02月27日 01点02分
level 12
FRee肯 楼主
part.7
附图
注意[下]的位置方向
2015年02月04日 02点02分 22
回复
shine������
:Z宽一般不可能填负数,你可以在头添加这个addBox(-4,-8,4,8,8,-8)看看,贴图会贴在长方体内部
2015年02月06日 00点02分
回复
shine������
:正常啊,你又没有重新setRenderType
2015年02月06日 12点02分
楼主好泥害
2015年02月27日 01点02分
1 2 3 4 5 6 尾页