Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Information icon
此特性為基岩版獨有。
Dark Oak Sapling
此條目仍需完善。

你可以幫助我們擴充關於該主題的更多資訊。
原因:這是一篇中文原創教學,與英文頁面有較大差異

本教學版本為基岩版1.14及以上版本。 在閱讀本教學前,請先確保自身已有一定的行為包及材質包基礎。如果還未掌握,請先瀏覽教學/製作行為包頁面後再來學習本教學。 在瀏覽完本教學之後,你將學會如何建立一個全新的自訂實體。

示範包下載:entity_demo

建立實體

在與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"]
			},
			"minecraft:health": {
			//血量
			"value": 10,
			//初始值
			"max": 10
			//最大值
		},
		"minecraft:movement": {
		//移动速度
		"value": 0.25
		//值
		}
		}
	}
}

自訂的實體json與其他實體json的寫法相同,具體可參照教學/製作行為包

加入戰利品表

這是一個可選參數。

如需要,則在components中,加入minecraft:loot設定物品掉落;加入minecraft:equipment設定自然裝備掉落,示例如下:

...
 "components": {
  "minecraft:type_family": {
   "family": [
    "test",
    "npc"
   ]
  },
  "minecraft:loot": {
   "table": "loot_tables/entities/npc.json"
  },
  "minecraft:equipment": {
   "table": "loot_tables/entities/npc_equipment.json"
  }
 }
...

這裡將掉落物表設定為[行为包]/loot_tables/entities/目錄下的npc.json檔案,將裝備掉落設定為[行为包]/loot_tables/entities/目錄下的npc_equipment.json檔案。

下面是兩檔案的簡單示例:

npc.json:

{
 "pools": [
  {
   "rolls": 1,
   "entries": [
    {
     "type": "item",
     "name": "minecraft:grass",
     "weight": 1,
     "functions": [
      {
       "function": "set_count",
       "count": {
        "min": 0,
        "max": 15
       }
      }
     ]
    }
   ]
  }
 ]
}

npc_equipment.json:

{
 "pools": [
  {
   "rolls": 1,
   "entries": [
    {
     "type": "item",
     "name": "minecraft:stone_sword",
     "weight": 1
    }
   ]
  }
 ]
}

材質包

下列同樣是一個可用的示例

在與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=生物蛋名

(註:在語言檔案中的定義不影響自訂實體的任何功能。)

完成以上步驟,你將會得到一個完整的自訂實體。若想為該實體加入其他模組,請參考教學/製作行為包

參見

以上即為自訂實體的基礎內容。若有任何問題或不足,歡迎各位進行補充。

Advertisement