live2d-py
注意:本仓库不包含 Live2D Cubism Core 及 Framework(受许可限制),源码编译时需自行从 Live2D官网 下载。
使用 Python 直接加载和操作 Live2D 模型,不通过 Web Engine 等间接手段进行渲染。
基于 Python C Extension 对 Live2D Native SDK (C++) 进行了封装。理论上,只要配置好 OpenGL 上下文,可在 Python 中将 live2d 绘制在任何基于 OpenGL 的窗口。
代码使用示例:examples
详细使用文档:Wiki
修改和开发:CONTRIBUTING
兼容UI库
理论上兼容所有能使用 OpenGL 进行绘制的UI库: Pygame / PyQt5 / PySide2 / PySide6 / GLFW / pyopengltk / FreeGlut / Qfluentwidgets ...
支持功能
- 加载模型:Cubism 2.1 和 Cubism 3.0 及以上版本
- 视线跟踪
- 点击交互
- 动作播放回调
- 口型同步
- 模型各部分参数控制
- 各部件透明度控制
- 精确到部件的点击检测
兼容性
Cubism Live2D 版本
live2d-py |
支持的live2d模型 | 实现 |
|---|---|---|
live2d.v2 |
Cubism 2.1 以及更早的版本 | 纯 Python 实现 |
live2d.v2cpp |
Cubism 2.1 以及更早的版本 | C++ 移植 (高性能) |
live2d.v3 |
Cubism 3.0 及以上版本 | Python C Extension 封装 |
推荐使用 live2d.v2cpp 替代 live2d.v2 以获得更好的性能。API 完全兼容,只需将 import live2d.v2 as live2d 替换为 import live2d.v2cpp as live2d。
Python 版本及平台
✅: 可用, 支持, 已通过
❓: 尚未测试
🚧, ❌: 编译期问题或平台兼容性问题待解决
| Platform | Python Version | live2d.v2 |
live2d.v2cpp |
live2d.v3 |
PyPI |
|---|---|---|---|---|---|
| macOS arm64 | >=3.11 |
✅ | ✅ | ✅ | ✅ |
| Windows x64 | >=3.11 |
✅ | ✅ | ✅ | ✅ |
| Linux x64 | >=3.11 |
✅ | ✅ | ✅ | ❌ |
注:
- Cubism 2.X 导出的模型:文件名格式常为
XXX.moc,XXX.model.json,XXX.mtn - Cubism 3.0 及以上导出的模型:文件名格式常为
XXX.moc3,XXX.model3.json,XXX.motion3.json
使用说明
- 在 Release 中下载对应版本的
whl文件并安装(推荐)
pip install live2d_py-0.X.X-cpXXX-cpXXX-win_amd64.whl
- 通过 PyPI 安装
pip install live2d-py
- 从源码构建,参考 安装#源码构建
示例
简易面捕
基于 live2d-py C 模块及 Qt 开发的 Live2DViewer
多模型加载
添加背景
模型变换 & 口型同步音频 & 点击测试
源码见 main_glfw.py
模型整体透明度示例
源码见 main_pyqt5_canvas_opacity.py
鸣谢
特别感谢以下用户为本项目提供的帮助和支持: 96bearli, Ovizro, AnyaCoder, jahtim, Honghe, RobertMeow, LUORANCHENG, TinyKiecoo, Barracuda72, GuangChen2333, makabakadot, thynetruly, mastwet, KyvYang, @Mozilla88, @CooperWang0912, @minghf85
非常感谢以下项目及其贡献者们的帮助:
CubismNativeSamples (live2d.v3)
Cubism2 Web SDK (live2d.v2)
de4js(JavaScript 反混淆工具)
JsConvert (Javascript 转 Python 工具)
D2Evil (moc 文件分析)
facial-landmarks-for-cubism (面捕参考)
Live2D 模型:
Release files for live2d-py 0.8.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| live2d_py-0.8.0.9.tar.gz | 6.8 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| live2d_py-0.8.0.9-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| live2d_py-0.8.0.9-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| live2d_py-0.8.0.9-cp311-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 | Details |
| live2d_py-0.8.0.9-cp311-abi3-macosx_26_0_universal2.whl | CPython 3.11 | abi3 | macOS 26.0+ universal2 (ARM64, x86-64) | Details |
Total release size: 10.0 MB
Release files / live2d_py-0.8.0.9.tar.gz
| Download URL | live2d_py-0.8.0.9.tar.gz |
|---|---|
| Size | 6.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1dbdb9f82651f9f3eeef602e7c88b09c8201a725570398c5ed1e0364093cfe00
|
|
BLAKE2b-256 checksum How to use checksums |
21743db66392bc2e10ef5c095c43138c79699375810f405a8ddefa4c25b7e25c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / live2d_py-0.8.0.9-cp311-abi3-win_amd64.whl
| Download URL | live2d_py-0.8.0.9-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 491.6 kB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
e014273dce13637cb71661a97d3ff051b51b351ff2bc95916d9b3c3e5ba6bfc5
|
|
BLAKE2b-256 checksum How to use checksums |
9b8f05330b7fe3cb0c139b800a5107bddb9ec4650f02d6b706fe32f7a9fec0f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / live2d_py-0.8.0.9-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | live2d_py-0.8.0.9-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
31800d020cafd60c27bb80beeeff9259f602ba810d4545457bf136fd19bc764d
|
|
BLAKE2b-256 checksum How to use checksums |
dff1a5fb116393f4a2dcadde7ba72dee5c60f5d50a2bca1b971390ee3de99347
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / live2d_py-0.8.0.9-cp311-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
| Download URL | live2d_py-0.8.0.9-cp311-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
138858723693f03e91a743ee9521526d4b108398906d6707f1bd681e1e26fe2c
|
|
BLAKE2b-256 checksum How to use checksums |
dbc44cbf3a1cfaab3d8312fdce01ac76e73c26c0e25461f223f69819802eb358
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / live2d_py-0.8.0.9-cp311-abi3-macosx_26_0_universal2.whl
| Download URL | live2d_py-0.8.0.9-cp311-abi3-macosx_26_0_universal2.whl |
|---|---|
| Size | 587.3 kB |
| Tags | CPython 3.11 abi3 macOS 26.0+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
0b040cc29e2db08d6209a2040e6da91e952d4f38ceabe1e652a7f47ea46f2173
|
|
BLAKE2b-256 checksum How to use checksums |
cd735f83b78026b8304ef4029a0d0d3cc36e3835f1825247c4b4738e3ff0ea6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|