Skip to main content

koe live2d-py


Docker Build Version Python Version CMake C++17 CsmSDK

English README

注意:本仓库不包含 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.1Cubism 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.mocXXX.model.jsonXXX.mtn
  • Cubism 3.0 及以上导出的模型:文件名格式常为 XXX.moc3XXX.model3.json, XXX.motion3.json

使用说明

  1. Release 中下载对应版本的 whl 文件并安装(推荐)
pip install live2d_py-0.X.X-cpXXX-cpXXX-win_amd64.whl
  1. 通过 PyPI 安装
pip install live2d-py
  1. 从源码构建,参考 安装#源码构建

示例

简易面捕

源码见 main_facial_bind.py

面捕-期末周破防

基于 live2d-py C 模块及 Qt 开发的 Live2DViewer

Live2DViewer

多模型加载

源码见 main_glfw_four_model.py

multi_model

添加背景

源码见 main_pygame_background.py

background

模型变换 & 口型同步音频 & 点击测试

源码见 main_glfw.py

完整用例

模型整体透明度示例

源码见 main_pyqt5_canvas_opacity.py

opacity

鸣谢

特别感谢以下用户为本项目提供的帮助和支持: 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)

de4jsJavaScript 反混淆工具)

JsConvert (JavascriptPython 工具)

D2Evil (moc 文件分析)

facial-landmarks-for-cubism (面捕参考)

Live2D 模型:

Release files for live2d-py 0.8.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for live2d-py 0.8.0.7
File Interpreter ABI Platform
live2d_py-0.8.0.7-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
live2d_py-0.8.0.7-cp311-abi3-macosx_26_0_universal2.whl CPython 3.11 abi3 macOS 26.0+ universal2 (ARM64, x86-64) Details

Total release size: 1.1 MB

Release files / live2d_py-0.8.0.7-cp311-abi3-win_amd64.whl

Download URL live2d_py-0.8.0.7-cp311-abi3-win_amd64.whl
Size 491.6 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d9cdec6c3704e60e8cd96a82d6933cc06be4a528e87d426d0602f0935ccbddbe
BLAKE2b-256 checksum
How to use checksums
5058ac99b0842ebd31cb2af717648c2a05f896f2573bad2994145117fc02a8fc
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.7-cp311-abi3-macosx_26_0_universal2.whl

Download URL live2d_py-0.8.0.7-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
a193d2d802baa76a97fb5ea2444c2cb16b40d3851763f1c2dc9b1d2a523d4afb
BLAKE2b-256 checksum
How to use checksums
f820d87fe5e427e87edbafe7d1d164d8d5be11e4bbbc0981605efabac9a845cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page