BBSMC Logo
模组整合包光影资源包软件汉化插件数据包地图
登录
模组插件数据包光影资源包整合包软件汉化地图
登录
设置
Live2DMC

Live2DMC

Live2D MC —— 把 Live2D 模型放进 Minecraft(Forge)

优化前置实用工具
004 days ago

Live2DMC

Live2D MC —— 把 Live2D 模型放进 Minecraft(Forge)

0
0
优化
前置
实用工具

    关于附属

    具体方法
简介渲染图更新日志版本百科反馈讨论

附属 Mod 接口(API)

其他 mod 想用本 mod 的模型 / 界面,不需要碰原生库,只用 com.chillet.live2dmc.api 里的三个门面类(全部 @OnlyIn(Dist.CLIENT),版本号 Live2DMcApi.API_VERSION = "1")。

接入

dependencies {
    // 把 live2dmc-1.0.0.jar 放进 libs/,只在编译期用
    compileOnly files("libs/live2dmc-1.0.0.jar")
}
# mods.toml:软依赖(mandatory=false 时先判 Live2DMcApi.isAvailable())
[[dependencies.youraddon]]
modId = "live2dmc"
mandatory = false
versionRange = "[1.0.0,)"
ordering = "AFTER"
side = "CLIENT"

Live2DMcApi:模型 / 表情 / 参数 / 部件 / HUD / 渲染

方法 说明
modId() / isAvailable() 本 mod 的 id / 是否就绪(模型没加载也是 true)
hasModel() / statusLine() / hintLine() 有没有模型 / 状态文案 / 首步提示
models() / currentModel() / currentModelLabel() 模型列表(目录名)/ 当前模型 / 显示名
selectModel(String) / cycleModel() / rescanModels() / openModelFolder() 换模型(会清空当前表情)/ 轮换 / 重扫目录 / 打开目录
expressions() / selectedExpressions() 可用表情 id / 已勾选(可多个)
setExpressions(List) / toggleExpression(String) / clearExpressions() 设置 / 开关 / 清空表情,叠加生效
cycleMotion() / currentMotion() 播放下一个动作 / 当前动作名
parameters() → List<Param> / parameter(String) 参数表与当前值(Param{id,name,group,min,max})
setParameter(String,float) / hasParameterOverride(String) / resetParameters() 实时覆盖参数 / 是否改过 / 全部还原
parts() → List<Part> / isPartVisible(String) / setPartVisible(String,boolean) / showAllParts() 部件表(Part{id,name})与开关
offsetX() / offsetY() / setOffset(double,double) 模型位置(拖动同款)
scale() / setScale(double) / opacity() / setOpacity(double) 缩放 / 不透明度
isHudEnabled() / setHudEnabled(boolean) 桌面挂件(HUD)开关
hudAnchorX() / hudAnchorY() / setHudAnchor(double,double) / hudScale() / setHudScale(double) HUD 锚点(0~1 整屏比例)与大小
render(GuiGraphics, x, y, w, h) 把模型画进屏幕矩形(任意 GUI/界面里都能用,返回是否画了)
renderFollowMouse(GuiGraphics, x, y, w, h, mouseX, mouseY) 同上,并按鼠标位置转头
isLightTheme() / setLightTheme(boolean) 深/浅色主题(写配置)
openConsole() / save() / resetDefaults() 打开设置界面 / 立即落盘 / 恢复默认
示例(聊天框里叫角色笑一下,并把模型画到自绘界面里):
if (Live2DMcApi.isAvailable() && Live2DMcApi.hasModel()) {
    Live2DMcApi.setExpressions(List.of("Happy1", "Shy"));          // 叠加,清空用 clearExpressions()
    boolean drawn = Live2DMcApi.renderFollowMouse(graphics, x, y, 200, 260,
            mouseX, mouseY);
}

模型目录、表达式列表、参数/部件都是运行时数据:models() 为空说明玩家还没放模型, render(...) 返回 false 时不要报错(没有模型 / 原生库不可用都正常)。

Live2DMcUiApi:往设置界面加页签

页签里的控件就是本 mod 自带的 com.chillet.live2dmc.ui 控件库(自绘、无着色器、无贴图), 坐标是绝对屏幕坐标,用 bodyX()/bodyY() 作内容区左上角、bodyW()/bodyH() 作可用宽高:

Live2DMcUiApi.registerTab("youraddon", "你的页签", tab -> {
    int x = tab.bodyX(), y = tab.bodyY(), w = tab.bodyW();
    tab.add(new UiSlider(() -> "强度",
            () -> myStrength, v -> myStrength = v, 0.0D, 100.0D, 1.0D)
            .bounds(x, y, w, 19));
    tab.add(new UiButton(() -> "点我", () -> doSomething(), UiButton.Style.PRIMARY)
            .bounds(x, y + 24, w / 2 - 2, 20));
});
方法 说明
registerTab(String id, String title, Consumer<TabBuilder> build) 注册页签(同 id 只保留第一个;构建抛异常只记日志,不影响界面)
tabs() 已注册页签(TabEntry{id,title,build})
openConsole() 打开本 mod 的设置界面
notifyConsoleOpened() / notifyConsoleClosed() 设置界面自己会调,一般不用管
页签标题建议自己用 I18n 本地化,并且尽量短("拓展"/"语音" 这类 2~3 个字最好):
内置 5 个页签已经占掉大半宽度,标题过长会按段宽自动省略;页面内容区仍是完整宽度。
页签在设置界面每次打开时重建,构建方法里读最新状态即可。

Live2DMcEvents:状态监听

Live2DMcEvents.register(new Live2DMcEvents.Listener() {
    @Override public void onModelChanged(String model) { ... }
    @Override public void onExpressionsChanged(List<String> selected) { ... }
    @Override public void onConfigSaved() { ... }
    @Override public void onConsoleOpened() { ... }
    @Override public void onConsoleClosed() { ... }
});

全部方法都有空实现(只重写关心的即可)。监听器里的异常会被吞掉并记一条 warn, 不会打断本 mod;不再需要时 Live2DMcEvents.unregister(listener)。

BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包地图

社区

汉化软件插件数据包

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2026 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12 | 公安备案 鲁公网安备37021002001586号