使用 Python 直接加载和操作 Live2D 模型,不通过 Web Engine 等间接手段进行渲染。
基于 Python C++ API 对 Live2D Native SDK (C++) 进行了封装。理论上,只要配置好 OpenGL 上下文,可在 Python 中将 live2d 绘制在任何基于 OpenGL 的窗口。
代码使用示例:package
详细使用文档:Wiki
修改和开发:CONTRIBUTING
理论上兼容所有能使用 OpenGL 进行绘制的UI库: Pygame / PyQt5 / PySide2 / PySide6 / GLFW / pyopengltk/ FreeGlut / Qfluentwidgets ...
- 加载模型:Cubism 2.1 和 Cubism 3.0 及以上版本
- 视线跟踪
- 点击交互
- 动作播放回调
- 口型同步
- 模型各部分参数控制
- 各部件透明度控制
- 精确到部件的点击检测
Python 版本支持:从 live2d-py 0.3.2 开始使用 Python C Limited API,理论上兼容 Python 3.2 以上的所有版本。
live2d-py |
支持的live2d模型 | 实现 |
---|---|---|
live2d.v2 |
Cubism 2.1 以及更早的版本 | 纯 Python 实现 |
live2d.v3 |
Cubism 3.0 及以上版本 | Python C Extension 封装 |
✅: 可用, 支持, 已通过
❓: 尚未测试
🚧, ❌: 编译期问题或平台兼容性问题待解决
Platform | Python Version | live2d.v2 |
live2d.v3 |
构建状态 | PyPI |
---|---|---|---|---|---|
MacOS arm64 | >3.0, <=3.10 |
✅ | ❓ | 🚧 | ❌ |
MacOS arm64 | >=3.11 |
✅ | ✅ | ✅ | ✅ |
Windows x86/x64 | >3.0, <3.8 |
✅ | ❓ | 🚧 | ❌ |
Windows x86/x64 | >=3.8 |
✅ | ✅ | ✅ | ✅ |
Ubuntu 20.04/Arch, x64 | >3.0, <3.8 |
✅ | ❓ | 🚧 | ❌ |
Ubuntu 20.04/Arch, x64 | >=3.8 |
✅ | ✅ | ✅ | ❌ |
注:
live2d.v2
由 Cubism Web SDK 转写为纯 Python,尚未使用 numpy 等优化的库,性能有待提升- Cubism 2.X 导出的模型:文件名格式常为
XXX.moc
,XXX.model.json
,XXX.mtn
- Cubism 3.0 及以上导出的模型:文件名格式常为
XXX.moc3
,XXX.model3.json
,XXX.motion3.json
-
将仓库中的 package/live2d 直接作为 Python 模块集成到你的项目中即可。
-
在 Release 中下载对应版本的
whl
文件并安装(推荐)
pip install live2d_py-0.X.X-cpXXX-cpXXX-win32.whl
- 通过 PyPI 安装
pip install live2d-py
- 从源码构建,参考 安装#源码构建
源码见 main_facial_bind_mediapipe.py
源码见 main_pygame_three_model.py
源码见 main_pygame.py
源码见 main_pyqt5_canvas_opacity.py
特别感谢 96bearli,Ovizro, AnyaCoder, jahtim, Honghe, RobertMeow, LUORANCHENG, TinyKiecoo 为本项目提供的帮助和支持。
非常感谢以下项目及其贡献者们的帮助:
CubismNativeSamples (live2d.v3
)
Cubism2 Web SDK (live2d.v2
)
de4js(JavaScript
反混淆工具)
JsConvert (Javascript
转 Python
工具)
D2Evil (moc
文件分析)
facial-landmarks-for-cubism (面捕参考)
Live2D 模型: