
击倒
用于播放多个实体动画的框架
重要
请使用 0.1.1+ 版本以适配最新版 Hytale (2026.02.17)。
若你使用的是旧版 Hytale,请使用 0.1.0 版本。
你可通过谷歌文档阅读此信息(如更偏好该方式):
https://docs.google.com/document/d/1QEx2OEsehDNb8C7NgbI19sY5svF0M6ZyCRJFSVfUsgM/edit?usp=sharing
关于
Takedown 是一个为创作者设计的插件,用于为实体交互添加自定义动画,例如当怪物生命值仅剩 10% 时播放处决动画,或为两名玩家添加击掌动画。
所有动画均可直接在资源编辑器中配置,无需外部配置文件,也无需学习插件开发。
包含的示例动画:

快速入门
该插件包含一个示例动画,可帮助您快速上手。
步骤 1.
打开资源编辑器
- 打开聊天框并输入 /op self
- 按下 Tab 键
- 点击 创造工具 -> 资源 -> 资源编辑器

步骤 2.
创建您的资源包
- 点击左上角的 "..." 按钮,并选择 添加包

- 为包命名并选择分组,然后点击 保存

步骤 3.
添加示例玩家动画
- 点击左上角的 "+" 按钮

- 将唯一资源 ID 设置为:TD_你的模组名_Player(将 "你的模组名" 替换为你想要的任何名称)

关键:唯一资源 ID 必须以 TD_ 开头,并且至少包含两个下划线,否则将无法工作。
- 复制以下代码
{
"AnimationSets": {
"Death": {
"Animations": [
{
"Animation": "Characters/Animations/Damage/Default/Death.blockyanim"
},
{
"Animation": "Characters/Animations/Damage/Default/Death2.blockyanim"
}
]
},
"E1_Spine_Cracker": {
"Animations": [
{
"Animation": "Characters/Origin_Takedown_Spine_Cracker.blockyanim"
}
]
}
},
"Model": "Characters/Player_With_Face.blockymodel",
"Texture": "Characters/Player_Textures/Player_Greyscale.png",
"HitBox": {
"Max": {
"X": 1,
"Y": 1,
"Z": 1
}
},
"Tags": {
"models": [
".*player.*"
],
"E1_Spine_Cracker": [
"frames=180"
]
},
"Camera": {
"PositionOffset": {
"Z": -20,
"Y": -3
}
}
}
- 点击 源码 标签页,并粘贴上述代码

- 点击 创建
步骤 4.
添加示例骷髅动画
重复添加玩家动画的步骤。
对于唯一资源 ID,这次使用 TD_你的模组名_Skeleton。
并使用以下代码:
{
"AnimationSets": {
"E2_Spine_Cracker": {
"Animations": [
{
"Animation": "Characters/Skeleton-Origin_Takedown_Spine_Cracker.blockyanim"
}
]
}
},
"Model": "NPC/Undead/Skeleton/Models/Model.blockymodel",
"Texture": "NPC/Undead/Skeleton/Models/Model_Textures/White.png",
"HitBox": {
"Max": {
"X": 1,
"Y": 1,
"Z": 1
}
},
"Tags": {
"models": [
".*skeleton.*"
],
"Apply_Death": [
"health=-100%"
],
"E2_Spine_Cracker": [
"apply=Apply_Death"
]
}
}
步骤 5.
测试动画
如果一切操作正确,当你击中游戏中的任何骷髅怪物时,将播放此动画:

配置动画
哪些怪物可以使用特定动画、播放动画所需的条件、动画结束后会发生什么等设置,均通过资源编辑器进行配置。
命名规则
为了使动画能与插件配合使用,动画名称必须遵循特定规则。
玩家示例:

怪物示例:

模型命名
每个模型的名称必须以 TD_ 开头,并且至少包含两个下划线。这是为了降低多个模组使用相同名称的风险。
动画命名
动画名称必须以 E#_ 开头,才能用于处决动画的开头。
E1 和 E2 分别是实体1和实体2的缩写。
E1 通常用于攻击/执行动作的实体。
E2 通常用于承受伤害/接收动作的实体。
插件通过模型名称和动画名称是否匹配来确定动画的关联性。
从技术上讲,框架支持无限数量的实体,只需递增 E 旁边的数字,例如 E3、E4 等。
对于属于处决动画的一部分但并非开头的动画,可以添加任何前缀,例如 Kill_E1_Spine_Cracker 或 Cripple_E1_Spine_Cracker。
为多个实体复用动画
要为使用不同模型的实体复用相同的动画,可以配置 models 标签:

当将其设置为 .*player.* 时,意味着这些动画可用于任何使用玩家模型的实体(模型名称中包含 "player" 一词的模型)。
如果你想精确匹配某个模型名称,可以直接使用 Player。
你可以在 models 标签中添加多个值来匹配不同的模型。
如果对此进行了更改,建议使用 /td-reset 命令清除插件缓存。
可用实体
要查找可用实体模型的名称,可以使用 生成实体 菜单。
- 在创造模式下,按 Tab 键打开物品栏
- 点击 世界 -> 生成实体

- 搜索可用的实体

此列表中的名称与模型资源名称一致。
常规动画设置
在 动画 标签页中,可以找到标准设置,例如使用的文件、速度和循环:

在 常规 标签页中,你可以通过一个与动画同名的标签来配置附加设置:

设置概览
- frames - 动画的总帧数。这是动画能够播放的必要条件。
- loops - 动画的循环次数。
- if - 播放此动画所需的条件。
- apply - 在动画结束时修改的属性。
- applyDuring - 在动画持续期间每个游戏刻(tick)修改的属性。
- next - 在此动画之后播放的动画。如果未包含此设置,当前动画播放完毕后将停止。
对于 frames 和 loops,这两个设置仅对名称中包含 E1 的动画是必需的。
对于 E2 及以上的动画,它将使用与 E1 动画相同的值。
配置示例如下:

添加条件
要控制动画何时可以播放,可以添加条件。
示例:

此示例要求实体手持任何剑,并且体力值和生命值均低于 50%。
你可以使用任何你想要的名称来代替 Condition。
这允许你为不同的动画重复使用和设置多个条件。
条件设置概览
- holding - 实体必须持有的物品。
将此项设置为
holding=表示实体手中不持有任何物品。 - health / stamina / mana - 实体所需的生命值/体力值/魔法值。
使用
<表示小于,>表示大于,%表示最大值的百分比。 - attachments - 实体所需的模型附属物。它根据模型附属物的文件名进行检查。
为每个实体添加条件
每个条件(如 health)都是特定于将要播放该动画的实体。 要添加检查两个实体属性的条件,你需要为每个实体分别定义条件。
攻击者示例:

防御者示例:

在此示例中,将同时使用攻击者和防御者的条件来判断是否可以发起处决动画。
攻击者需要拥有超过 50% 的体力值,而防御者需要拥有少于 30% 的生命值。
添加应用效果 (Apply Effects)
应用效果可用于在处决动画期间或之后改变实体的属性。
你可以像这样添加一个应用效果:

这将减少该实体 30% 的生命值。
你可以使用任何你想要的名称来代替 Apply_Damage。
这允许你为不同的动画配置多个应用效果。
要在每个游戏刻(tick)应用效果,可以使用 applyDuring 标签。请注意,由于它每个游戏刻都会应用(默认为每秒 30 次),你需要相应调整数值。
应用效果设置概览
- health / stamina / mana - 修改此项属性的具体数值。
你可以省略
%来使用固定数值。
分支动画
可以使用 next 设置让处决动画包含一系列动画序列中的多个动画。
可以通过以下方式定义不同的可能选项:

在这种情况下,它会首先检查是否可以播放 Kill_E1_Spine_Cracker,如果条件不满足,则会接着检查是否可以播放下一个动画:Cripple_E1_Spine_Cracker。
防御者的条件为:

由于 Cripple_E2_Spine_Cracker 没有设置任何条件,如果条件不满足,该动画将始终播放。
如何创建动画
为 Takedown 创建动画时,需要遵循一些特定步骤,所以即使你知道如何在 Blockbench 中制作动画,这些信息仍然很重要。
动画使用 Blockbench 创建。
创建动画时,需要将 吸附 (Snapping) 设置为 60。
安装 Blockbench
你可以从这里获取 Blockbench: https://www.blockbench.net/
你还需要为 Blockbench 安装 Hytale Models 插件: 在 Blockbench 中:文件(File) > 插件(Plugins)。
在哪里找到 Hytale 资源
你可以在游戏安装目录中找到官方的 Hytale 资源文件。
Hytale/install/release/package/game/latest/Assets.zip
如何在同一个 Blockbench 项目中使用两个 .blockymodel 文件
Hytale Models 插件要求所有组 (groups) 都有唯一的名称。
如果你尝试将两个模型导入一个项目,它会重命名冲突的组,同时保留不冲突的组名。
问题在于,Hytale 要求组的名称保持不变,动画才能在游戏中正常工作。
因此,为了解决这个问题,我们需要为其中一个模型添加我们自己的前缀,以便后续可以轻松移除。
添加前缀
要为 .blockymodel 文件添加前缀,我建议使用带有替换功能的文本编辑器,例如 VSCode:
https://code.visualstudio.com/
- 在 VSCode 中打开 .blockymodel 文件
- 按 Ctrl/Command + F 进行搜索
- 展开搜索框以显示替换字段
- 在搜索字段中输入:
"name": " - 在替换字段中输入:
"name": "Mob-(或任何其他有意义的前缀)

- 点击替换字段旁边的 全部替换(Replace All) 按钮
- 如果操作正确,你现在应该看到:

- 保存文件
如果你的动画包含两个 .blockymodel 文件,你可以保持另一个 .blockymodel 文件中的名称不变。
将模型放入同一个项目
首先打开其中一个 .blockymodel。
从起始屏幕:点击底部的 打开模型(Open Model)

如果已打开一个模型:前往 文件(File) > 打开模型(Open Model)

然后对第二个模型执行相同操作,这样你就同时打开了两个模型。
在 大纲视图(Outliner) 中,复制组 (group):

打开第二个模型,并将复制的组粘贴到大纲视图中:

现在你应该在同一个 Blockbench 项目中同时拥有两个模型。
保存 .blockyanim 文件
每个模型需要其自己的 .blockyanim 动画文件。
在继续之前,请确保文件已保存。
在 编辑(Edit) 标签页的大纲视图中,删除其中一个模型组:

然后在 动画(Animate) 标签页中,选择 动画(Select Animation) > 导出 Blockyanim(Export Blockyanim)

重要
请勿撤销操作并保存。
当你撤销时,它只会带回你删除的模型,但不会带回其动画。动画将会完全丢失。
相反,请关闭模型,然后重新打开你之前保存的那个文件。
接着删除另一个模型,并为另一个模型导出 .blockyanim 文件。
现在你应该有两个 .blockyanim 文件,一个用于带有 "Mob-" 前缀(或你使用的前缀)的模型。
从 .blockyanim 文件中移除前缀
与添加前缀的步骤类似,你需要使用带有替换功能的文本编辑器打开 .blockyanim 文件。
打开 .blockyanim 文件,并将 "Mob- 替换为 ":

然后保存文件。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。