自定义模型
从 EliteMobs 7.3.12 版本开始,通过 Model Engine 和 FreeMineCraftModels,自定义模型已被添加到 EliteMobs 中。
前言
从 EliteMobs 的角度来看,自定义模型系统非常简单,因为管理员只需在 NPC 或自定义 Boss 配置文件中添加一行来告诉它使用哪个自定义模型。然而,为了使该系统完全正常运行,必须在 Model Engine 和 Minecraft 中采取正确的步骤,而这些并不那么容易上手。
本指南将详细介绍与 Model Engine 和 Minecraft 交互的相关内容。它不会教你如何使用 Blockbench 创建自定义 Boss,也不会详细介绍 Model Engine 的工作原理。在其他地方已经有大量关于如何做到这一点的指南,如果你想了解更多关于这些系统的信息,最好直接查看它们的文档。
FreeMineCraft Models
如果你想了解如何使用 FMM 让你的模型正常工作,可以查看[这个](../Free Minecraft Models/info.md) wiki 页面以了解更多信息。
最低要求
EliteMobs 7.3.12 或更高版本,Model Engine R2.2.0* 或更高版本,Blockbench**,使用 Minecraft 资源包。
* 此插件可能有进一步的依赖项。请查看他们的文档。 ** 创建和编辑自定义模型时必需。如果你只是想安装内容而不修改它,则不需要。
手动设置自定义模型
注意:本指南假设你已经有一个有效的自定义模型。这些模型采用 Blockbench 文件格式(.bbmodel)。
EliteMobs 可以为 NPC 和自定义 Boss 使用自定义模型。执行此操作的过程对两者都是相同的,如下所示:
步骤 1. 设置 EliteMobs 配置
转到你想要修改的自定义 Boss 或 NPC 的配置文件,并添加以下行:
customModel: modelname
将 modelname 替换为你的模型名称。该名称是你正在使用的自定义模型文件的名称。例如,Test Boss 的自定义模型文件是 showcase_boss.bbmodel。因此,配置选项应该是
customModel: showcase_boss
对于 EliteMobs 来说就是这样!现在它变得有点棘手了。
步骤 2. 生成 Model Engine 数据
注意:如有疑问或问题,请参阅此处的 Model Engine wiki。
- 将你的自定义模型 Blockbench 文件(
.bbmodel)放入目录(yourServer)/plugins/ModelEngine/blueprints中。 - 运行命令
/meg reload。如果一切正常,你应该会收到一条消息说[Model Engine] X models loaded,其中x是你已注册的模型数量。
步骤 3. 生成资源包
注意:现在有一种更简单的替代方法来执行此步骤,链接在此。 但是,它比这里列出的方法灵活性稍差。
如果你想让你的服务器管理下载,这可能是最棘手的部分。在研究如何自动分发之前,请尝试检查当你的客户端拥有资源包时系统是否正常工作!
- 转到目录
(yourServer)/plugins/ModelEngine/resource pack,使用该数据创建资源包,或将其中的assets文件夹添加到你的资源包的assets中 - 将你的资源包分发给你的玩家。只有拥有资源包的玩家才能看到自定义模型,对其他所有人来说它看起来会非常奇怪和破碎。如果你打算大量使用这些,你可能希望强制使用资源包。
- (可选) 要允许玩家在登录时下载资源包,你需要在线托管该文件,并更改 server.properties 中的
resource-pack=字段以指向该地址。* - (可选) 如果你正在修改资源包,你将需要使用
resource-pack-sha1=选项,以便服务器可以检查玩家的资源包是否需要更新。要生成此值,请将你的资源包上传到 http://onlinemd5.com/,并确保选择 SHA1 选项。每次更新资源包时都必须执行此操作,否则你的用户将无法获得更新。* - (可选) 要强制玩家使用资源包,在 server.properties 中使用选项
require-resource-pack=true。*
- (可选) 要允许玩家在登录时下载资源包,你需要在线托管该文件,并更改 server.properties 中的
如果你修改了 server.properties,则需要重启!
* 注意:如果这些说明对你没有帮助,网上有很多指南可以帮助你完成此操作。
合并资源包
如果你需要合并资源包,可以手动执行此操作。但我们建议使用在线工具,例如 merge.elmakers 来合并你的资源包。
步骤 4. 希望它能工作
假设一切都正确完成,你现在应该能够在你的 Boss 或 NPC 上看到自定义模型。你可以通过以下命令生成它们:
- 自定义 Boss:
/em spawncustom filename.yml - NPC:
/em spawnnpc filename.yml
然后你可以通过命令 /em remove 删除它们。
为 EliteMobs 创建和调整自定义模型
EliteMobs 可以使用 Model Engine 认为有效的任何模型,这意味着几乎没有什么不能用它完成的。
但是,当涉及到动画时,需要使用特定的动画名称来保证 Boss 可以使用这些动画。
这些动画名称是在 Blockbench 的动画选项卡中设置的。你可以随时重命名它们,这意味着你可以改造任何现有模型以与 EliteMobs 一起使用。
动画
请注意,此部分仍在扩展中,因为此系统仍然非常新。随着功能请求的增加,将会添加更多内容。
idle
idle 是不在战斗中且不移动的实体的正确动画名称。EliteMobs 不修改 Model Engine 使用的默认 idle 动画系统。
walk
walk 是正在移动的实体的正确动画名称。EliteMobs 不修改 Model Engine 使用的默认 idle 动画系统。
attack
有三种类型的攻击动画:
attack
attack 是 Boss 攻击时的正确通用动画名称。
attack_melee
attack_melee 是当自定义 Boss 使用原版 Minecraft 近战攻击攻击实体时的正确动画名称。覆盖 attack。请注意,动画在造成伤害之后播放。不幸的是,这目前是一个限制。因此,尝试使动画非常快。
attack_ranged
attack_ranged 是当自定义 Boss 生成抛射物实体时的正确动画名称。覆盖 attack。请注意,动画在发射抛射物之后播放。不幸的是,这目前是一个限制。因此,尝试使动画非常快。
damaged
damaged 是自定义 Boss 受到伤害时播放的受伤动画的正确动画名称。
death
death 是死亡动画的正确动画名称。EliteMobs 不修改 Model Engine 使用的默认 idle 动画系统。
powers
注意:此部分仍在开发中。以下是计划中的功能。
EliteMobs 中的每个能力都可以分配一个动画。动画始终在触发能力时开始,并且在使用能力的整个过程中目前不提供进一步的触发器。某些能力,例如无敌,不会执行任何操作,因为它们没有触发器,只是 Boss 的被动属性。
为了将动画分配给能力,动画必须与 elitemobs 能力文件同名。
例如,要向僵尸死灵之书能力添加动画,动画应命名为 zombie_necronomicon.yml。它将在触发能力后立即开始播放,并在动画结束时结束(如果未设置为循环)或在能力完成时结束。
从地下城导入自定义模型
步骤 1. 正常导入
导入包含自定义模型的地下城打包器压缩文件夹后,自定义模型会自动移动到 (yourServer)/plugins/ModelEngine/blueprints,并且 Model Engine 会自动重新加载以生成相关的资源包和 Model Engine 文件。
步骤 2. 生成资源包
如果你在重新加载 EliteMobs 以导入文件时在线,EliteMobs 将自动在聊天中发布一条消息,你可以点击它来生成 EliteMobs 资源包。或者,你可以运行命令 /em generateresourcepack 来生成它。
运行此命令会以非破坏性的方式将所有资源包文件复制到 EliteMobs 的 exports 文件夹中。这意味着,如果你使用资源包名称 elitemobs_resource_pack 将资源包解压到 exports 文件夹中,除非从 ModelEngine 获得同名文件(pack.meta 和 pack.png 除外),否则 EliteMobs 不会删除其中的任何文件。这样,你就可以更新资源包而不会丢失之前放入其中的模型。
最后,EliteMobs 将 exports 文件夹中的资源包压缩,该文件就可以分发了
完成此操作后,EliteMobs 还会建议更新资源包的 SHA1 代码。
步骤 2.5. 更新 SHA1
server.properties 文件中的 SHA1 代码用于让客户端知道他们的资源包是否过时,并在必要时使他们更新。可以通过 EliteMobs 生成此代码,方法是点击步骤 2 后聊天中出现的选项,或运行命令 /em updateresourcepack
请记住,这会使用 exports 文件夹中压缩资源包的正确 SHA1 代码更新你的 server.properties 文件。 如果你在运行命令后删除或修改压缩文件,它将无法工作。
步骤 3. 使文件公开可用
在你选择的位置托管该文件。有些人使用 Google Drive 或 Dropbox。如果你有能力,最好自己托管此文件。一些插件可能还可以帮助你直接从 Minecraft 服务器托管它。如果你找到一个有效的插件,请在 Discord 上告知 MagmaGuy,此帖子将更新该信息。