你可以幫助我們擴充關於該主題的更多資訊。
原因:這是一篇中文原創教學,與英文內容有較大差異,可能不能直接同步。
在瀏覽本教學前,請確保你已經可以獨立製作行為包及材質包。如果還未掌握,請先瀏覽教學/製作行為包以及教學/製作材質包這兩個教學後再來學習本教學。在瀏覽完本教學之後,你將學會如何建立一個自訂實體,並學會如何變更該自訂實體的部分屬性。
行為包
建立實體
在與manifest.json同層的地方,新建一個名為entities的資料夾,在資料夾中放入你新增的實體的json。
這個json的名字為[实体子名].json
在檔案中填入以下示例。
這裏的示例中:命名空間為test,新建實體名為npc。
{
"format_version": "1.8.0",
"minecraft:entity": {
"description": {
"identifier": "test:npc",
//实体识别符
"runtime_identifier": "test:npc",
"is_spawnable": true,
//是否自然生成
"is_summonable": true,
//是否可用/summon生成
"is_experimental": false
//是否为实验性生物,如开启,则需开启实验性玩法才可生成
},
"components": {
//组件
"minecraft:type_family": {
"family": [ "test", "npc"]
}
}
}
}
自訂的實體json與其他實體json的寫法相同,具體可參照教學/製作行為包。
加入戰利品表
在"components"中,加入minecraft:loot設定戰利品表,示例如下:
...
"components": {
"minecraft:type_family": {
"family": [ "test", "npc"]
},
"minecraft:loot": {
"table": "loot_tables/entities/npc.json"
},
}
...
這裏將戰利品表設定為[行为包]/loot_tables/entities/目錄下的npc.json檔案。
下面是npc.json檔案的簡單示例實例:
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:grass",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 0,
"max": 15
}
}
]
}
]
}
]
}
材質包
下列同樣是一個可用的示例
在與manifest.json同層的地方,建立一個名為entity的資料夾,並將實體的屬性json寫進去,名字同樣為[实体子名].json。如:
{
"format_version": "1.8.0",
"minecraft:client_entity": {
"description": {
"identifier": "test:npc",
"materials": { "default": "npc" },
"textures": {
"default": "textures/entity/npc"
},
"geometry": {
"default":"geometry.npc"
},
"render_controllers": [
"controller.render.npc"
],
"spawn_egg": {
"base_color": "#99e550",
"overlay_color": "#99e550"
}
}
}
}
identifier與之前行為包中所寫ID需統一,materials決定了將被這個實體所調用的材料。textures後面為實體貼圖材質路徑,geometry則確定實體所調用的的建模的檔案路徑,render_controllers決定了這個實體所擁有的動作。兩個color分別確定了生成這個實體的生成蛋的斑點的顏色與蛋的底色,格式為十六進制。
materials
接着你需要在與manifest.json同層的地方,再建立一個名為materials的資料夾,在裏面放置實體的材料,名為entity.material。例:
{
"materials": {
"version": "1.0.0", "npc:entity_alphatest": {}
}
}
不同的materials材料將會讓實體調用不同的繪製效果,具體可參照原版材質包中的materials/entity.material。 註:在materials中,"npc"需要與之前的identifier中的子名相統一。
render_controllers
依然是在與manifest.json同層的地方建立一個名為render_controllers的資料夾,在裏面放入這個實體的動畫檔案,名字為[实体子名].json。
{
"format_version": "1.8.0",
"render_controllers": {
"controller.render.npc": {
"geometry": "Geometry.default",
"materials": [
{ "*": "Material.default" }
],
"textures": [ "Texture.default" ]
}
}
}
其中"controller.render.npc",npc為實體子名,其他部分為基礎內容。
最後就是材質,建模,與語言檔案的部分。你可以選擇直接調用原版的材質內容,也可調用自己所新增的材質內容。
新增材質需要根據在之前entity中所寫的路徑對應,在對應的路徑放入名字為實體子名的貼圖即可。建模也是同樣的,在指定的路徑中放入名字為實體子名的json建模檔案,建模的實體名為"geometry.[实体子名]"。具體可參照教學/修改實體模型。語言檔案需要在與manifest同層的地方,新建一個texts的資料夾,在裏面放入名為zh_CN.lang的檔案。其他語言則將檔案名改成對應的語言代碼即可。在裏面寫上以下內容:
entity.npc.name=npc
item.spawn_egg.entity.npc.name=npc
每有一個自訂實體都要在需要語言檔案中加上以下內容:
entity.[实体子名].name=实体名
item.spawn_egg.entity.[实体子名].name=生物蛋名
(註:在語言檔案中的定義不影響自訂實體的任何功能。)
完成以上步驟,你將會得到一個完整的自訂實體。若想為該實體加入其他模組,請參考教學/製作行為包。
參見
以上即為全部的基礎自訂實體內容。若有任何問題或不足,歡迎各位進行補充。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||