跳到主要内容

FreeMinecraftModels 常见问题

如果您的问题未在此列出,请查看侧边栏,看看 wiki 中是否有专门的页面!

入门指南

如何安装和使用 FreeMinecraftModels?

详情

安装步骤:

  1. 下载 FreeMinecraftModels.jar 并将其放入您的 plugins 文件夹
  2. 重启服务器以生成插件文件夹
  3. 如果需要首次设置流程,运行 /fmm initialize
  4. 如果使用官方内容包,请使用 /nightbreaklogin <token> 链接 Nightbreak
  5. 使用 /fmm setup/fmm downloadall 获取 Nightbreak 托管的官方内容
  6. 对于手动内容,将 .bbmodel 文件放入 ~/plugins/FreeMinecraftModels/imports/ 并运行 /fmm reload
  7. ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip 中找到生成的资源包

分发资源包:

选择以下方法之一:

  • 方案 A(推荐):安装 Resource Pack Manager 进行自动分发
  • 方案 B:通过 server.properties 或托管服务手动配置

生成模型:

  • /fmm spawn static <id> - 生成临时装饰模型
  • /fmm spawn dynamic <id> - 生成附加到实体的模型
  • /fmm spawn prop <id> - 生成持久的世界模型

管理:

  • /fmm - 显示设置/帮助摘要
  • /fmm initialize - 打开首次设置菜单
  • /fmm setup - 打开内容管理菜单
  • /fmm downloadall - 下载所有可访问的官方内容
  • /fmm updatecontent - 更新过期的官方内容
  • /fmm reload - 重新加载插件并转换新模型
  • /fmm version - 显示插件版本
  • /fmm stats - 显示实体数量统计

玩家功能:

  • /fmm disguise <modelID> - 将您的外观变为自定义模型
  • /fmm undisguise - 移除玩家伪装并恢复正常外观
  • /fmm itemify <model> <material> - 创建一个可放置的物品,用于生成指定模型
  • /fmm craftify <modelID> - 打开交互式配方构建器,为道具创建合成配方
  • /fmm mount <modelID> - 生成一匹伪装为自定义模型的可骑乘马(实验性功能)

调试:

  • /fmm hitbox visualize [duration] - 使用粒子可视化模型碰撞箱(持续时间以刻为单位,默认 100)

管理操作:

  • /fmm deleteall - 移除所有当前加载的模型实体(谨慎使用——无确认提示)

权限:

  • freeminecraftmodels.* - 大多数命令需要此权限(disguise、itemify、mount、hitbox visualize、spawn)
  • freeminecraftmodels.deleteall - /fmm deleteall 命令需要此权限

命令默认仅 OP 可用。如需要,请将这些权限授予非 OP 玩家。

模型功能和限制

模型的尺寸和旋转限制是什么?

详情

尺寸限制:

  • 最大:112x112x112 像素(游戏内 7x7x7 方块)
  • FreeMinecraftModels 使用 4 倍内部缩放来实现这些尺寸
  • 标准 Minecraft 资源包限制为更小的尺寸

方块旋转限制:

  • 允许的角度:0°、±22.5°、±45° 以及 22.5° 的倍数(从 v2.3.0 起)
  • 仅支持单轴旋转
  • 示例:[22.5, 0, 0] 可以工作,但 [22.5, 0, 45] 只会部分旋转
  • 其他角度将无法正确显示

骨骼旋转:

  • 骨骼支持任意旋转角度
  • 避免 90°、-90°、180°、-180° 的默认静止位置(可能导致意外行为)
  • 支持多轴旋转
  • 每个骨骼创建一个单独的实体(需考虑性能)

性能说明:

保持骨骼数量尽可能低。每个骨骼在 Minecraft 中生成一个单独的实体,大规模使用时可能影响服务器性能。

支持哪些动画?

详情

FreeMinecraftModels 支持以下默认状态动画:

标准动画:

  • Walk(行走)
  • Idle(待机)
  • Death(死亡)
  • Attack(攻击)
  • Spawn(生成)

工作原理:

  • 在 BlockBench 中创建动画
  • 插件从 .bbmodel 文件中读取动画关键帧
  • 动画根据实体状态自动触发
  • 开发者可以使用 playAnimation(animationName, false, false) 以编程方式触发动画

特殊情况:

唤魔者实体会检测附近的唤魔者尖牙以自动触发攻击动画。

什么是虚拟骨骼?它们如何工作?

详情

虚拟骨骼是具有保留名称的特殊骨骼,可为您的模型添加功能:

碰撞箱骨骼:

  • 名称:hitbox
  • 创建交互区域和碰撞箱
  • 使用匹配的 x/z 值定义实体边界

名称标签骨骼:

  • 前缀:tag_
  • 在模型上方显示文本
  • 用于实体命名

头部旋转骨骼:

  • 前缀:h_
  • 根据玩家/实体头部位置旋转
  • 自动跟踪头部移动

使用方法:

在 BlockBench 中创建具有这些特殊名称之一的骨骼,插件会自动应用相应的功能。

故障排除

我看到的不是自定义模型,而是马铠。

详情

如果您在游戏中没有看到自定义模型,而是看到马铠,问题很可能是您没有将 FMM 资源包与您现有的资源包正确合并。

MagmaGuy 开发了一个名为 Resource Pack Manager(RSPM)的插件,可以自动为您合并资源包。您可以从 Spigot 这里 下载。

只需将 RSPM 的 .jar 文件放入您的 plugins 文件夹,RSPM 就会处理一切。它会合并所有资源包,自动托管它们,并在玩家登录服务器时分发给他们。

为什么添加 .bbmodel 文件后看不到我的模型?

详情

如果您的模型没有出现,请检查以下常见问题:

1. 忘记重新加载

在将 .bbmodel 文件放入 imports 文件夹后运行 /fmm reload。这会转换模型并生成资源包。

2. 资源包未应用

玩家必须激活 FMM 资源包才能看到模型。

  • 检查 ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip 获取生成的资源包
  • 安装 Resource Pack Manager 进行自动分发
  • 或者通过 server.properties 或托管服务手动分发

3. 文件位置错误

手动导入的 .bbmodel 文件必须放在:~/plugins/FreeMinecraftModels/imports/

如果您使用的是官方内容包,请使用 /fmm setup/fmm downloadall,而不是手动放置文件。

4. 模型有错误

/fmm reload 期间检查控制台日志是否有错误消息。常见问题包括不支持的旋转、超大模型或纹理问题。

5. 资源包合并问题

如果您看到的是马铠而不是模型,说明资源包没有正确合并。使用 Resource Pack Manager(RSPM)自动处理合并。

ViaVersion 可能导致资源包无法正确显示。

详情

ViaVersion 可能导致资源包问题,特别是当服务器运行的版本低于 1.21.4 时。Minecraft 从 1.21.4 开始引入了资源包处理方式的变更。如果您运行的是 1.21.3 等版本的服务器并使用 ViaVersion 允许 1.21.4 客户端连接,这些客户端可能会在显示某些资源包内容时遇到问题,例如 FMM(FreeMinecraftModels)的自定义模型。

这是因为 Minecraft 的资源包系统在 1.21.4 更新中发生了变化。

注意: 这是 Minecraft 和 ViaVersion 的限制,并非 FreeMinecraftModels 特有的问题。当服务器版本低于 1.21.4 时,ViaVersion 的协议转换可能无法完全支持资源包变更。

要解决此问题,请考虑将服务器更新到 1.21.4 或更高版本,这将确保与现代资源包功能(包括 FMM 自定义模型)更好的兼容性。

为什么我的模型导致延迟或性能问题?

详情

您 BlockBench 模型中的每个骨骼都会在 Minecraft 中创建一个单独的实体。拥有大量骨骼的模型可能影响服务器性能。

优化建议:

  • 最小化模型中的骨骼数量
  • 限制生成的模型数量
  • 当不需要动画时,考虑使用静态模型而不是动态模型
  • 避免在彼此附近生成大量高骨骼数的模型

技术说明:

FreeMinecraftModels 将每个骨骼渲染为一个单独的 Minecraft 实体。一个有 50 个骨骼的模型会生成 50 个实体。大规模使用时,这会影响性能。

最佳实践:

  • 设计骨骼更少的模型
  • 使用实际的生成数量进行性能测试
  • 添加新模型时监控服务器 TPS

高级功能

我需要 Resource Pack Manager(RSPM)吗?

详情

Resource Pack Manager(RSPM)是可选但强烈推荐的

RSPM 的功能:

  • 自动合并来自多个插件的资源包
  • 托管资源包(无需外部托管)
  • 在玩家登录时自动分发资源包
  • 消除手动资源包配置

不使用 RSPM:

您必须手动:

  • 将 FMM 资源包与现有的服务器资源包合并
  • 在外部服务或通过 server.properties 托管合并后的资源包
  • 配置服务器向玩家发送资源包
  • 每次添加新模型时更新资源包

为什么使用 RSPM:

大多数"看到马铠而不是模型"的问题是由资源包合并不当引起的。RSPM 会自动处理这些问题。

下载 RSPM:https://www.spigotmc.org/resources/resource-pack-manager.118574/

由 MagmaGuy 开发,与 FreeMinecraftModels 同一作者。

我可以在自己的插件中使用 FreeMinecraftModels 吗?

详情

是的,FreeMinecraftModels 为开发者提供了 API。

Maven/Gradle 集成:

仓库:https://repo.magmaguy.com/releases

构件:

  • GroupId:com.magmaguy
  • ArtifactId:FreeMinecraftModels
  • Scope:provided(必须安装在服务器上,不要 shade)

主要 API 类:

  • ModeledEntity(基类)
  • StaticEntity
  • DynamicEntity
  • PropEntity

使用示例:

StaticEntity staticEntity = StaticEntity.create(id, location);
if (staticEntity == null) {
Bukkit.getLogger().warning("Failed to create model");
return;
}
staticEntity.setRightClickCallback(...);
staticEntity.remove();

重要提示:

不要将 FreeMinecraftModels 打包(shade)到您的插件中。它必须作为独立插件安装在服务器上。

有关详细的 API 文档,请参阅官方 README

如何将玩家伪装为自定义模型?

详情

/fmm disguise 命令可将玩家的外观变为任何自定义模型。

命令:

/fmm disguise <modelID>

工作原理:

  • 使玩家对其他玩家不可见
  • 在玩家位置覆盖自定义模型
  • 模型跟随玩家的移动
  • 非常适合角色扮演服务器或特殊活动

示例:

/fmm disguise dragon

移除伪装:

/fmm undisguise

要求:

  • 权限:freeminecraftmodels.*
  • modelID 必须是模型文件夹中有效的已转换模型

注意事项:

  • 玩家碰撞箱保持不变(相同的碰撞区域)
  • 其他玩家看到的是自定义模型而不是您的玩家皮肤
  • 隐身效果持续到取消伪装为止

如何创建可放置的模型物品?

详情

/fmm itemify 命令创建特殊物品,玩家可以使用它们在世界中放置模型。

命令:

/fmm itemify <model> <material>

参数:

  • model - 模型文件夹中任何有效的模型 ID
  • material - 任何 Minecraft 材料(STICK、PAPER、DIAMOND 等)

示例:

/fmm itemify lamp_post STICK

创建的内容:

  • 一个带有金色装饰显示名称的自定义物品(例如 "✦ Wolf ✦")
  • 描述性的说明文字
  • 物品直接添加到您的背包中
  • 右键点击可将模型放置为道具

使用场景:

  • 给玩家物品来装饰他们的建筑
  • 创建自定义的家具"生成蛋"
  • 无需给予建筑权限即可分发模型
  • 创造性建设的套件

要求:

  • 权限:freeminecraftmodels.*
  • 玩家必须在游戏中(非控制台)

如何调试模型碰撞箱?

详情

/fmm hitbox visualize 命令使用粒子可视化模型碰撞箱。

命令:

/fmm hitbox visualize [duration]

参数:

  • duration(可选)- 显示碰撞箱的时长,以刻为单位(默认:100,最大:1200)
  • 20 刻 = 1 秒

示例:

/fmm hitbox visualize          # 显示 5 秒
/fmm hitbox visualize 200 # 显示 10 秒

工作原理:

  • 搜索您周围 10 格内的模型
  • 使用粒子显示定向包围盒(OBB)边界
  • 同时显示模型及其碰撞边界
  • 用于验证碰撞箱大小和旋转

何时使用:

  • 测试碰撞箱是否与视觉模型匹配
  • 调试交互问题
  • 验证碰撞箱旋转
  • 排查点击检测问题

要求:

  • 权限:freeminecraftmodels.*

注意: FMM 中的碰撞箱会随模型旋转,与标准 Minecraft 的轴对齐包围盒(AABB)不同。

我可以创建可骑乘的自定义模型吗?

详情

是的,使用 /fmm mount 命令创建可骑乘的自定义模型(实验性功能)。

命令:

/fmm mount <modelID>

功能:

  • 在您的位置生成一匹马
  • 将马伪装为您的自定义模型
  • 自动驯服马并添加鞍
  • 让您立即骑上马

示例:

/fmm mount dragon

要求:

  • 权限:freeminecraftmodels.*
  • 有效的模型 ID

重要说明:

  • 此功能标记为实验性
  • 移动速度和行为与标准马相同
  • 马的碰撞箱保持不变
  • 最适合专为坐骑设计的模型

使用场景:

  • 角色扮演服务器的自定义坐骑
  • VIP 玩家的特殊交通工具
  • 冒险地图的独特可骑乘生物