Skip to content

实体生成规则

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

生成规则定义了实体如何自然生成到世界中。当您希望自定义实体像原版实体一样自然生成时,应该使用生成规则。通过不同的组件可以定义实体生成的时间、地点和方式。

通常情况下,可以让您的自定义实体采用与原版实体类似的生成方式。例如:像牛一样群生成、像原版僵尸一样仅在夜间生成,或是像鱼类只在水下生成。

生成规则示例

以下是一个包含字段说明的生成规则示例:

json
{
	"format_version": "1.8.0",
	"minecraft:spawn_rules": {
		"description": {
			"identifier": "minecraft:zombie",
			"population_control": "monster"
		},
		"conditions": [
			{
				"minecraft:spawns_on_surface": {},
				"minecraft:spawns_underground": {},
				"minecraft:brightness_filter": {
					"min": 0,
					"max": 7,
					"adjust_for_weather": true
				},
				"minecraft:difficulty_filter": {
					"min": "easy",
					"max": "hard"
				},
				"minecraft:weight": {
					"default": 100
				},
				"minecraft:herd": {
					"min_size": 2,
					"max_size": 4
				},
				"minecraft:permute_type": [
					{
						"weight": 95
					},
					{
						"weight": 5,
						"entity_type": "minecraft:zombie_villager"
					}
				],
				"minecraft:biome_filter": {
					"test": "has_biome_tag",
					"operator": "==",
					"value": "monster"
				}
			}
		]
	}
}
  • descriptionidentifier: 要生成的实体
  • population_control: 控制生成与消失的数量。可选值:animal(动物)、underwater_animal(水生动物)、monster(怪物)、ambient(环境生物)
  • conditions: 必须满足的条件列表,生成尝试才会成功
  • minecraft:spawns_on_surface(地表生成)、minecraft:spawns_underground(地下生成)和minecraft:spawns_underwater(水下生成)控制实体生成的高度范围
  • minecraft:brightness_filter(亮度过滤)取值范围 0-15,控制生成所需光照条件。adjust_for_weather选项用于雨天/雷暴天气下是否自动降低有效光照值
  • minecraft:difficulty_filter(难度过滤)设置启用生成的游戏难度范围
  • minecraft:herd(群体生成)设置基于同个生成规则一起生成的实体数量
  • minecraft:permute_type(类型置换)通过weight权重和entity_type实体类型设置生成实体变异的概率
  • minecraft:biome_filter(生物群系过滤)测试特定生物群系标签。具体过滤器语法和生物群系标签列表请参考官方文档,或查看原版示例资源包

全部已知组件

以下是所有已知组件列表(随着我们对使用方法的理解加深,将持续补充说明文档):

minecraft:weight
minecraft:density_limit
minecraft:spawns_on_block_filter
minecraft:spawns_on_block_prevented_filter
minecraft:spawns_above_block_filter
minecraft:herd
minecraft:permute_type
minecraft:brightness_filter
minecraft:height_filter
minecraft:spawns_on_surface
minecraft:spawns_underground
minecraft:spawns_underwater
minecraft:disallow_spawns_in_bubble
minecraft:spawns_lava
minecraft:biome_filter
minecraft:difficulty_filter
minecraft:distance_filter
minecraft:is_experimental
minecraft:world_age_filter
minecraft:delay_filter
minecraft:mob_event_filter
minecraft:is_persistent
minecraft:player_in_village_filter

组件文档

minecraft:herd

json
"minecraft:herd": {
          "min_size": 1,
          "max_size": 2,
          "event":"minecraft:entity_born",
          "event_skip_count": 1
        },
  • minecraft:herd可通过此配置使第二个生成的实体(在此场景中)携带minecraft:entity_born事件(表现为幼体)。event_skip_count: 2`表示前两个生成的实体不会触发事件,之后生成的都会携带该事件。该功能适用于任意事件类型

minecraft:spawns_above_block_filter

json
        "minecraft:spawns_above_block_filter": {
          "blocks": "minecraft:stone",
          "distance": 10
        }
  • minecraft:spawns_above_block_filter(上方方块过滤)会检测垂直方向设定距离内的方块,当条件满足时允许实体生成

minecraft:spawns_on_block_prevented_filter

json
        "minecraft:spawns_on_block_prevented_filter": [
          "minecraft:nether_wart_block",
          "minecraft:shroomlight"
        ]
  • minecraft:spawns_on_block_prevented_filter(禁止生成方块过滤)与上方组件功能相反。该数组包含实体永远无法生成于其上的方块标识符