跳到正文

StargazerLib

作者:Natsu91

Library for rendering entities that support GLB models and animations, inspired by GeckoLib's interface.

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

It is a HUGE WIP, but i’ll get there eventually. The docs and wiki are yet to be published too.

Description

StargazerLib is a library that renders and animates glTF / GLB models directly on Minecraft entities, with their skeleton, animations and textures.

In short: it’s like GeckoLib, but for real meshes instead of cubes.

It was born out of a simple frustration: GeckoLib only renders cubes. When your artists work in Blender and hand you low-poly models, your options are bad ones.

  • Why voxelize a clean low-poly model, when that makes it both uglier and heavier than the original ?
  • Why rebuild an entire model by hand in Blockbench, when it already exists as a .glb ?
  • Why lose your skeleton, your animations and your textures on the way in ?

StargazerLib takes the other route: it loads the .glb as-is and renders the actual mesh through Minecraft’s own pipeline, so lighting and shaders keep working. Skinning, animation clips (with cross-fading between them), textures and auto-scaling are all handled for you.

It is meant to be used by other mods much like GeckoLib, but you keep the Blender workflow your artists already use.

For developers

Drop your model in assets/<modid>/models/entity/<name>.glb, then have your entity declare it:

public class Dragon extends Entity implements GltfAnimatable {

    public ResourceLocation getGltfModel() {
        return new ResourceLocation("mymod", "dragon");
    }

    public float getGltfSize() {
        return 2.0f; // ~2 blocks on the largest dimension
    }

    public void registerControllers(ControllerRegistrar registrar) {
        registrar.add(new AnimationController<>("main",
                state -> state.isMoving() ? "fly" : "idle"));
    }
}

Then register the provided generic renderer:

event.registerEntityRenderer(DRAGON_TYPE, GltfEntityRenderer::new);

That’s it, the Blender model shows up on your entity, animated and textured. Two demo entities (stargazerlib:gltf_test and stargazerlib:gltf_dragon) are included so you can see it in-game.

常见问题

StargazerLib 支持哪些 Minecraft 版本?

StargazerLib 支持 Minecraft Java 版 1.18.2,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

StargazerLib 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分

Natsu91 的其他作品

查看全部 →