大家好!我是Live2D-JavaBinding项目作者。最近完成了一个开源项目 **Live2D-JavaBinding**,这是一个为 Live2D Cubism SDK 提供的原生 Java 绑定,主要针对使用 OpenGL 的 Java 应用(如 LWJGL 或 JOGL),让开发者能在 Java 环境中无缝集成 Live2D 模型(比如做虚拟主播、游戏角色互动等)。
Live2D 在二次元、VTuber 和游戏领域很受欢迎,但官方 SDK 主要是 C++ 的,直接在 Java 中用起来门槛较高。这个项目通过 JNI 桥接了原生 SDK,提供简单直观的 Java API,同时支持多平台,适合桌面应用开发。
**项目地址**:https://github.com/Eatgrapes/Live2D-JavaBinding
**Wiki 文档**:https://github.com/Eatgrapes/Live2D-JavaBinding/wiki(详细用法和示例)
#### 主要特性
– **解耦分发**:Java 逻辑和原生二进制分离,native JAR 完全自包含,便于分发。
– **跨平台支持**:Windows (x64)、Linux (x64/arm64)、macOS (x64/arm64)。
– **基于 OpenGL**:完美适配 LWJGL 等 OpenGL 加速框架。
– **简洁 API**:模型加载、渲染、交互一目了然。
– **JNI 实现**:高性能原生调用。
#### 已实现功能
– [x] 模型加载(.moc3、物理、姿势)
– [x] 表情系统(加载和切换)
– [x] 动作系统(播放、优先级控制、回调)
– [x] 参数控制(手动设置/获取)
– [x] 交互(拖拽、点击检测)
– [x] 渲染(OpenGL 纹理管理)
#### 示例
“`java
import dev.eatgrapes.live2d.CubismFramework;
import dev.eatgrapes.live2d.CubismUserModel;
// 初始化框架
CubismFramework.startUp();
CubismFramework.initialize();
// 加载模型
CubismUserModel model = new CubismUserModel();
model.loadModel(moc3Bytes);
model.loadPose(poseBytes);
model.loadPhysics(physicsBytes);
// 设置渲染器
model.createRenderer();
model.registerTexture(0, openGLTextureId);
// 交互与动作
model.setDragging(nx, ny); // 眼神追踪或拖拽
model.startMotion(motionBytes, priority, loop, name -> {
System.out.println(“动作完成!”);
});
// 渲染循环中更新与绘制
model.update(deltaTime);
model.draw(mvpMatrix);
“`
#### 项目结构与构建
– `binding/`:Java API
– `native/`:JNI C++ 实现 + CMake
– `example/`:基于 LWJGL 的完整 Maven 示例项目
– 构建只需:`python3 scripts/build.py`(支持全平台自动编译)
#### 贡献与许可
欢迎 PR!无论是添加更多 SDK 功能、优化平台支持,还是修 bug,都很感激。
– Binding 代码:MIT 许可
– Live2D Cubism SDK:需遵守官方 [Live2D Open Software License](https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html)
如果你们有在 Java 中玩 Live2D 的需求,或者对虚拟角色互动感兴趣,欢迎试用、star 或反馈 issue!







暂无评论内容