截图
介绍
Ragdolls
任何生物死亡时,都会变成受物理效果驱动的布娃娃,而不是播放原版那种“倒下并变红”的动画。
适用于原版生物、玩家和大多数模组生物,因为它会读取生物绘制时使用的模型,而不是依赖每种生物各自的代码。
Fabric,Minecraft 1.21–1.21.11 和 26.1–26.3。安装到游戏中即可;任何服务器都能使用,包括原版服务器。
服务器也安装后,所有玩家看到的尸体都会落在同一位置(参见 多人游戏)。
各版本更新内容:CHANGELOG.md。
安装
- 安装 Fabric Loader,并将 Fabric API 放入你的
mods文件夹。 - 从
dist/中选择对应 Minecraft 版本的 jar,复制到mods:
| Minecraft 版本 | Jar |
|—|—|
| 1.21、1.21.1 | ragdolls-1.5.0+mc1.21.1.jar |
| 1.21.2、1.21.3 | ragdolls-1.5.0+mc1.21.3.jar |
| 1.21.4 | ragdolls-1.5.0+mc1.21.4.jar |
| 1.21.5 | ragdolls-1.5.0+mc1.21.5.jar |
| 1.21.6、1.21.7、1.21.8 | ragdolls-1.5.0+mc1.21.8.jar |
| 1.21.9、1.21.10 | ragdolls-1.5.0+mc1.21.10.jar |
| 1.21.11 | ragdolls-1.5.0+mc1.21.11.jar |
| 26.1、26.1.1、26.1.2 | ragdolls-1.5.0+mc26.1.2.jar |
| 26.2 | ragdolls-1.5.0+mc26.2.jar |
| 26.3 | ragdolls-1.5.0+mc26.3.jar |
- 可选:添加 Mod Menu,即可在“模组 → Ragdolls”下方找到设置按钮。
- 多人游戏可选:也将相同的 jar(以及 Fabric API)放入服务器的
mods文件夹。
多人游戏
如果服务器没有安装此模组,每位玩家都会各自模拟每具尸体,因此朋友看到的落点
会略有不同。服务器安装后,尸体状态会同步:
- 每具尸体由一名玩家负责模拟(通常是最先报告尸体的人,也就是目击生物死亡的人),并在尸体移动时每秒约 10 次发送位置。其他玩家看到的尸体会平滑跟随。
- 任何人仍然可以击打尸体;击打动作会传给负责模拟该尸体的玩家。
- 如果该玩家离开或走远,能看到尸体的另一名玩家会从尸体当前位置接手。
- 被炸飞的肢体、烧焦效果和烟雾也会同步。
- 如果玩家的生物模型与其他人不同(例如资源包修改了僵尸模型),则会自行模拟一份尸体。
- 单人游戏和局域网地图已内置服务器端功能。
在设置中关闭 多人游戏同步 即可停用。没有安装此功能的服务器仍可使用该模组。
兼容性
生物死亡瞬间,布娃娃会复制游戏实际绘制的内容,因此大多数改变生物外观的模组都能正常兼容。
已在游戏中使用 1.21.1、26.2 和 26.3 搭配以下模组测试:
| 模组 | 结果 |
|—|—|
| Entity Model Features + Entity Texture Features(EMF/ETF) | 资源包中的自定义模型和材质(已使用 Fresh Animations 测试)会保留原有外观和死亡时的姿势。Tissou’s Zombie Pack 等资源包也使用这些模组。 |
| Geckolib 盔甲(已使用 Fantasy Armor 测试) | 头盔、角、羽饰和披风会留在身体上,并随对应的肢体一起掉落。 |
| Visual Health | 伤口会保留在身体和盔甲上,包括末影人身上发光的伤口。 |
| Guard Villagers | 守卫会像其他生物一样变成布娃娃(已在 26.2 测试;死亡时会掉落武器)。 |
| 其他模组中原版风格的盔甲 | 效果与原版盔甲相同。 |
不通过原版模型部件绘制的其他内容(例如其他 Geckolib 渲染、饰品/挂件渲染、自定义盔甲
渲染器)会作为原始几何体复制,并附着到最近的身体部位。手持物品也会留在手上。
目前无法兼容:Curios 在 1.21+ 仅支持 NeoForge,Better Blood Overlay 仅支持 Forge 1.20.1;
本模组是适用于 1.21+ 的 Fabric 模组。Fabric 上的同类模组(Trinkets、Accessories)使用上面相同的渲染路径。
如果模组生物没有变成布娃娃,请使用 -Dragdolls.debug=true 启动游戏:日志会显示捕获到了哪些内容。
效果风格
在设置界面中选择一种风格,也可以使用 /ragdolls style <name>:
| 风格 | 效果 |
|—|—|
| GMod | 经典 Source 引擎式软趴趴效果。死亡瞬间就会瘫软。 |
| GTA(Euphoria) | 会努力站稳、踉跄、挥舞手臂,约 2.5 秒后才会瘫软。 |
| 写实 | 沉重、摩擦力大,击退较弱。会倒在原地。 |
| Skyrim | Bethesda 风格的物理效果。你杀死的东西都会飞上天。 |
| Roblox(经典) | Oof。身体会散架成独立的碎块。 |
| 卡通 | 像橡胶一样柔软、有弹性,效果夸张。 |
| 月球 | 低重力。尸体会缓缓飘落。 |
| 木板 | 僵硬得像木板。生物会像雕像一样倾倒。 |
| 自定义 | 调整任何物理滑块后都会切换到此风格。 |
单个生物的专属风格
可以为任何生物单独设置风格,例如卡通风格的鸡、Roblox 风格的骷髅,以及其他所有生物使用 GMod 风格。
在 设置 → 单个生物风格… 中设置(会列出所有生物),或使用
/ragdolls mobstyle <style|default> <mob>,例如 /ragdolls mobstyle cartoon minecraft:chicken。
/ragdolls mobstyle list 可查看当前设置。模组生物也适用;使用它们的 ID,例如 somemod:goblin。
效果说明
- 每个身体部位(头、手臂、腿、尾巴、蜘蛛腿等)都是独立的刚体,并通过带有弯曲限制的球形关节连接。
- 身体会与方块碰撞(包括台阶、楼梯和栅栏),并受摩擦力影响滑动,也能在水中漂浮。
- 尸体之间也会相互碰撞:它们会堆成一团,倒下的尸体会撞动已经躺着的尸体,肢体不会陷进自己的躯干,也不会穿过另一条腿。
- 布娃娃会保留致命一击的动量。如果是你杀死了它,它就会朝你攻击的方向飞出去。
- 用左键击打布娃娃,让它们飞出去。
- 爆炸(TNT、苦力怕、床、末地水晶以及其他任何爆炸)会将尸体炸飞并使其旋转。距离较近时,爆炸会直接炸掉肢体、把身体烧焦,并使其冒烟燃烧几秒钟。水可以灭火。被爆炸杀死的生物也会受到相同效果。
- 走进布娃娃会把它推开。
- 盔甲、羊毛、发光的眼睛、披风和肩上的鹦鹉都会附着在对应的身体部位上。
- 布娃娃会保留 45 秒,然后沉入地面。静止的布娃娃会停止模拟,以节省 CPU 资源。
命令
/ragdolls menu打开设置界面(无需 Mod Menu)。/ragdolls style <gmod|gta|realistic|skyrim|roblox|cartoon|moon|plank>切换风格。/ragdolls mobstyle <style|default> <mob>为某种生物设置专属风格;/ragdolls mobstyle list可查看当前设置。/ragdolls clear移除所有布娃娃。/ragdolls toggle开启或关闭模组。/ragdolls reload重新读取config/ragdolls.json。
设置
所有设置都可以在设置界面中调整,悬停时会显示说明,并保存到 config/ragdolls.json:
重力、关节弯曲限制、摩擦力、弹性、关节刚度、空气阻力、击退、死亡飞出力度、
肌肉(强度和持续时间)、手臂摆动、平衡、散架、爆炸强度、
爆炸炸断肢体、爆炸烧焦身体、击打力度、尸体存留时间和尸体数量上限。
blacklist(仅在 JSON 文件中)列出继续使用原版死亡效果的实体 ID。默认值为盔甲架。
限制说明
- 在 1.21.9 及更高版本中,末影人死亡时手里拿着的方块很可能不会保留(方块和物品的加入队列方式不同;尚未测试)。
- 身体部位之间的碰撞通过各部位的角和边计算,因此两条细肢体正好交叉成 X 形时仍可能互相穿过。
- 末影龙使用原版死亡效果。
- 在 1.21.2–1.21.8 中,游戏不会告知客户端爆炸的大小,因此所有爆炸都会按 TNT 规模处理。
构建
gradlew build
需要 JDK 25(Minecraft 26.x 需要 Java 25;1.21 的 jar 仍使用 Java 21 构建)。
会为每个 Minecraft 版本范围构建一个 jar,输出到 dist/。添加 -Ponly=1.21.4 可仅构建一个版本。
截图
screenshots/ 中的图片是在实际游戏中通过仅供开发使用的脚本拍摄的(src/devshots,不会包含在发布版 jar 中)。
脚本会创建地图、布置场景、保存截图,然后退出:
gradlew :1.21.1:runClient -Ponly=1.21.1 -Pshots
截图会保存到 versions/1.21.1/run/screenshots/。也可以用 26.1.2、26.2 或 26.3 替换 1.21.1
,效果相同;src/devshots_v1*–devshots_v4 中包含脚本所需、且在不同版本间有所变化的少数游戏调用。
也可以添加 -Pcompat,用其他模组布置场景(Geckolib 盔甲、Guard Villagers、Fresh Animations、Visual Health)。
在 1.21.1 中,模组来自 compat_mods 中的 versions/1.21.1/gradle.properties;其他版本则放入
versions/<mc>/run/mods,并使用 .tools/compat-mods.sh(Fresh Animations 还需要在对应游戏的 options.txt 中启用)。
多人游戏测试
在同一台电脑上打开两个真实游戏窗口:第一个窗口创建局域网地图,第二个窗口以“Bob”的身份加入。主机杀死
一排生物并堆起尸体;两边都在相同游戏刻记录每具布娃娃的位置,并同时截图。
gradlew :1.21.1:runClient -Ponly=1.21.1 -Psynctest
gradlew :1.21.1:runClient2 -Ponly=1.21.1 -Psynctest
等第一个窗口的日志显示 SYNCTEST PUBLISHED 后再启动第二个窗口。两边都添加 -Pnosync,即可查看未启用同步时的区别。
代码结构
每个 jar 都由 src/common 以及 versions/<mc>/gradle.properties 中列出的文件夹构建:
| 文件夹 | 版本 | 内容 |
|—|—|—|
| common | 全部 | 物理效果、风格、配置、设置界面、命令 |
| render_entity | 1.21–1.21.1 | 旧版实体渲染器的钩子 |
| render_state | 1.21.2–1.21.8 | 使用渲染状态进行绘制的渲染器钩子 |
| submit | 1.21.9+ | 监视死亡生物加入待绘制队列的模型 |
| camera_v1、camera_v2 | 1.21.9–1.21.11、26.1+ | 使用模型队列的渲染器钩子(26.1 中移动了它们使用的一个类) |
| model_capture | 1.21–1.21.8 | 监视绘制过程中的模型部件 |
| state_duck | 1.21.2+ | 记录渲染状态对应的生物 |
| events_v1、events_world、events_level | ≤ 1.21.8、1.21.9–1.21.11、26.1+ | Fabric 世界渲染钩子 |
| p1–p6 | 1.21.1、1.21.2–1.21.10、1.21.11、26.1.x、26.2、26.3 | 名称较短的 Minecraft 方法 |
Minecraft 26.1 及更高版本使用易读名称,因此这些版本的 jar 无需重映射即可构建。
常见问题
ragdolls 支持哪些 Minecraft 版本?
ragdolls 支持 Minecraft Java 版 1.21–26.3,共 17 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。
ragdolls 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。
fentbuscoding 的其他作品
查看全部 →LocalizedWeather
一款 Fabric 模组,可将 Minecraft 的全局天气替换为局部天气区域。每个 256×256 方块区域都有独立天气,降雨、降雪和雷暴会根据生物群系规则在世界各地独立发生,并带来平滑过渡和方块风格效果。
ScreenshotMetadata
一个Minecraft Fabric模组,自动为你的截图添加全面的元数据,使其更易于整理和搜索。
ScreenshotMetadata
一个 Minecraft Fabric 模组,自动为你的截图添加全面的元数据,让它们更容易整理和搜索。
评论
登录后评论和评分