更好的玩家模型

更好的玩家模型

使用自定义3D角色模型和动画来扮演任何角色,并在多人模式下完全同步。

title

更好的玩家模型

更好的玩家模型是一个强大的 Fabric 模组,专为动画自定义玩家模型而设计,具备高性能渲染、本地浏览和无缝多人同步功能。


平台合规说明

为遵守 CurseForge 关于原生代码分发的指南,本次发布编译为 纯 Java 版本。

  • 无原生二进制文件: 本软件包完全不含外部 .dll、.so 或 .dylib 可执行文件。
  • 兼容性: 完全回退支持,利用纯 Java 进行模型渲染和 Molang 动画处理。
  • 其他版本: 由于平台特定限制,原生版(包含特定平台的 Rust/C++ SIMD 优化二进制文件)托管在我们的 GitHub 和 Modrinth 页面上。

https://modrinth.com/mod/betterplayermodel


关于 CurseForge 版本的说明

CurseForge 文件可能会比 Modrinth/GitHub 晚出现,因为新上传有时会因故被搁置人工审核或被拒绝。如果最新版本尚未在此处提供,请查看:

主要特性

  • 通用模型支持: 轻松加载任何 .ysm 或 Blockbench .json 模型。
  • 基岩级动画: 完整的 MoLang 支持,实现流畅、复杂且脚本化的动画。
  • 游戏内浏览器: 直接在菜单中管理您的模型、分类和纹理。
  • 无缝同步: 作为客户端模组运作,但在服务器上安装后可提供完整的多人游戏同步。

多人游戏

  • 仅客户端: 您可以在任何服务器上看到自己的模型并浏览您的库。
  • 完全同步: 当服务器也运行此模组或我们的插件时,每位玩家都将看到您的自定义动画和模型!

兼容性与设置

  • 格式: 支持 .json (Blockbench) 和 .ysm (加密)。
  • 位置: 将您的模型放置在 config/better_player_model/custom 目录下。
  • 性能: 完全兼容 Sodium、Iris 及其他优化模组。

依赖

在哪里获取模型?

正在寻找高质量的玩家模型?您可以从 Yes-steve-model 社区仓库浏览并下载数百个社区制作的模型:在此下载模型

联系方式

访问我们的官方 Discord 服务器 获取此模组信息。抢先了解即将推出的更新、提出新功能建议、报告错误,并与开发者及社区交流。

演示

Demonstration Demonstration Demonstration

鸣谢

本项目基于以下团队和个人的出色工作构建:

  • OpenYSM & YSMParser (模型解析管线)
  • Fox-model-loader 作者:Micaftic (基础架构)
  • Yes Steve Model 作者:Elfmcys (原始概念)

网络故障排除指南:模型同步超时与断开连接

如果网络连接较慢或不稳定的玩家(例如使用 Wi-Fi、移动数据或 Starlink 等卫星链路)在加入您的服务器或进行模型同步期间持续断开连接,本指南将说明如何解决问题。


为什么会发生这种情况?

  1. 带宽饱和(缓冲膨胀): 当玩家加入时,服务器会传输缺失的自定义玩家模型。如果服务器尝试以高于玩家连接下载速度的速度推送数据,玩家路由器或操作系统上的网络缓冲区就会溢出。
  2. Ping/Keep-Alive 数据包延迟: 由于连接饱和,关键的游戏数据包(如验证玩家是否仍在连接的 Minecraft 的 KeepAlive 数据包)会排在模型文件之后。如果客户端无法在 15 到 30 秒内响应这些数据包,服务器就会判定它们超时并将其踢出。
  3. 大型模型文件: 如果您的服务器托管了许多模型,或者某些模型特别大(例如每个几兆字节),初始下载量可能会很大(几十兆字节),从而延长了关键的同步窗口期。

解决方案 1:配置服务器带宽限制(推荐)

1.0.6 版本引入了每个玩家的带宽限制器,以防止连接饱和。您可以限制模型数据块发送的速度。

  1. 打开服务器的配置目录:config/better_player_model-server.toml。
  2. 找到 [server_scheduler] 类别并配置限制:
   [server_scheduler]
       # 所有活跃玩家模型分发的全局带宽限制(以 Mbps 为单位)
       # 默认值:100
       BandwidthLimit = 25

       # 每个玩家的带宽限制(以 Mbps 为单位)
       # 这可以防止慢速连接被淹没。
       # 默认值:5(推荐值:3 到 10)
       PlayerBandwidthLimit = 5

将 PlayerBandwidthLimit 设置为 5 Mbps(约 625 KB/s)可以使模型稳定下载,而不会使链路饱和,从而为游戏流量和 Keep-Alive 流量留出充足的空间。


解决方案 2:增加网络连接超时时间

默认情况下,如果 Minecraft 在 30 秒内未收到网络响应,便会踢出玩家。您可以将此读取超时时间增加到 120 秒。

对于专用服务器:

将以下 Java 系统属性添加到服务器启动脚本或命令行中:

-Dnet.minecraft.network.readTimeout=120

对于客户端(在 Prism Launcher 或其他启动选项中):

  1. 打开启动器对应 Minecraft 实例的设置。
  2. 在 Java -> Java 参数下,添加:
   -Dnet.minecraft.network.readTimeout=120

解决方案 3:使用超时扩展模组

或者,您可以安装以下服务端和客户端模组来自动处理超时:

  • Connectivity
  • Timeouts

内置模型与资源致谢

本模组默认包含 "酒狐" 模型,以提供开箱即用的优质体验。

  • 模型名称: 酒狐
  • 许可协议: CC BY-NC-SA 4.0
  • 原始作者:
    • 完美冻结 (模型与核心)
    • 星屑海螺 (动画)
    • 哥斯拉 / 映素团队 (修改)
    • 白帆小喵, 蓝玫瑰, 墨染逝羽, Maks怜悯, 浅陌菌, 祸御神, 羊毛 (纹理、UI、音效及特定添加)

衷心感谢这些创作者在模型上的杰出工作!如果您希望在其他地方使用此模型,请确保遵守原始的 CC BY-NC-SA 4.0 许可。

许可证

采用 MIT 许可证。保留所有原始许可证和版权声明。 MIT License