mc服务器修改合成表,教程/修改实体模型

e5f234d482d1dd6b2d3a2ce2804a605f.png

该文章需要整理以符合样式标准。

请帮助优化文章样式来让它符合样式要求。

c5863208c5fabc0620aaa0484a289f9b.png

此特性为基岩版独有。

本教程是对官方支持的附加包来修改的。

概括[]

本教程是对于高级用户编写的!普通用户可使用Blockbench等易于使用的可视化模型制作软件。请您熟悉JSON的数据格式。如果您并不熟悉的话,请阅读行为附加包教程的JSON部分。在本教程中,我们将涉及:

Minecraft的JSON模型格式

如何去修改模型

所需时间[]

30 分钟

所需工具[]

一个文本编辑器

任何的文本编辑器应该都是可以的,但是我们建议您使用用于编程的IDE软件。如果你想有效管理多个文件,建议使用Visual Studio Code。而在iOS上,用Textcode Viewer则是不错的选择,如果你的iOS设备已经越狱,也可以尝试使用iFile或者Filza。对于Android系统来讲,MT管理器将是一个不错的选择。

入门[]

在本教程中我们将使苦力怕有3个头。但是在修改苦力怕之前,我们来看看组成模型的代码。

Minecraft模型格式[]

1.13之前的版本[]

Minecraft的实体建模由JSON语言编程,模型由mobs.json这个.json文件决定。你可以在Vanilla Minecraft资源包找到它,路径为Vanilla Resource Pack/models/mobs.json。这些文件包含了所有Minecraft中实体的模型代码。模型代码们看起来是这个样子的:

实体模板的伪代码

"geometry.entityname": {

"texturewidth": x,

"textrueheight": y,

"bones": [

{

"name": "body part name",

"pivot": [ x, y, z ],

"cubes": [

{

"origin": [ x, y, z ],

"size": [ x, y, z ],

"uv": [ x, y ]

}

]

}

]

}

注: 这只是一个参考例子,不是一个可用的实体模型。使用它作为代码是没用的!

1.13及之后版本[]

Minecraft的模型仍然由JSON语言编写,不过从models/mobs.json的单一文件变为如图的文件结构。可以在Vanilla Resource Pack/models/entity中找到它们。生物模型被从mobs.json中分离为单一文件,命名方式为name(实体名称).geo.json,但仍有部分实体被留在了mobs.json中。

JSON语言解释[]

geometry.entity

这个是要修改的实体的名称

texturewidth

宽度单位,1个像素

textureheight

长度单位,1个像素

bones

骨骼模型运动的动画,它包含了使几何体运转的信息。注:但这也有局限性,他只能使包含在源代码骨骼动画清单的骨骼部分运。

name

骨骼动画的名称

pivot

轴位置是实体肢体的旋转中心。例如:苦力怕的头是能绕着这一点旋转的方形构成。

rotation

旋转实体的部分在xyz轴上。注: 游戏可能会以动画覆盖包含动画的对象。

mirror

布尔值,可设置为true或false。如果填true,游戏会根据UV位置映射对应的肢体。

cubes

如果几何没有骨骼动画,写入此关键符并键入要映射的动画肢体名,即可赋予几何动画。

origin

几何体的位置和实体模型的起点位置有关。 注: 这个点在模型的左前下角。

例如: 这个苦力怕身体的红色顶点,就是这个身体的模型位置。

47d3494e3597c9dd9b6cfa09ce002b01.png

size

几何体的大小。注: 16x16x16是一个方块的大小!(中文补充:它和肢体大小确实有关,但是只是用来确认肢体材质位置的,放大用inflate见下文)

uv

这个是实体肢体材质的起点。

注:这是规定x(横轴),y(纵轴)轴的第一个点

注:这个点应该是一个实体的某个肢体材质的区域的左上角。

例如: 这个红点是你想做成苦力怕"body"(身体,因为是代码不译)的UV 做成点。 ("uv": [ 16, 16 ]). 身体将会使用被框起的部分作为材质.

998c80963e22dbdb1e914af61effedd4.png

mirror

布尔值,可设置为true或false。如果填true,游戏会根据UV位置映射对应的部位。

inflate

使这部分肢体按数值增大或缩小(可为小数或负数),且使用的贴图的像素大小及位置不变。例如

"name": "hat",

"parent": "head",

"pivot": [ 0.0, 24.0, 0.0 ],

"cubes": [

{

"origin": [ -4.0, 24.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 32, 0 ],

"inflate": 0.5

}

inflat对应的值为0.5,则方块在x y z三轴正负方向各伸长0.5格,即这个块的大小由8×8×8变为9×9×9。

对应的值为负数同理,即缩小。

骨骼动画[]

骨骼是我们用来制作模型的。把它想象成一具骷髅!在人体中,骨骼是由肌肉运动的,而你的肌肉也随着肌肉运动。在3D动画中,骨骼是由动画移动的,而动画反过来又会移动附着在骨骼上的几何图形!

重要注意事项[]

模型还不是完全由数据驱动的。虽然可以更改模型的内容,但是仍然有一些硬编码的值,比如:一个实体需要哪些骨骼,一个实体用什么材料呈现,以及一个实体有什么动画。这意味着你不能只是复制和粘贴几何形状从村民到蜘蛛部分,并希望它工作!在这个系统变得更加数据驱动之前,您需要做一些实验来达到您想要的结果!

确保你的骨骼名称正确!实体的骨骼名称应该与Minecraft-vanilla资源包中的骨骼名称相同。模型的动画和渲染依赖于上述信息的正确性!

修改苦力怕[]

现在我们已经了解了Minecraft模型格式是如何设置的,让我们稍微修改一下creeper。我们要让他有3个正面,2个在底部,1个堆在顶部,像金字塔一样。

1.13之前的版本[]

首先,在Vanilla Minecraft的Vanilla包里 mobs.json找到geometry.creeper区复制下来。

Vanilla Resource Pack/models/mobs.json

在资源包中创建一个名为models的文件夹

创建一个名为mobs.json 的新json文件并将其保存到新模型文件夹中。

输入一对大括号({ })在你新建的 mobs.json 然后粘贴geometry.creeper 。

现在,让我们先把它原来的头向左移一点。为了做到这一点,我们要改变骨头命名的原点的x分量"head" 从 -4 到 -8.

现在将 "cubes" 复制到 "head"的方括号中。. 这时文本应该是灰色的。

mobs.json – geometry.creeper – head section

{

"name": "head",

"pivot": [ 0.0, 18.0, 0.0 ],

"cubes": [

{

"origin": [ -8.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

}

]

},

在你复制的行后面加上一个逗号。

粘贴你在逗号后面复制的行

在刚刚粘贴的行后面加一个逗号

在新逗号后再次粘贴复制的行

你现在应该有3对大括号在 "cubes" 每个都有一个原点,大小和uv对象

在复制的第一行中,我们将把原点的x分量从-8改变为0,向右移动

在第二个副本中,将原点的x分量改为-4,y分量改为26

苦力怕的头部部分现在应该看起来像(新文本为灰色):

mobs.json – geometry.creeper – head section

{

"name": "head",

"pivot": [ 0.0, 18.0, 0.0 ],

"cubes": [

{

"origin": [ -8.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

},

{

"origin": [ 0.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

},

{

"origin": [ -4.0, 26.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

}

]

},

注意,我们不需要改变新头像的UV因为我们复制了旧头像的UV坐标我们没有给新头像添加不同的纹理。

结果[]

cbc99876ea42e2944ec6ca758d90f802.png 三个头的 苦力怕。

修改其他生物[]

如果要更改另一个实体的模型,请确保在右大括号后面加上逗号 geometry.creeper.

伪代码示例

别忘了逗号!(红色突出显示)

{

"geometry.creeper": {

// model stuff

},

"geometry.chicken": {

// model stuff

}

}

1.13及以后版本[]

首先,在原版资源包里找到models/entity/creeper.geo.json,将其复制进你的资源包中的models/entity/

打开creeper.geo.json,它看起来应该是这样的:

creeper.geo.json

{

"format_version": "1.8.0",

"geometry.creeper": {

"visible_bounds_width": 1,

"visible_bounds_height": 2,

"visible_bounds_offset": [ 0, 0.75, 0 ],

"texturewidth": 64,

"textureheight": 32,

"bones": [

{

"name": "body",

"cubes": [

{

"origin": [ -4.0, 6.0, -2.0 ],

"size": [ 8, 12, 4 ],

"uv": [ 16, 16 ]

}

]

},

{

"name": "head",

"parent": "body",

"pivot": [ 0.0, 18.0, 0.0 ],

"cubes": [

{

"origin": [ -4.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

}

]

},

{

"name": "leg0",

"parent": "body",

"pivot": [ -2.0, 6.0, 4.0 ],

"cubes": [

{

"origin": [ -4.0, 0.0, 2.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

]

},

{

"name": "leg1",

"parent": "body",

"pivot": [ 2.0, 6.0, 4.0 ],

"cubes": [

{

"origin": [ 0.0, 0.0, 2.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

]

},

{

"name": "leg2",

"parent": "body",

"pivot": [ -2.0, 6.0, -4.0 ],

"cubes": [

{

"origin": [ -4.0, 0.0, -6.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

]

},

{

"name": "leg3",

"parent": "body",

"pivot": [ 2.0, 6.0, -4.0 ],

"cubes": [

{

"origin": [ 0.0, 0.0, -6.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

]

}

]

},

"geometry.creeper.charged": {

"visible_bounds_width": 1,

"visible_bounds_height": 2,

"visible_bounds_offset": [ 0, 0.75, 0 ],

"texturewidth": 64,

"textureheight": 32,

"bones": [

{

"name": "body",

"cubes": [

{

"origin": [ -4.0, 6.0, -2.0 ],

"size": [ 8, 12, 4 ],

"uv": [ 16, 16 ]

}

],

"inflate": 2.0

},

{

"name": "head",

"parent": "body",

"pivot": [ 0.0, 18.0, 0.0 ],

"cubes": [

{

"origin": [ -4.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

}

],

"inflate": 2.0

},

{

"name": "leg0",

"parent": "body",

"pivot": [ -2.0, 6.0, 4.0 ],

"cubes": [

{

"origin": [ -4.0, 0.0, 2.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

],

"inflate": 2.0

},

{

"name": "leg1",

"parent": "body",

"pivot": [ 2.0, 6.0, 4.0 ],

"cubes": [

{

"origin": [ 0.0, 0.0, 2.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

],

"inflate": 2.0

},

{

"name": "leg2",

"parent": "body",

"pivot": [ -2.0, 6.0, -4.0 ],

"cubes": [

{

"origin": [ -4.0, 0.0, -6.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

],

"inflate": 2.0

},

{

"name": "leg3",

"parent": "body",

"pivot": [ 2.0, 6.0, -4.0 ],

"cubes": [

{

"origin": [ 0.0, 0.0, -6.0 ],

"size": [ 4, 6, 4 ],

"uv": [ 0, 16 ]

}

],

"inflate": 2.0

}

]

}

}

现在,让我们先把它原来的头向左移一点。为了做到这一点,我们要改变骨头命名的原点的x分量"head." 从 -4 到 -8。

现在将 "cubes" 复制到 "head."的方括号中。这时文本应该是灰色的。

creeper.geo.json – geometry.creeper – head section

{

"name": "head",

"pivot": [ 0.0, 18.0, 0.0 ],

"cubes": [

{

"origin": [ -8.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

}

]

},

在你复制的行后面加上一个逗号

粘贴你在逗号后面复制的行

在刚刚粘贴的行后面加一个逗号

在新逗号后再次粘贴复制的行

你现在应该有3对大括号在 "cubes." 每个都有一个原点,大小和uv对象

在复制的第一行中,我们将把原点的x分量从-8改变为0,向右移动

在第二个副本中,将原点的x分量改为-4,y分量改为26

苦力怕的头部部分现在应该看起来像(新文本为灰色):

creeper.geo.json – geometry.creeper – head section

{

"name": "head",

"pivot": [ 0.0, 18.0, 0.0 ],

"cubes": [

{

"origin": [ -8.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

},

{

"origin": [ 0.0, 18.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

},

{

"origin": [ -4.0, 26.0, -4.0 ],

"size": [ 8, 8, 8 ],

"uv": [ 0, 0 ]

}

]

},

注意,我们不需要改变新头颅的UV,因为我们复制了,即用了旧头颅的UV。

结果[]

cbc99876ea42e2944ec6ca758d90f802.png 三个头的 苦力怕。

修改其他生物[]

回到你新建的models/entity文件夹中。

新建一个名字叫生物的英文.geo.json并重复以上操作。如cow.geo.json

总结[]

恭喜你!

如果您已经做到了这一点,那么现在您应该已经知道了制作您自己的实体模型所需要知道的一切!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值