添加了部分来自于BedrockWiki的文章!

This commit is contained in:
boybook
2025-03-19 22:17:04 +08:00
parent 41635cf9bb
commit c25ebf2767
558 changed files with 96136 additions and 24 deletions

View File

@@ -0,0 +1,80 @@
---
title: 虚拟组件
category: 文档
mentions:
- SirLich
- jigarbov
- MedicalJewel105
- StealthyExpertX
- TheItsNameless
---
# 虚拟组件
<!--@include: @/wiki/bedrock-wiki-mirror.md-->
:::warning 弃用警告
'虚拟组件'是一个旧版概念,现已被[实体属性](https://learn.microsoft.com/en-us/minecraft/creator/documents/introductiontoentityproperties)取代。建议尽可能使用实体属性代替。
:::
虚拟组件是仅用于数据存储的"无功能"组件。它们本身**不会**产生任何实际效果需要配合其他机制才能发挥作用。这类组件的主要价值在于可将数据存储在实体上并通过Molang查询来驱动图形/游戏机制。
典型案例包括 `variant`(变种)和 `mark_variant`(标记变种)。这些组件接受整数值设置,在原版资源包中用于定义猫和马匹的贴图选择。另一个典型案例是 `is_tamed`(驯服状态),用于控制马匹能否被骑乘。
虚拟组件的优势在于能够将数据与实体绑定并通过Molang查询调用这些信息。
## 整型虚拟组件
整型组件存储整数值例如1、10、1423可使用Molang查询进行读取是最常用的虚拟组件类型。
## 布尔型虚拟组件
布尔型组件存储单一状态信息,包括 `True`(真)和 `False`(假)。以 `is_tamed` 为例,组件存在表示为 `True`(已驯服),不存在则为 `False`(未驯服)。
## 组件列表
| 类型 | 查询语句 | 组件名称 | 备注 |
| --------- | ------------------------------------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **整型** | q.variant | minecraft:variant | |
| **整型** | q.mark_variant | minecraft:mark_variant | |
| **整型** | q.skin_id | minecraft:skin_id | |
| **整型\*** | 使用类似 `"test": "is_color"` 的过滤器,下方提供颜色列表 | minecraft:color | 同时在材质系统中设置颜色 |
| **整型\*** | 无对应过滤器语法,可使用 `"has_component"` | minecraft:color2 | 同时在材质系统中设置颜色 |
| 布尔型 | q.is_illager_captain | minecraft:is_illager_captain | |
| 布尔型 | q.is_baby | minecraft:is_baby | 禁用`minecraft:breedable`组件功能 |
| 布尔型 | q.is_sheared | minecraft:is_sheared | |
| 布尔型 | q.is_saddled | minecraft:is_saddled | |
| 布尔型 | q.is_tamed | minecraft:is_tamed | |
| 布尔型 | q.is_chested | minecraft:is_chested | 死亡时会掉落储存箱 |
| 布尔型 | q.is_powered | minecraft:is_charged | |
| 布尔型 | q.is_stunned | minecraft:is_stunned | |
| 布尔型 | q.can_climb | minecraft:can_climb | 允许实体攀爬梯子 |
| 布尔型 | q.can_fly | minecraft:can_fly | 标记实体具有飞行能力,路径查找器将不限于下方有固体方块的位置 |
| 布尔型 | q.can_power_jump | minecraft:can_power_jump | 允许实体执行强力跳跃(如原版马匹动作) |
| 布尔型 | q.is_ignited | minecraft:is_ignited | |
| 布尔型 | q.out_of_control | minecraft:out_of_control | 新版功能,用于处理船体硬编码运动/粒子效果Molang q查询可安全 |
| 布尔型 | q.has_any_family('monster') | minecraft:type_family | 可检测指定Family类型如'monster')返回布尔值
### color与color2组件颜色对照表
::: code-group
```json [颜色代码]
- black
- blue
- brown
- cyan
- gray
- green
- light_blue
- light_green
- magenta
- orange
- pink
- purple
- red
- silver
- white
- yellow
```
:::

View File

@@ -0,0 +1,140 @@
---
title: 非生物运行时标识符
category: 文档
mentions:
- Ciosciaa
- SmokeyStack
- ThomasOrs
---
# 非生物运行时标识符
<!--@include: @/wiki/bedrock-wiki-mirror.md-->
_最后更新于1.19.10 版本_
非生物实体是用于游戏机制或实用功能的不常规实体。典型示例包括抛射物、运输类实体以及模拟方块的实体。这些运行时标识符的属性与普通生物实体有根本性不同,其特殊属性在某些场景下可能具有实用价值。
## 总览
### 服务端属性
| 属性 | 已注册 | 可配置行为 | 可配置碰撞箱 | 可配置方块碰撞 | 可配置重力 | 可配置实体推动性 | 可配置活塞推动性 | 支持传送门 | 生命值类型 | 可受伤害 | 可燃性 | 可击退 | 受效果影响 | 可选择 | 可挂钩 | 可锁定 | 可作为抛射体 | 可沿轨道移动 | 自动骑乘 | 可配置战利品 | 生成行为 |
|------------------------------------------------------------|--------|------------|--------------|----------------|------------|------------------|------------------|------------|-------------------|----------|--------|--------|------------|--------|--------|--------|--------------|--------------|----------|--------------|----------------|
| `minecraft:arrow` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:thrown_trident` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:snowball` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 |
| `minecraft:egg` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 |
| `minecraft:splash_potion` & `minecraft:lingering_potion` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 |
| `minecraft:ice_bomb` | ⚠️ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 |
| `minecraft:llama_spit` | ✅ | ❌ | ⚠️ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:fireball` | ✅ | ❌ | ⚠️ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:small_fireball` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:shulker_bullet` | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:dragon_fireball` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:wither_skull` & `minecraft:wither_skull_dangerous` | ✅ | ❌ | ⚠️ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:ender_pearl` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 |
| `minecraft:fishing_hook` | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | 🐛 | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:xp_bottle` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 抛射物 |
| `minecraft:boat` & `minecraft:chest_boat` | ✅ | ❌ | ✅ | ✅ | ⚠️ | ✅ | ❌ | ✅ | 结构完整性 | ✅ | ✅ | ❌ | ❌ | ✅ | ⚠️ | ❌ | ✅ | ⚠️ | ❌ | ⚠️ | 目标表面 |
| `minecraft:minecart` & 变种 | ✅ | ❌ | ✅ | ❌ | ⚠️ | ❌ | ✅ | ✅ | 结构完整性 | ✅ | ✅ | ❌ | ❌ | ✅ | ⚠️ | ❌ | ⚠️ | ✅ | ❌ | ⚠️ | 轨道 |
| `minecraft:balloon` | ⚠️ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:tnt` | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ⚠️ | ❌ | ✅ | 目标表面 |
| `minecraft:armor_stand` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 结构完整性 | ⚠️ | ✅ | ❌ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | ✅ | ⚠️ | 目标表面 |
| `minecraft:painting` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ⚠️ | 无 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | 目标表面 |
| `minecraft:falling_block` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | 无 | ⚠️ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | 🐛 | ❌ | ❌ | ✅ | 目标表面 |
| `minecraft:ender_crystal` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 |
| `minecraft:leash_knot` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ⚠️ | 无 | ✅ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | 轨道 |
| `minecraft:chalkboard` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 目标表面 |
| `minecraft:tripod_camera` | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 目标表面 |
| `minecraft:area_effect_cloud` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❓ | ❌ | ❌ | ✅ | 目标表面 |
| `minecraft:lightning_bolt` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 |
| `minecraft:evocation_fang` | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 |
| `minecraft:item` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | 物品 | ❌ | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❓ | ⚠️ | ❌ | ✅ | 目标表面 |
| `minecraft:xp_orb` | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ | ✅ | 目标表面 |
| `minecraft:fireworks_rocket` | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ⚠️ | ❌ | ✅ | 目标表面 |
| `minecraft:eye_of_ender_signal` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 无 | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ✅ | 目标表面 |
| `minecraft:elder_guardian_ghost` | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 目标表面 |
| `minecraft:npc` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ❌ | ✅ | ⚠️ | ❌ | ✅ | ❌ | ✅ | ✅ | ⚠️ | ❌ | ❌ | 目标表面 |
| `minecraft:agent` | ❌ | ❌ | ⚠️ | ❌ | ❌ | ❌ | ✅ | ✅ | 生命值 | ✅ | ✅ | ❌ | ❌ | ⚠️ | ⚠️ | ✅ | ❌ | ✅ | ❌ | ⚠️ | 目标表面 |
| `minecraft:shield` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 生命值 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 目标表面 |
### 客户端属性
| 属性 | 客户端实体 | 位置更新 | 插值移动 | 面向方向 | 阴影 | 死亡效果 | 踏步音效 |
|------------------------------------------------------------|------------|----------|----------|----------|------|----------|----------|
| `minecraft:arrow` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:thrown_trident` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| `minecraft:snowball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:egg` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:splash_potion` & `minecraft:lingering_potion` | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:ice_bomb` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:llama_spit` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| `minecraft:fireball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:small_fireball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:shulker_bullet` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| `minecraft:dragon_fireball` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:wither_skull` & `minecraft:wither_skull_dangerous` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:ender_pearl` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:fishing_hook` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| `minecraft:xp_bottle` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:boat` & `minecraft:chest_boat` | ✅ | ✅ | ❌ | ❌ | ⚠️ | ❌ | ❌ |
| `minecraft:minecart` & 变种 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:balloon` | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
| `minecraft:tnt` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:armor_stand` | ✅ | ✅ | ✅ | ✅ | ❌ | ⚠️ | ✅ |
| `minecraft:painting` | ❌ | ✅ | ❓ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:falling_block` | ⚠️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:ender_crystal` | ✅ | ❌ | ❌ | ❌ | ⚠️ | ❌ | ❌ |
| `minecraft:leash_knot` | ✅ | ✅ | ❓ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:chalkboard` | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ |
| `minecraft:tripod_camera` | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ |
| `minecraft:area_effect_cloud` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:lightning_bolt` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:evocation_fang` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:item` | ❌ | ✅ | ✅ | ❌ | ⚠️ | ❌ | ❌ |
| `minecraft:xp_orb` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:fireworks_rocket` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| `minecraft:eye_of_ender_signal` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| `minecraft:elder_guardian_ghost` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| `minecraft:npc` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| `minecraft:agent` | ⚠️ | ✅ | ❓ | ⚠️ | ⚠️ | ✅ | ✅ |
| `minecraft:shield` | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ |
## 属性定义与章节说明
本文档中使用的属性定义用于描述特定运行时标识符实体的行为特征。每个属性配有一个值及可能的附加说明,用以强调关联定义的异常情况。
大多数属性使用表情符号简短表达:
| 值 | 说明 |
|:---:|-------------------------------------------------------------------------|
| ✅ | **激活/可用**<br>该属性在当前运行时标识符实体上通常处于活跃或可用状态。附加说明为特殊情况提供说明。 |
| ⚠️ | **需警告**<br>该属性在特定条件下可用。标有此符号的属性可能需要特别处理。附加说明会细化具体例外情况。 |
| ❌ | **未激活/不可用**<br>该属性在当前运行时标识符实体上不可用。附加说明会阐述实体如何处理该属性。 |
| ❓ | **未知**<br>该属性的具体行为在当前上下文中尚未明确。 |
| 🐛 | **存在漏洞**<br>该属性激活时会导致崩溃或其他错误。附加说明会具体描述漏洞触发条件。 |
### NBT扩展字段
此部分列出该运行时标识符实体专用的NBT字段其他实体不使用字段用途通常在本体注释中说明。
### 特殊查询
若Molang查询在当前运行时标识符上有特殊行为则会在此说明。所有查询在服务端和客户端均可使用。
### 硬编码变量
本节列出该运行时标识符绑定的硬编码Molang变量若无声明则为未定义。所有这些变量服务端和客户端均可使用。
### 特效
本节描述与实体绑定的硬编码粒子或音效。除`minecraft:fireworks_rocket`外,其他效果可通过修改粒子/音效定义进行配置。
### 服务端属性
服务端属性描述实体核心行为机制,包含位置、状态和交互等正规信息。
**已注册**
当实体可通过`/summon`生成且`type`选择器能选中时视为已注册。只要`is_spawnable``true`,生成蛋始终可用。
**可配置行为**
若为是,则该实体可使用通用行为组件(如`minecraft:behavior.panic`)。
**可配置碰撞箱**
此属性激活时,`minecraft:collision_box`生效。某些运行时标识符会强制应用固定碰撞箱或修改碰撞箱计算方式。
**可配置方块碰撞**
当激活时,`minecraft:physics``has_collision`生效。若实体声明了`minecraft:projectile`组件,此属性仍标记为活跃。
(由于长度限制,完整翻译内容超过单次响应限制,将分次响应。)

View File

@@ -0,0 +1,422 @@
---
title: 运行时标识符
category: 文档
mentions:
- MedicalJewel105
- aexer0e
- Luthorius
- SirLich
- TheDoctor15
- ChibiMango
- stirante
- epxzzy
- IlkinQafarov
- TheItsNameless
- SmokeyStack
- ThomasOrs
- Goatfu
---
# 运行时标识符
<!--@include: @/wiki/bedrock-wiki-mirror.md-->
`runtime_identifier` 是位于实体行为文件描述部分的可选参数,用于模拟原版实体的硬编码特性。
它接受原版 Minecraft 标识符,例如 `minecraft:shulker`
::: code-group
```json [行为实体描述]
"description": {
"identifier": "wiki:my_box",
"runtime_identifier": "minecraft:shulker", // 此运行时标识符会将潜影贝的硬编码行为附加到当前实体
"is_spawnable": true,
"is_summonable": true,
"is_experimental": false
}
```
:::tip 注意
需要注意 `runtime_identifier` **仅解析实体的硬编码特性**。这意味着使用100%数据驱动的生物作为运行时标识符不会给实体添加新特性。此外,某些实体运行时可能会覆盖组件部分定义的属性,例如潜影贝实体的碰撞箱尺寸。
:::
:::warning 警告
此处未列出所有运行时标识符效果。建议通过实验自行探索新效果,也欢迎在此补充发现。
:::
## 已知的运行时标识符效果:
- 所有运行时ID都会将实体名称更改为对应原版实体的名称
### minecraft:area_effect_cloud
- 导致实体崩溃
---
### minecraft:armor_stand
- 禁用实体阴影
- 击打时立即消失
- 允许装备穿戴/卸除
- 死亡时掉落盔甲架物品
---
### minecraft:arrow
- 为抛射物添加朝向玩家的动画
- 禁用死亡动画/声音/粒子
- 缩小实体阴影(但不会消失)
- 不可交互
- 通过生成蛋或/summon生成时玩家接触后获得箭矢同时实体消失
- 飞行物理特性和击退效果与箭矢一致
---
### minecraft:axolotl
- 不影响游泳/移动/重力行为
- 类似热带鱼,不同变种值影响水桶名称(如"亮蓝色美西螈桶"或"幼年黄色美西螈桶"
年龄变种: 成年/幼年
颜色变种: 亮色/野生/黄色/青色/蓝色
---
### minecraft:bee
- 添加蜜蜂音效
---
### minecraft:blaze
- 添加烈焰人燃烧音效和粒子
- 实体将具有烈焰人飞行特性(即使未添加飞行行为)
---
### minecraft:boat
- 骑乘时显示船型UI界面
- 禁止实体旋转
- 具有船形固体碰撞箱
---
### minecraft:chest_minecart
- 导致实体崩溃
- 击打后立即消失
- 生成状态异常
- 掉落箱子和矿车
---
### minecraft:chicken
- 部分动画失效
- 更新移动速度
- 实体下落减缓但仍受掉落伤害
- 生成时不携带装备(若原有)
---
### minecraft:cod
- 脱离水体时扑腾
- 使用水桶交互获得鳕鱼桶(放置时生成当前实体而非鳕鱼)
- 赋予特殊游泳和重力特性
---
### minecraft:command_block_minecart
- 导致实体崩溃
- 击打后立即消失
- 生成状态异常
- 掉落矿车
---
### minecraft:cow
- 部分动画失效
- 更新移动速度
- 生成时不携带装备(若原有)
---
### minecraft:dolphin
- 添加 `minecraft:movement.dolphin` 组件
---
### minecraft:donkey
- 将纹理/模型/动画更换为驴子
---
### minecraft:dragon_fireball
- 完全破坏实体
- 生成龙息火球尾迹粒子
---
### minecraft:egg
- 为抛射物添加朝向玩家的动画
- 导致实体崩溃
- 使用生成蛋生成时会出现在玩家位置而非指定位置,且面朝天空
---
### minecraft:elder_guardian
- 将纹理/模型/动画更换为远古守卫者
- 改变部分行为特性
---
### minecraft:ender_crystal
- 实体将固定在生成方块的中央
- 除传送外始终保持位置不变
- 可放置于任何表面
- 其他实体可穿透
- 无法配置承受伤害
- 无法改变朝向
- 可复活末影龙
- 生成时带火焰效果
---
### minecraft:ender_dragon
- 添加末影龙死亡特效
- 继承末影龙碰撞箱
- 破坏碰撞箱内所有方块(包括底部方块),建议在下方放置不可破坏方块/移除重力/禁用`mobGriefing`规则
- 对碰撞箱2格范围内的玩家造成伤害
- 增加渲染距离
- 只能通过/kill指令消除
---
### minecraft:ender_pearl
- 破坏实体行为
- 受伤时生成粒子
---
### minecraft:endermite
- 受伤时生成粒子
- 导致旋转异常
- 部分动画失效
---
### minecraft:evocation_fang
- 对接触实体造成伤害
- 完全禁用碰撞
---
### minecraft:falling_block
- 导致实体崩溃并下落
- 接触地面后无动画消失,掉落金合欢按钮
- 移除效果附着能力
### minecraft:horse
- 将纹理/模型/动画更换为马匹
---
### minecraft:iron_golem
- 允许发动攻击(击退效果垂直增强)
- 加速四肢动画可手动修复为约1/4速度
- 可能与村庄/村民逻辑冲突
---
### minecraft:llama_spit
- 添加羊驼唾沫粒子
---
### minecraft:minecart
- 禁用实体阴影
- 死亡时掉落矿车
- 禁止实体旋转
---
### minecraft:panda
- 使`q.is_grazing`和`q.sit_mount`能与`minecraft:behavior.random_sitting`组件协同工作
---
### minecraft:parrot
- 启用翅膀扇动动画
- 缓慢降落
- 跟随音乐唱片跳舞
---
### minecraft:piglin
- 启用`minecraft:celebrate_hunt`功能(激活 q.is_celebrating
---
### minecraft:player
- 激活`q.movement_direction`
---
### minecraft:pufferfish
- 脱离水体时扑腾
- 使用水桶交互获得河豚桶(放置时生成当前实体而非河豚)
- 赋予特殊游泳和重力特性
---
### minecraft:salmon
- 脱离水体时扑腾
- 使用水桶交互获得鲑鱼桶(放置时生成当前实体而非鲑鱼)
- 赋予特殊游泳和重力特性
---
### minecraft:sheep
- 使`q.is_grazing`能与`behavior.eat_block`组件协同工作
---
### minecraft:shulker
冒险模式玩家的方块拟态神器
- 1x1x1固体碰撞箱
- 固定于生成方块的中央
- 附着方块被破坏后传送至附近可用位置
- 在非完整方块(床/台阶等)上生成时自动传送
- 无法修改碰撞箱尺寸
---
### minecraft:shulker_bullet
- 生成潜影贝导弹尾迹粒子
---
### minecraft:slime
- 下落时生成黏液粒子
- 根据变体值分裂1-5为史莱姆常规尺寸5以上视为中型
- 允许攻击同时保持史莱姆跳跃机制(无此标识符时攻击状态无法转向)
---
### minecraft:snowball
- 移除碰撞箱
- 不可交互
- 生成于玩家头部位置
- 无视重力
- 移除实体阴影
- 恒定面朝南方
- 无法发出踏步音效
---
### minecraft:spider
- 蛛网减速失效
---
### minecraft:skeleton
- 治疗效果造成伤害/瞬间伤害效果恢复生命
- 亡灵杀手附魔增伤
- 变体≥1时近战与远程攻击附加凋零效果
---
### minecraft:stray
- 治疗效果造成伤害/瞬间伤害效果恢复生命
- 亡灵杀手附魔增伤
- 免疫冰冻伤害
---
### minecraft:squid
- 支持特殊行为组件参考squid.json
- 受伤时生成墨汁粒子
---
### minecraft:thrown_trident
- 为抛射物添加朝向玩家的动画
- 禁用死亡动画/声音/粒子
- 缩小实体阴影(但不会消失)
- 不可交互
- 飞行物理特性和击退效果与三叉戟一致
---
### minecraft:tropicalfish
- 脱离水体时扑腾
- 赋予特殊游泳和重力特性
- 使用水桶获得热带鱼桶若无variant/mark_variant/color定义则为白色考伯鱼规格含相关组件时桶名与实体规格对应
---
### minecraft:wither_skull_dangerous
- 死亡时掉落凋零玫瑰
- 被击杀实体会在原地生成凋零玫瑰(僵尸类异常掉落)
- 持续生成基础烟雾粒子
- 无视重力使projectile组件实体直线运动
- 免疫所有伤害
- 仅对无AI目标的实体生效适用于假人实体和弹射物
---
### minecraft:xp_orb
- 完全禁用碰撞
- 接触玩家增加经验值
### minecraft:zombie
- 治疗效果造成伤害/瞬间伤害效果恢复生命
- 亡灵杀手附魔增伤
---
### minecraft:wither
- 死亡时爆炸
---

View File

@@ -0,0 +1,194 @@
---
title: 生成已驯服的实体
category: 教程
tags:
- 中级
mentions:
- Axelpvz2030
- aexer0e
- SirLich
- MedicalJewel105
- SmokeyStack
- ThomasOrs
---
# 生成已驯服的实体
<!--@include: @/wiki/bedrock-wiki-mirror.md-->
在本教程中,您将学习如何通过向特定玩家触发事件来生成预驯服的实体,以及如何投掷在撞击时变形为已驯服实体的物品。
## 概述
传统方式中,若要让玩家驯服实体,必须通过 `minecraft:tameable` 强制玩家与实体互动。但我们也可以利用原版弹射物会记录生成者*\*的特性来实现预驯服实体的生成。
具体实现步骤:
1. 通过 `minecraft:spawn_entity` 生成一个中间态弹射物实体
2. 该实体将立即转换为预驯服的目标实体(本教程以原版狼为例)
3.`minecraft:transformation` 组件中将 `keep_owner` 设置为 `true`
\*: 需要区分 _Spawn生成__Summon召唤_ 的区别。只有通过生成蛋或 `minecraft:spawn_entity` 组件生成的弹射物才会记录玩家信息,使用 `/summon` 命令生成的则不会。
## player.json
我们需要对玩家行为文件进行微调,添加一个事件来激活组件组用于生成中间态实体。
您可以在 Mojang 提供的[原版行为包模板](https://aka.ms/behaviorpacktemplate)中找到玩家实体的行为文件。
::: code-group
```json [BP/entities/player.json]
{
"format_version":"1.16.0",
"minecraft:entity":{
"description":{
"identifier":"minecraft:player",
"is_spawnable":false,
"is_summonable":false,
"is_experimental":false
},
"component_groups":{ // 组件组定义
"wiki:spawn_tamed_wolf":{
"minecraft:spawn_entity":{
"entities":{
"min_wait_time":0,
"max_wait_time":0,
"spawn_entity":"wiki:pretamed_wolf",
"single_use":true,
"num_to_spawn":1
}
}
}
},
...
"events":{ // 事件定义
"wiki:spawn_tamed_wolf":{
"add":{
"component_groups":[
"wiki:spawn_tamed_wolf"
]
}
}
}
}
}
```
:::
## pretamed_wolf.json
创建一个使用 `minecraft:arrow` 作为运行时标识符(也可选用其他弹射物标识符)的自定义实体,包含空白弹射物组件和用于转换为驯服狼的变形组件。
::: code-group
```json [BP/entities/pretamed_wolf.json]
{
"format_version": "1.16.0",
"minecraft:entity": {
"description": {
"identifier": "wiki:pretamed_wolf",
"runtime_identifier": "minecraft:arrow",
"is_spawnable": false,
"is_summonable": true,
"is_experimental": false
},
"components": { // 组件配置
"minecraft:projectile": {}, // 弹射物组件
"minecraft:transformation": { // 变形组件
"into": "minecraft:wolf<minecraft:on_tame>",
"keep_owner": true // 保持归属关系
}
}
}
}
```
:::
现在即可通过命令 `/event entity @p wiki:spawn_tamed_wolf` 在玩家身边生成驯服的狼。若将 `is_spawnable` 设为 `true` 还可通过生成蛋调用!
:::warning 重要提示
如需生成自定义实体而非原版狼:
1. 必须为实体添加 `minecraft:is_tamed` 组件
2. 未被驯服的实体可能出现预期外的行为
:::
## 集成物品抛射物(替代方法)
利用 [1.16 实验性物品特性](/items/item-components) 中的 `shoot` 事件属性,可制作碰撞时转换为已驯服实体的弹射物。
::: code-group
```json [BP/items/throwable_pretamed_wolf.json]
{
"format_version":"1.16.100",
"minecraft:item":{
"description":{
"identifier":"wiki:throwable_pretamed_wolf"
},
"components":{ // 物品组件
"minecraft:on_use":{
"on_use":{
"event":"wiki:on_use" // 使用事件触发
}
}
},
"events":{ // 事件配置
"wiki:on_use":{
"shoot":{
"projectile":"wiki:pretamed_wolf" // 发射自定义弹射物
}
}
}
}
}
```
:::
同时需修改弹射物实体的转化逻辑以避免即时变形:
::: code-group
```json [BP/entities/pretamed_wolf.json]
{
"minecraft:entity":{
"description":{
"identifier":"wiki:pretamed_wolf",
"runtime_identifier":"minecraft:arrow",
"is_spawnable":false,
"is_summonable":true,
"is_experimental":false
},
"component_groups":{ // 组件组定义
"wiki:transform_to_entity":{
"minecraft:transformation":{
"into":"minecraft:wolf<minecraft:on_tame>",
"keep_owner":true
}
}
},
"components":{ // 组件配置
"minecraft:projectile":{
"on_hit":{ // 碰撞触发配置
"impact_damage":{
"damage":0 // 禁用伤害
},
"stick_in_ground":{}, // 插入地面
"definition_event":{
"event_trigger":{
"event":"wiki:on_hit" // 碰撞事件触发
}
}
}
}
},
"events":{ // 事件响应
"wiki:on_hit":{
"add":{
"component_groups":[
"wiki:transform_to_entity" // 添加变形组件组
]
}
}
}
}
}
```
:::
特别感谢 [Zarkmend ZAN](https://twitter.com/Zarkmend_ZAN) 发现这一方法 :)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff