Model loader 'geckolib:geo' not found.
排了一下午一直给我爆这个错,
我自制了一个geo模型,想为我的mod武器进行导入
mc版本为forge1.20.1

文件应该没问题吧
游戏可以启动,启动后拿出物品为紫黑格
Model loader 'geckolib:geo' not found.
排了一下午一直给我爆这个错,
我自制了一个geo模型,想为我的mod武器进行导入
mc版本为forge1.20.1

晚上好🌙🌙🌙
本答案参考通义千问
你遇到的错误信息是:
Model loader 'geckolib:geo' not found
这个错误表明你的模组没有正确加载 GeckoLib 的模型解析器,也就是说,GeckoLib 未被正确引入到你的项目中,或者你的模型文件路径/格式不正确。
GeckoLib 未被添加到依赖中
如果你使用的是 Forge 1.20.1,你需要在 build.gradle 中正确引用 GeckoLib 的依赖。
模型文件路径或格式错误
GeckoLib 要求 .geo.json 文件必须放在正确的资源路径下(如 assets/modid/models/item/weapon.geo.json)。
模型注册方式不正确
你需要通过 GeoModelRegistry 正确注册你的模型。
Forge 或 GeckoLib 版本不兼容
确保你使用的 GeckoLib 版本与 Forge 1.20.1 兼容。
在你的 build.gradle 文件中添加以下内容(注意版本号要匹配你使用的 GeckoLib):
dependencies {
modImplementation "dev.architectury:architectury:9.2.5" // 如果你用的是 Architectury
modImplementation "com.github.GeoLib-Mod:geckolib:3.0.8" // 示例版本,根据实际情况修改
}
注意: 如果你使用的是 Forge,建议查看 GeckoLib GitHub 获取最新版本和正确的依赖方式。
GeckoLib 的 .geo.json 文件应该放在如下路径:
src/main/resources/assets/yourmodid/models/item/weapon.geo.json
示例文件结构:
yourmodid/
├── assets/
│ └── yourmodid/
│ └── models/
│ └── item/
│ └── weapon.geo.json
一个简单的 weapon.geo.json 示例:
{
"format_version": "1.12",
"models": {
"main": {
"parent": "item/generated",
"textures": {
"layer0": "yourmodid:item/weapon"
},
"elements": [
{
"name": "body",
"type": "cube",
"from": [ -2, -2, -2 ],
"to": [ 2, 2, 2 ],
"rotation": { "x": 0, "y": 0, "z": 0 }
}
]
}
}
}
注意: 这个 JSON 是用于定义模型结构的,如果你只是想用 GeckoLib 动画功能,可能需要使用更复杂的结构。
你需要在你的主类中使用 GeoModelRegistry 注册模型:
import dev.architectury.eventbus.EventBus;
import dev.architectury.registry.client.model.ModelProvider;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.resources.ResourceLocation;
public class YourMod {
public static final ResourceLocation WEAPON_MODEL = new ResourceLocation("yourmodid", "item/weapon");
public static void init() {
EventBus.registerClient(YourMod::registerModels);
}
private static void registerModels() {
ModelProvider.registerItemModel(WEAPON_MODEL, ItemTransforms.NO_TRANSFORM, (stack, context, world) -> {
return GeoModelRegistry.getModel(WEAPON_MODEL);
});
}
}
注意: 如果你使用的是 Forge 而不是 Architectury,请使用
IEventBus注册事件。
geckolib:geo在你的 item.properties 或者模型注册时,确保模型类型为 geckolib:geo:
public class WeaponItem extends Item {
public WeaponItem(Properties properties) {
super(properties);
this.setISTER(() -> new GeoItemRenderer<>(new WeaponModel()));
}
}
在游戏启动时,你可以通过控制台查看是否加载了 GeckoLib 模块。如果看到类似以下信息,说明 GeckoLib 已加载:
[INFO] GeckoLib is loaded and ready to use!
如果没有看到该信息,说明依赖未正确加载。
| 错误信息 | 可能原因 |
|----------|----------|
| Model loader 'geckolib:geo' not found | GeckoLib 未正确添加到依赖或未加载 |
| Resource not found: yourmodid:item/weapon.geo.json | 模型路径错误或文件不存在 |
| Class not found: dev.architectury... | 依赖版本不匹配或未添加 Architectury |
为了让你的 GeckoLib 模型正常加载,请确保:
GeoModelRegistry 注册geckolib:geo如果你愿意提供你的 build.gradle 文件和模型文件结构,我可以帮你进一步诊断问题。