你可以帮助我们来翻译此条目,但请勿使用机器翻译。
本教程是对官方支持的附加包来修改的。
概括
本教程是对于高级用户编写的!普通用户请不要轻易尝试! 请您熟悉 JSON 的数据格式。如果您并不熟悉的话,请阅读行为附加包教程的JSON部分。 在本教程中,我们将涉及:
- Minecraft的JSON模型格式
- 如何去修改模型
所需时间
30 分钟
所需工具
一个文本编辑器
任何的文本编辑器应该都是可以的,但是我们建议您使用用于编程的IDE软件。Notepad++ 是一个优秀且免费还带有多编程语言高亮显示支持的编辑器。你可以在 here 下载Notepad++ 。
入门
在本教程中我们将使 爬行者 有3个头。但是在修改 爬行者 之前,我们来看看组成模型的代码。
Minecraft模型格式
Minecraft's models are defined using JSON in a file called mobs.json. You can find it in the Vanilla Minecraft resource pack at Vanilla Resource Pack/models/mobs.json. This file contains the definition for every entity’s model. Each definition looks something like:
- Entity Template Pseudocode
"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 ]
}
]
}
]
}
Note: This is just an example overview of how each entity’s model is laid out. If you used this as is, it would not work!
Bones and animation
Bones are what we use to animate a model. Think of it like a human skeleton! In the human body, bones are moved by muscle, and your flesh moves along with them. In 3D animation, bones are moved by an animation and that, in turn, moves the geometry that is attached to them!
Important Note!
Models are not entirely data driven yet. While it is possible to change things about a model, there are still certain hardcoded values like: which bones an entity needs, what material an entity is rendered with, and what animations an entity has. This means that you cannot just copy and paste geometry from the villager into the spider section and hope that it works! Until this system becomes more data driven, you will need to do some experimenting to achieve the results that you want!
Make sure you name your bones correctly! The name of the bones for an entity should be the same as they are in the Vanilla Minecraft resource pack. The animation and rendering of a model relies on this information being correct as explained above!
Modifying the Creeper
Now that we’ve looked at how the Minecraft model format is setup, let’s modify the creeper a bit. We are going to make him have 3 heads, 2 on bottom and then 1 stacked on top, like a pyramid.
- First, find the
geometry.creepersection in Vanilla Minecraft’smobs.jsonfile and copy it.Vanilla Resource Pack/models/mobs.json
- Create a new folder in your resource pack called
models - Create a new JSON file called
mobs.jsonand save it into your new models folder - Enter in a pair of curly brackets (
{ }) into your newmobs.jsonand then paste thegeometry.creeperfrom Vanilla’s model file after the left curly bracket. - Now, let’s first move his original head to the left a bit. To do this, we are going to change the x component of the origin for the bone named "
head" from -4 to -8. - Now copy everything in the square brackets for "
cubes" for "head". This should just be the text highlighted grey.- 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 ]
}
]
},
- Add a comma after the right curly bracket for the lines you just copied.
- Paste the lines you copied after the comma
- Add a comma after the right curly bracket for the lines you just pasted
- Paste the copied lines again after the new comma
- You should now have 3 pairs of curly brackets in the "
cubes" that each have an origin, size and uv object - In the first copied lines, we are going to move that head right by changing the x component of origin to 0 from -8
- In the second copy, change the x component of the origin to -4 and the y component to 26
- Your head section for the creeper should now look like (new text in grey):
- 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 ]
}
]
},
Note that we don’t have to change the UV’s for any of the new heads because we copied the old head’s UV coordinates and we aren’t adding different textures to the new heads.
Results
Three-headed creeper.
Adding More
If you want to change another entity’s model, make sure to add a comma after the right curly bracket of geometry.creeper.
- Pseudocode example
Don’t forget the comma! (highlighted red)
{
"geometry.creeper": {
// model stuff
},
"geometry.chicken": {
// model stuff
}
}
Congratulations!
If you’ve made it to here, you should now know everything you need to know to make your own entity models!
| 版本 |
| ||||||
|---|---|---|---|---|---|---|---|
| 开发 |
| ||||||
| 技术性 | |||||||
| 多人游戏 | |||||||
| 特色功能 | |||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

