
Pommel
允许资源包创作者覆盖手持物品模型的Fabric模组,就像望远镜和三叉戟那样
查看大图
Pommel - 手持物品模型
Blade - 资源包
—手持物品模型资源包—
Pommel 是什么?
Pommel 是一个 Fabric 模组,它允许资源包替换物品手持版本的模型——就像望远镜和三叉戟那样——让你自定义物品在你手中的外观。想要在手中展示一个 3D 的狼牙棒模型、一把炽热的巨剑,或者一根古老的魔法法杖,同时保留原始物品?使用 Pommel,这些都可以实现! 同时也适用于模组物品!
如果你使用 Pommel 制作了资源包,欢迎与我分享你的作品!我很想看看你能做出什么!
给资源包制作者
新增以下物品谓词(Item Predicates):
pommel:is_held— 当物品在第一人称或第三人称手中持有pommel:first_third_person— 物品在第一人称与第三人称的区分- 值为 0.5 时切换第一人称模型,值为 1.0 时切换第三人称模型。
pommel:is_offhand— 物品在用户的副手槽中pommel:is_fixed— 当物品在物品展示框中pommel:is_head— 当物品戴在头盔槽位时pommel:is_ground— 当物品被丢弃在地上pommel:is_thrown— 可投掷物品被投掷时(鸡蛋、雪球、末影珍珠等)pommel:is_used— 当物品正在被使用(即按住使用/右键键);如果模组在服务器和玩家端都安装,则与多人游戏同步pommel:item_use— 使用/消耗物品的持续时间,例如吃食物pommel:is_submerged— 物品浸没在minecraft:water中(不适用于其他液体)- 当物品实体被扔入水中但之后不再在水中(例如你移除了水),物品仍会保持“浸没”状态
pommel:is_enchanted— 物品是否附魔pommel:is_misc_entity_holding— 由村民、女巫、熊猫和狐狸手持的物品。- 请注意,这三个实体仍会采用该模型的地面展示设置。如有需要,你可以更改地面的旋转、平移和缩放,使物品在这些实体手中看起来更好。
is_using 和 is_submerged 也会在 GUI 中改变物品模型
例如,通过修改模型 iron_pickaxe.json,你可以告诉模组当物品被手持时(通过 pommel:is_held)应显示什么模型。
提供的持有模型及其纹理可以放在任何位置,只要在物品模型 JSON 文件中指定即可。
JSON 示例:
{
"parent": "item/handheld",
"textures": {
"layer0": "minecraft:item/2d_model_texture"
},
"overrides": [
{ "predicate": { "pommel:is_held": 1.0 }, "model": "minecraft:item/my_held_item" },
{ "predicate": { "pommel:is_fixed": 1.0 }, "model": "minecraft:item/my_framed_item" },
{ "predicate": { "pommel:is_head": 1.0 }, "model": "minecraft:item/my_worn_item" },
{ "predicate": { "pommel:is_ground": 1.0 }, "model": "minecraft:item/my_ground_item" }
]
}
吃苹果示例:
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/apple"
},
"overrides": [
{ "predicate": { "pommel:is_held": 1 }, "model": "minecraft:item/held_items/apple_3d" },
{ "predicate": { "pommel:item_use": 0.25 }, "model": "minecraft:item/apple_eat_0" },
{ "predicate": { "pommel:is_held": 1, "pommel:item_use": 0.25 }, "model": "minecraft:item/held_items/apple_eat_0_3d" },
{ "predicate": { "pommel:item_use": 0.50 }, "model": "minecraft:item/apple_eat_1" },
{ "predicate": { "pommel:is_held": 1, "pommel:item_use": 0.50 }, "model": "minecraft:item/held_items/apple_eat_1_3d" },
{ "predicate": { "pommel:item_use": 0.75 }, "model": "minecraft:item/apple_eat_2" },
{ "predicate": { "pommel:is_held": 1, "pommel:item_use": 0.75 }, "model": "minecraft:item/held_items/apple_eat_2_3d" }
]
}
在此示例中,苹果物品在食用时会从 apple_eat_0 变为 apple_eat_2。苹果物品在手持时也会变为 3D 版本,并且在食用时还有独特的手持模型。
你还可以为手持模型指定文件目录以便整理,也可以将父模型更改为其他内容。
其他示例
- 额外提示: 如果你使用模组 Arsenal (仅限 1.20.1),该模组的背部/枪套槽位使用物品展示框的渲染类型。你可以使用
pommel:is_fixed来替换背部物品(如下所示),以便显示模型而不是物品。请注意,物品展示框中的物品也会使用这个模型。
- 将头上的雕刻南瓜替换为绿宝石。就像模拟人生一样。使用 Arsenal (1.20.1) 和
pommel:is_fixed谓词将剑放在背上。
常见问题
问:这与 CIT [自定义物品纹理] 兼容吗?
答:只要 CIT 用物品模型(而非纹理)替换物品,CIT Resewn 和 Optifine 就可以正常工作。CIT 允许你替换物品的模型,因此 Pommel 仍然允许你拥有自定义手持模型。
问:这与原版我的世界的物品谓词(如自定义模型数据或弓拉弦)兼容吗?
答:是的,但请确保你也为 custom_model_data 模型指定了 pommel:is_held。
{
"parent": "item/handheld",
"textures": {
"layer0": "item/base_item"
},
"overrides": [
{ "predicate": { "pommel:is_held": 1.0 }, "model": "minecraft:item/base_item_held" },
{ "predicate": { "custom_model_data": 1 }, "model": "minecraft:item/custom_item" },
{ "predicate": { "custom_model_data": 1, "pommel:is_held": 1.0 }, "model": "minecraft:item/custom_item_held" }
]
}
问:这与 Eating Animation 模组兼容吗?
答:是的,Eating Animation 允许你在食用物品时使用 Pommel 替换你选择的模型。该模组有两个谓词,eating 和 eat(前面没有模组 ID),你可以将其与 Pommel 谓词结合。代码将类似于上面 custom_model_data 的示例,但使用 Eating Animation 的谓词。还有一个 视频指南(也在模组页面有链接),将向你展示如何设置!请查看这个模组!
答:第二个答案,你也可以直接使用 pommel:item_use,效果完全相同,且无需使用 Eating Animation 模组。我并不想“取代” Eating Animation。相反,item_use 谓词的制作是因为 Eating Animation 模组与 CIT 存在一些兼容性问题,因此这可以用作替代方案。Eating Animation 可能无法正确更改/渲染 CIT 模型,而 Pommel 没有此类问题。
问:我该如何替换模组物品的手持模型?
答:与 JSON 示例 中的 JSON 结构相同,但将 ID 前的 minecraft 替换为 <mod_id>。
问:我的手持模型无法正常工作,我该去哪里排查?
答:首先检查你的 JSON 代码是否有错误,因为不小心弄乱 JSON 代码是很容易的。大多数 IDE 会检查错误,但也有一些其他网站可以检查。如果仍有问题,老实说,最好的支持方式是到 Discord 上联系我(用户名是 timmychips),或者到 Github 上提交 Issue!
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。