
**DBetterModel 3.4.0: 为 BetterModel 和 Denizen 增加了互操作性!**
[](https://www.spigotmc.org/resources/dbettermodel.127341/)
[](https://modrinth.com/plugin/dbettermodel)
[](https://hangar.papermc.io/meigoc/DBetterModel)
[](https://www.codefactor.io/repository/github/meigoc/DBetterModel)
[](https://github.com/meigoc/DBetterModel/issues)
# 支持:
支持 BetterModel v1.10.2,Minecraft 1.21.4,Denizen 1.3.1 (7144)
| BetterModel 版本 | 最新支持的 DBetterModel 版本 |
|----------------------|-------------------------------|
| 1.10.2 | [3.4.0](https://github.com/meigoc/DBetterModel/releases/tag/v3.4.0) |
| 1.10.0-1.10.1 | [3.3.0](https://github.com/meigoc/DBetterModel/releases/tag/v3.3.0) |
| 1.9.0-1.9.3 | [2.1.0](https://github.com/meigoc/DBetterModel/releases/tag/v2.1.0) |
| 1.8.0-1.8.1 | [2.0.1](https://github.com/meigoc/DBetterModel/releases/tag/v2.0.1) |
| 1.5.5 | [1.1.0](https://github.com/Ignaacioo/DBetterModel/releases/tag/v1.1.0) |
| 1.5.1 | [1.0.0](https://github.com/Ignaacioo/DBetterModel/releases/tag/v1.0.0) |
# 文档 (3.4.0)
-----
## 命令
### BMModel
为实体添加或移除模型。这对于可以拥有多个模型的实体是必需的。
- **语法**: `bmmodel entity:
model: (remove)`
- **示例**:
- 添加模型:
`bmmodel entity: model:my_model`
- 移除模型:
`bmmodel entity: model:my_model remove`
### BMState
播放或停止实体上特定模型上的分层动画状态,可以选择限制在特定的骨骼上。 此命令支持通过允许将动画应用于模型特定部分来同时应用多个动画。
- **语法**: `bmstate entity: model: state: (bones:) (loop:) (speed:<#.#>) (lerp_frames:<#>) (remove)`
- **参数**:
- `bones:`: 应用此动画的可选骨骼名称列表。如果未提供,则动画将应用于整个模型。
- `loop`: 设置播放模式。它可以是:
- `once` (播放一次),
- `loop` (无限重复),
- `hold` (播放一次并冻结在最终帧上)。
- `remove`: 一个标志,用于停止指定的动画。
- **示例**:
- 在特定的腿骨上播放循环的 'walk' 动画:
`bmstate entity: model:robot state:walk bones:left_leg|right_leg loop:loop`
- 在手臂上播放单次 'shoot' 动画,同时不停止其他动画:
`bmstate entity: model:robot state:shoot bones:right_arm`
### BMBillboard
将一个公告板效果应用于模型的一个特定骨骼,使其始终面向玩家。
- **语法**: `bmboard entity: model: bone: type:`
- **类型 (`type`)**:
- `fixed`: 禁用公告板效果.
- `vertical`: 骨骼仅在 Y 轴上旋转.
- `horizontal`: 骨骼在 X 轴和 Z 轴上旋转.
- `center`: 骨骼在所有轴上旋转以面向玩家.
- **示例**:
- 使 'head' 骨骼始终面向玩家:
`bmboard entity: model:my_mob bone:head type:center`
### BMLimb
播放特定玩家的动画。这些动画来自 `players` 文件夹中的模型。 要停止循环或保持的动画,您可以覆盖它来播放另一个动画。
- **语法**: `bmlimb target: model: animation: (loop:) (hide:)`
- **模式 (`loop`)**:
- `once`: 动画播放一次 (默认)。
- `loop`: 动画无限重复。
- `hold`: 动画播放一次并冻结在最终帧上。
- **示例**:
- 让玩家执行 'roll' 动画:
`bmlimb target: model:steve animation:roll`
- 开始一个重复的 'dance' 动画:
`bmlimb target: model:player_gestures animation:dance loop:loop`
- 让玩家摆出一个姿势并保持:
`bmlimb target: model:player_poses animation:heroic_pose loop:hold`
### BMPart
将一名玩家的皮肤部分 (例如,头部、披风、身体) 应用于模型的特定骨骼。
* **语法**: `bmpart entity: model: bone: part: from:`
* **参数**:
* `entity:`: 将皮肤部分应用于的目标实体。
* `model:`: 附加到实体的 BetterModel 模型名称.
* `bone:`: 模型中的骨骼名称,用于映射皮肤部分。
* `part:`: `PlayerLimb` 值之一 (例如, `head`, `body`, `left_arm`, `cape`)。
* `from:`: 将使用的玩家的皮肤。
* **描述**:
* 动态地将指定的骨骼映射到玩家的皮肤的一部分。使用 BetterModel 的皮肤管理器和骨骼项目映射器来处理获取、缓存和渲染。
* **示例**:
* 将玩家的头部应用到雕像的头部骨骼:
`bmpart entity:<[statue_entity]> model:statue_model bone:head part:head from:`
## 事件
### bm starts reload
- **事件**: `bm starts reload`
- **触发**: 当 BetterModel 开始重新加载其配置和模型时触发。
### bm finishes reload
- **事件**: `bm finishes reload`
- **触发**: 当 BetterModel 完成重新加载其配置和模型时触发。
- **上下文**:
- ``: 返回重新加载是否为 'Success', 'Failure', 或 'OnReload'。
## 对象和标签
### BMEntityTag
表示具有一个或多个 BetterModel 模型附加的实体。
- **前缀**: `bmentity`
- **格式**: 身份格式是基础实体的 UUID (例如, `bmentity@dfc67056-b15d-45dd-b239-482d92e482e5`)。
- **标签**:
- ``: 如果实体具有任何 BetterModel 模型,则返回实体的 `BMEntityTag`。 如果实体没有模型,则返回 null。
- ``: 作为 `EntityTag` 返回基本 Bukkit 实体。
- `)]>`: 返回附加到实体上的指定模型名称的 `BMModelTag`。 如果未提供名称,则返回附加到实体的第一个模型。
### BMModelTag
表示附加到实体上的特定模型实例。
- **前缀**: `bmmodel`
- **格式**: 身份格式为 `,` (例如, `bmmodel@dfc67056-b15d-45dd-b239-482d92e482e5,dummy`)。
- **标签**:
- ``: 返回模型的名称。
- ``: 返回此模型的父级 `BMEntityTag`。
- ``: 返回一个 `MapTag`,其中包含模型中的所有骨骼,其中键是骨骼名称,值是 `BMBoneTag`。
- `]>`: 返回具有指定名称的模型的 `BMBoneTag`。
### BMBoneTag
表示实体上特定模型实例中的单个骨骼。
* **前缀**: `bmbone`
* **格式**: `,,`
(例如, `bmbone@dfc67056-b15d-45dd-b239-482d92e482e5,dummy,head`)
* **标签**:
* ``: 返回骨骼的名称 (`ElementTag`)。
* ``: 返回骨骼的世界位置 (`LocationTag`)。
* ``: 返回骨骼是否可见 (`ElementTag(Boolean)`)。
* ``: 返回父级模型 (`BMModelTag`)。
* **机制**:
* `tint:`
将 RGB 颜色阴影应用于骨骼的项目。
()
* `scale:`
设置骨骼的比例矢量。
* `visible:` 或 `ListTag`
设置所有或特定玩家的可见性。
* `item:`
设置骨骼显示的项目。
* `offset:`
设置骨骼项目的本地偏移量。
* `rotate:`
向骨骼添加额外的旋转。
* `view_range:`
设置骨骼在方块中的渲染距离。