live2d-py


Namelive2d-py JSON
Version 0.5.4 PyPI version JSON
download
home_pagehttps://github.com/Arkueid/live2d-py
SummaryA non-web Live2D library for Python.
upload_time2025-08-09 07:24:50
maintainerNone
docs_urlNone
authorArkueid
requires_python>=3.2
licenseLICENSE
keywords live2d cubism live2d cubism sdk cubism sdk for python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
    <h1>
        <img src="./docs/moeroid.ico" alt="koe" width="50px" height="50px">
        <span style="color: #ffc000ff">live</span><span style="color: #ed7d31ff">2d</span><span style="color: #2e75b6ff">-py</span>
    </h1>
</div>

<p align="center" style="font-family: 'Roboto', sans-serif; font-size: 1em; color: #555;">
    <img title="Windows Distro" src="https://github.com/Arkueid/live2d-py/actions/workflows/build-windows.yml/badge.svg">
    <img title="MacOS Distro" src="https://github.com/Arkueid/live2d-py/actions/workflows/build-macos.yml/badge.svg">
    <img title="Linux Distro" src="https://github.com/Arkueid/live2d-py/actions/workflows/build-linux.yml/badge.svg">
    <br>
    <img title="Release Version" src="https://img.shields.io/github/v/release/Arkueid/live2d-py" alt="Docker Build Version" style="margin: 0 10px;">
    <img title="Python Version" src="https://img.shields.io/badge/python-3.8+-blue" alt="Python Version" style="margin: 0 10px;">
    <img title="CMake" src="https://img.shields.io/badge/CMake-3.26+-orange" alt="CMake" style="margin: 0 10px;">
    <img title="C++" src="https://img.shields.io/badge/C%2B%2B-17-yellow" alt="C++17" style="margin: 0 10px;">
    <img title="CsmSDK" src="https://img.shields.io/badge/CsmSDK-5_r3-orange" alt="CsmSDK" style="margin: 0 10px;">
    <br>
    <img title="QQ Group" src="https://img.shields.io/badge/QQ群-783375488-brightgreen" style="margin: 0 10px;">
    <br>
    <a href="https://github.com/Arkueid/live2d-py/blob/main/README.en.md">English README</a>
</p>

使用 Python 直接加载和操作 Live2D 模型,不通过 Web Engine 等间接手段进行渲染。

基于 Python C Extension 对 Live2D Native SDK (C++) 进行了封装。理论上,只要配置好 OpenGL 上下文,可在 Python 中将 live2d 绘制在任何基于 OpenGL 的窗口。

代码使用示例:[examples](./examples/)

详细使用文档:[Wiki](https://github.com/Arkueid/live2d-py/wiki)

修改和开发:[CONTRIBUTING](./CONTRIBUTING.md)

## 兼容UI库

理论上兼容所有能使用 OpenGL 进行绘制的UI库: Pygame / PyQt5 / PySide2 / PySide6 / GLFW / pyopengltk/ FreeGlut / Qfluentwidgets ...

## 支持功能

* 加载模型:**Cubism 2.1** 和 **Cubism 3.0** 及以上版本
* 视线跟踪
* 点击交互
* 动作播放回调
* 口型同步
* 模型各部分参数控制
* 各部件透明度控制
* 精确到部件的点击检测

## 兼容性

### Python 版本
Python 版本支持:从 live2d-py 0.3.2 开始使用 Python C Limited API,理论上兼容 Python 3.2 以上的所有版本。

### Cubism Live2D 版本

| `live2d-py` | 支持的live2d模型        | 实现                    |              
|-------------|--------------------|-----------------------|
| `live2d.v2` | Cubism 2.1 以及更早的版本 | 纯 Python 实现           | 支持 `32` / `64` 位,支持`Python 3.0` 及以上版本 | Winodws、Linux、MacOS(理论上) |                                                       |
| `live2d.v3` | Cubism 3.0 及以上版本   | Python C Extension 封装 | 支持 `32` / `64` 位,支持`Python 3.2` 及以上版本 | Windows、Linux            |

### Python 版本及平台

:white_check_mark:: 可用, 支持, 已通过

:question:: 尚未测试

:construction:, :x:: 编译期问题或平台兼容性问题待解决 

|Platform|Python Version| `live2d.v2` | `live2d.v3` |构建状态|PyPI|
|--------|--------------|-------------|-------------|------|----------|
|MacOS  arm64| `>3.0, <=3.10`|:white_check_mark:|:question:|:construction:|:x:|
|MacOS  arm64| `>=3.11`      |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|Windows x86/x64|`>3.0, <3.8`|:white_check_mark:|:question:|:construction:|:x:|
|Windows x86/x64|`>=3.8`|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|
|Ubuntu 20.04/Arch, x64|`>3.0, <3.8`|:white_check_mark:|:question:|:construction:|:x:|
|Ubuntu 20.04/Arch, x64|`>=3.8`|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|

注:

* `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`

## 使用说明

1. 在 [Release](https://github.com/Arkueid/live2d-py/releases/latest) 中下载对应版本的 `whl` 文件并安装(推荐)

```shell
pip install live2d_py-0.X.X-cpXXX-cpXXX-win32.whl
```

2. 通过 [PyPI](https://pypi.org/project/live2d-py/) 安装

```shell
pip install live2d-py
```

3. 从源码构建,参考 [安装#源码构建](https://github.com/Arkueid/live2d-py/wiki/%E5%AE%89%E8%A3%85#%E6%BA%90%E7%A0%81%E6%9E%84%E5%BB%BA)

## 示例

### 简易面捕

源码见 [main_facial_bind_mediapipe.py](./examples/main_facial_bind.py)

![面捕-期末周破防](./docs/video_test.gif)

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

![Live2DViewer](./docs/live2dviewer.png)


### 多模型加载

源码见 [main_pygame_three_model.py](./examples/main_pygame_three_model.py)

![three_model](./docs/three_model.png)

### 添加背景

源码见 [main_pygame_background.py](./examples/main_pygame_background.py)

![background](./docs/background.png)

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

源码见 [main_pygame.py](./examples/main_pygame.py)

![完整用例](./docs/full%20demo.gif)

### 模型整体透明度示例

源码见 [main_pyqt5_canvas_opacity.py](./examples/main_pyqt5_canvas_opacity.py)

![opacity](./docs/opacity.gif)

## 鸣谢

特别感谢 [96bearli], [Ovizro], [AnyaCoder], [jahtim], [Honghe], [RobertMeow], [LUORANCHENG], [TinyKiecoo], [Barracuda72], [GuangChen2333], [makabakadot], [thynetruly], [mastwet], [KyvYang] 为本项目提供的帮助和支持。

[96bearli]: https://github.com/96bearli

[Ovizro]: https://github.com/Ovizro

[AnyaCoder]: https://github.com/AnyaCoder

[jahtim]: https://github.com/jahtim

[Honghe]: https://github.com/Honghe

[RobertMeow]: https://github.com/RobertMeow

[LUORANCHENG]: https://github.com/LUORANCHENG

[TinyKiecoo]: https://github.com/TinyKiecoo

[Barracuda72]: https://github.com/Barracuda72

[GuangChen2333]: https://github.com/GuangChen2333

[makabakadot]: https://github.com/makabakadot

[thynetruly]: https://github.com/thynetruly

[mastwet]: https://github.com/mastwet

[KyvYang]: https://github.com/kyv001


非常感谢以下项目及其贡献者们的帮助:

[CubismNativeSamples](https://github.com/Live2D/CubismNativeSamples) (`live2d.v3`)

[Cubism2 Web SDK](https://github.com/dylanNew/live2d) (`live2d.v2`)

[de4js](https://github.com/lelinhtinh/de4js)(`JavaScript` 反混淆工具)

[JsConvert](https://github.com/JonBoynton/JSConvert) (`Javascript` 转 `Python` 工具)

[D2Evil](https://github.com/UlyssesWu/D2Evil) (`moc` 文件分析)

[facial-landmarks-for-cubism](https://github.com/adrianiainlam/facial-landmarks-for-cubism) (面捕参考)

Live2D 模型:

* [Cubism 官方样例数据](https://www.live2d.com/en/learn/sample/)
* [雅萌工作室](https://yameng.remoon.cn/studio/live2d-f/1)
* [live2d-models](https://github.com/Eikanya/Live2d-model)
* [【虚拟主播模型】 宁宁vup化!](https://www.bilibili.com/video/BV1s7411d7y9)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Arkueid/live2d-py",
    "name": "live2d-py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.2",
    "maintainer_email": null,
    "keywords": "Live2D, Cubism Live2D, Cubism SDK, Cubism SDK for Python",
    "author": "Arkueid",
    "author_email": "Arkueid <thetardis@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/57/25/45a207dfef16e655a5638472fe702311d9e55814a524ec4a02d209151219/live2d_py-0.5.4.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n    <h1>\n        <img src=\"./docs/moeroid.ico\" alt=\"koe\" width=\"50px\" height=\"50px\">\n        <span style=\"color: #ffc000ff\">live</span><span style=\"color: #ed7d31ff\">2d</span><span style=\"color: #2e75b6ff\">-py</span>\n    </h1>\n</div>\n\n<p align=\"center\" style=\"font-family: 'Roboto', sans-serif; font-size: 1em; color: #555;\">\n    <img title=\"Windows Distro\" src=\"https://github.com/Arkueid/live2d-py/actions/workflows/build-windows.yml/badge.svg\">\n    <img title=\"MacOS Distro\" src=\"https://github.com/Arkueid/live2d-py/actions/workflows/build-macos.yml/badge.svg\">\n    <img title=\"Linux Distro\" src=\"https://github.com/Arkueid/live2d-py/actions/workflows/build-linux.yml/badge.svg\">\n    <br>\n    <img title=\"Release Version\" src=\"https://img.shields.io/github/v/release/Arkueid/live2d-py\" alt=\"Docker Build Version\" style=\"margin: 0 10px;\">\n    <img title=\"Python Version\" src=\"https://img.shields.io/badge/python-3.8+-blue\" alt=\"Python Version\" style=\"margin: 0 10px;\">\n    <img title=\"CMake\" src=\"https://img.shields.io/badge/CMake-3.26+-orange\" alt=\"CMake\" style=\"margin: 0 10px;\">\n    <img title=\"C++\" src=\"https://img.shields.io/badge/C%2B%2B-17-yellow\" alt=\"C++17\" style=\"margin: 0 10px;\">\n    <img title=\"CsmSDK\" src=\"https://img.shields.io/badge/CsmSDK-5_r3-orange\" alt=\"CsmSDK\" style=\"margin: 0 10px;\">\n    <br>\n    <img title=\"QQ Group\" src=\"https://img.shields.io/badge/QQ\u7fa4-783375488-brightgreen\" style=\"margin: 0 10px;\">\n    <br>\n    <a href=\"https://github.com/Arkueid/live2d-py/blob/main/README.en.md\">English README</a>\n</p>\n\n\u4f7f\u7528 Python \u76f4\u63a5\u52a0\u8f7d\u548c\u64cd\u4f5c Live2D \u6a21\u578b\uff0c\u4e0d\u901a\u8fc7 Web Engine \u7b49\u95f4\u63a5\u624b\u6bb5\u8fdb\u884c\u6e32\u67d3\u3002\n\n\u57fa\u4e8e Python C Extension \u5bf9 Live2D Native SDK (C++) \u8fdb\u884c\u4e86\u5c01\u88c5\u3002\u7406\u8bba\u4e0a\uff0c\u53ea\u8981\u914d\u7f6e\u597d OpenGL \u4e0a\u4e0b\u6587\uff0c\u53ef\u5728 Python \u4e2d\u5c06 live2d \u7ed8\u5236\u5728\u4efb\u4f55\u57fa\u4e8e OpenGL \u7684\u7a97\u53e3\u3002\n\n\u4ee3\u7801\u4f7f\u7528\u793a\u4f8b\uff1a[examples](./examples/)\n\n\u8be6\u7ec6\u4f7f\u7528\u6587\u6863\uff1a[Wiki](https://github.com/Arkueid/live2d-py/wiki)\n\n\u4fee\u6539\u548c\u5f00\u53d1\uff1a[CONTRIBUTING](./CONTRIBUTING.md)\n\n## \u517c\u5bb9UI\u5e93\n\n\u7406\u8bba\u4e0a\u517c\u5bb9\u6240\u6709\u80fd\u4f7f\u7528 OpenGL \u8fdb\u884c\u7ed8\u5236\u7684UI\u5e93\uff1a Pygame / PyQt5 / PySide2 / PySide6 / GLFW / pyopengltk/ FreeGlut / Qfluentwidgets ...\n\n## \u652f\u6301\u529f\u80fd\n\n* \u52a0\u8f7d\u6a21\u578b\uff1a**Cubism 2.1** \u548c **Cubism 3.0** \u53ca\u4ee5\u4e0a\u7248\u672c\n* \u89c6\u7ebf\u8ddf\u8e2a\n* \u70b9\u51fb\u4ea4\u4e92\n* \u52a8\u4f5c\u64ad\u653e\u56de\u8c03\n* \u53e3\u578b\u540c\u6b65\n* \u6a21\u578b\u5404\u90e8\u5206\u53c2\u6570\u63a7\u5236\n* \u5404\u90e8\u4ef6\u900f\u660e\u5ea6\u63a7\u5236\n* \u7cbe\u786e\u5230\u90e8\u4ef6\u7684\u70b9\u51fb\u68c0\u6d4b\n\n## \u517c\u5bb9\u6027\n\n### Python \u7248\u672c\nPython \u7248\u672c\u652f\u6301\uff1a\u4ece live2d-py 0.3.2 \u5f00\u59cb\u4f7f\u7528 Python C Limited API\uff0c\u7406\u8bba\u4e0a\u517c\u5bb9 Python 3.2 \u4ee5\u4e0a\u7684\u6240\u6709\u7248\u672c\u3002\n\n### Cubism Live2D \u7248\u672c\n\n| `live2d-py` | \u652f\u6301\u7684live2d\u6a21\u578b        | \u5b9e\u73b0                    |              \n|-------------|--------------------|-----------------------|\n| `live2d.v2` | Cubism 2.1 \u4ee5\u53ca\u66f4\u65e9\u7684\u7248\u672c | \u7eaf Python \u5b9e\u73b0           | \u652f\u6301 `32` / `64` \u4f4d\uff0c\u652f\u6301`Python 3.0` \u53ca\u4ee5\u4e0a\u7248\u672c | Winodws\u3001Linux\u3001MacOS\uff08\u7406\u8bba\u4e0a\uff09 |                                                       |\n| `live2d.v3` | Cubism 3.0 \u53ca\u4ee5\u4e0a\u7248\u672c   | Python C Extension \u5c01\u88c5 | \u652f\u6301 `32` / `64` \u4f4d\uff0c\u652f\u6301`Python 3.2` \u53ca\u4ee5\u4e0a\u7248\u672c | Windows\u3001Linux            |\n\n### Python \u7248\u672c\u53ca\u5e73\u53f0\n\n:white_check_mark:: \u53ef\u7528, \u652f\u6301, \u5df2\u901a\u8fc7\n\n:question:: \u5c1a\u672a\u6d4b\u8bd5\n\n:construction:, :x:: \u7f16\u8bd1\u671f\u95ee\u9898\u6216\u5e73\u53f0\u517c\u5bb9\u6027\u95ee\u9898\u5f85\u89e3\u51b3 \n\n|Platform|Python Version| `live2d.v2` | `live2d.v3` |\u6784\u5efa\u72b6\u6001|PyPI|\n|--------|--------------|-------------|-------------|------|----------|\n|MacOS  arm64| `>3.0, <=3.10`|:white_check_mark:|:question:|:construction:|:x:|\n|MacOS  arm64| `>=3.11`      |:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|\n|Windows x86/x64|`>3.0, <3.8`|:white_check_mark:|:question:|:construction:|:x:|\n|Windows x86/x64|`>=3.8`|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|\n|Ubuntu 20.04/Arch, x64|`>3.0, <3.8`|:white_check_mark:|:question:|:construction:|:x:|\n|Ubuntu 20.04/Arch, x64|`>=3.8`|:white_check_mark:|:white_check_mark:|:white_check_mark:|:x:|\n\n\u6ce8\uff1a\n\n* `live2d.v2` \u7531 Cubism Web SDK \u8f6c\u5199\u4e3a\u7eaf Python\uff0c\u5c1a\u672a\u4f7f\u7528 numpy \u7b49\u4f18\u5316\u7684\u5e93\uff0c\u6027\u80fd\u6709\u5f85\u63d0\u5347\n* Cubism 2.X \u5bfc\u51fa\u7684\u6a21\u578b\uff1a\u6587\u4ef6\u540d\u683c\u5f0f\u5e38\u4e3a `XXX.moc`\uff0c`XXX.model.json`\uff0c`XXX.mtn`\n* Cubism 3.0 \u53ca\u4ee5\u4e0a\u5bfc\u51fa\u7684\u6a21\u578b\uff1a\u6587\u4ef6\u540d\u683c\u5f0f\u5e38\u4e3a `XXX.moc3`\uff0c`XXX.model3.json`, `XXX.motion3.json`\n\n## \u4f7f\u7528\u8bf4\u660e\n\n1. \u5728 [Release](https://github.com/Arkueid/live2d-py/releases/latest) \u4e2d\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684 `whl` \u6587\u4ef6\u5e76\u5b89\u88c5\uff08\u63a8\u8350\uff09\n\n```shell\npip install live2d_py-0.X.X-cpXXX-cpXXX-win32.whl\n```\n\n2. \u901a\u8fc7 [PyPI](https://pypi.org/project/live2d-py/) \u5b89\u88c5\n\n```shell\npip install live2d-py\n```\n\n3. \u4ece\u6e90\u7801\u6784\u5efa\uff0c\u53c2\u8003 [\u5b89\u88c5#\u6e90\u7801\u6784\u5efa](https://github.com/Arkueid/live2d-py/wiki/%E5%AE%89%E8%A3%85#%E6%BA%90%E7%A0%81%E6%9E%84%E5%BB%BA)\n\n## \u793a\u4f8b\n\n### \u7b80\u6613\u9762\u6355\n\n\u6e90\u7801\u89c1 [main_facial_bind_mediapipe.py](./examples/main_facial_bind.py)\n\n![\u9762\u6355-\u671f\u672b\u5468\u7834\u9632](./docs/video_test.gif)\n\n### \u57fa\u4e8e live2d-py C \u6a21\u5757\u53ca Qt \u5f00\u53d1\u7684 Live2DViewer\n\n![Live2DViewer](./docs/live2dviewer.png)\n\n\n### \u591a\u6a21\u578b\u52a0\u8f7d\n\n\u6e90\u7801\u89c1 [main_pygame_three_model.py](./examples/main_pygame_three_model.py)\n\n![three_model](./docs/three_model.png)\n\n### \u6dfb\u52a0\u80cc\u666f\n\n\u6e90\u7801\u89c1 [main_pygame_background.py](./examples/main_pygame_background.py)\n\n![background](./docs/background.png)\n\n### \u6a21\u578b\u53d8\u6362 & \u53e3\u578b\u540c\u6b65\u97f3\u9891 & \u70b9\u51fb\u6d4b\u8bd5\n\n\u6e90\u7801\u89c1 [main_pygame.py](./examples/main_pygame.py)\n\n![\u5b8c\u6574\u7528\u4f8b](./docs/full%20demo.gif)\n\n### \u6a21\u578b\u6574\u4f53\u900f\u660e\u5ea6\u793a\u4f8b\n\n\u6e90\u7801\u89c1 [main_pyqt5_canvas_opacity.py](./examples/main_pyqt5_canvas_opacity.py)\n\n![opacity](./docs/opacity.gif)\n\n## \u9e23\u8c22\n\n\u7279\u522b\u611f\u8c22 [96bearli], [Ovizro], [AnyaCoder], [jahtim], [Honghe], [RobertMeow], [LUORANCHENG], [TinyKiecoo], [Barracuda72], [GuangChen2333], [makabakadot], [thynetruly], [mastwet], [KyvYang] \u4e3a\u672c\u9879\u76ee\u63d0\u4f9b\u7684\u5e2e\u52a9\u548c\u652f\u6301\u3002\n\n[96bearli]: https://github.com/96bearli\n\n[Ovizro]: https://github.com/Ovizro\n\n[AnyaCoder]: https://github.com/AnyaCoder\n\n[jahtim]: https://github.com/jahtim\n\n[Honghe]: https://github.com/Honghe\n\n[RobertMeow]: https://github.com/RobertMeow\n\n[LUORANCHENG]: https://github.com/LUORANCHENG\n\n[TinyKiecoo]: https://github.com/TinyKiecoo\n\n[Barracuda72]: https://github.com/Barracuda72\n\n[GuangChen2333]: https://github.com/GuangChen2333\n\n[makabakadot]: https://github.com/makabakadot\n\n[thynetruly]: https://github.com/thynetruly\n\n[mastwet]: https://github.com/mastwet\n\n[KyvYang]: https://github.com/kyv001\n\n\n\u975e\u5e38\u611f\u8c22\u4ee5\u4e0b\u9879\u76ee\u53ca\u5176\u8d21\u732e\u8005\u4eec\u7684\u5e2e\u52a9\uff1a\n\n[CubismNativeSamples](https://github.com/Live2D/CubismNativeSamples) (`live2d.v3`)\n\n[Cubism2 Web SDK](https://github.com/dylanNew/live2d) (`live2d.v2`)\n\n[de4js](https://github.com/lelinhtinh/de4js)\uff08`JavaScript` \u53cd\u6df7\u6dc6\u5de5\u5177\uff09\n\n[JsConvert](https://github.com/JonBoynton/JSConvert) (`Javascript` \u8f6c `Python` \u5de5\u5177)\n\n[D2Evil](https://github.com/UlyssesWu/D2Evil) (`moc` \u6587\u4ef6\u5206\u6790)\n\n[facial-landmarks-for-cubism](https://github.com/adrianiainlam/facial-landmarks-for-cubism) \uff08\u9762\u6355\u53c2\u8003\uff09\n\nLive2D \u6a21\u578b:\n\n* [Cubism \u5b98\u65b9\u6837\u4f8b\u6570\u636e](https://www.live2d.com/en/learn/sample/)\n* [\u96c5\u840c\u5de5\u4f5c\u5ba4](https://yameng.remoon.cn/studio/live2d-f/1)\n* [live2d-models](https://github.com/Eikanya/Live2d-model)\n* [\u3010\u865a\u62df\u4e3b\u64ad\u6a21\u578b\u3011 \u5b81\u5b81vup\u5316\uff01](https://www.bilibili.com/video/BV1s7411d7y9)\n",
    "bugtrack_url": null,
    "license": "LICENSE",
    "summary": "A non-web Live2D library for Python.",
    "version": "0.5.4",
    "project_urls": {
        "Documentation": "https://Arkueid.github.io/live2d-py-docs/",
        "Homepage": "https://github.com/Arkueid/live2d-py",
        "Repository": "https://github.com/Arkueid/live2d-py"
    },
    "split_keywords": [
        "live2d",
        " cubism live2d",
        " cubism sdk",
        " cubism sdk for python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b6338c5e083c3605fa17d32c2b25189a4cc4302b2f312afd59b0dea95e9bf1f",
                "md5": "91db2503dc67c543e66ff6952deacb0f",
                "sha256": "46f887253ad636d6c0dafa708d614c70cbcd13f34e4ef92ea7c18073c9a59f63"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "91db2503dc67c543e66ff6952deacb0f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.2",
            "size": 257718,
            "upload_time": "2025-08-09T07:26:13",
            "upload_time_iso_8601": "2025-08-09T07:26:13.083271Z",
            "url": "https://files.pythonhosted.org/packages/2b/63/38c5e083c3605fa17d32c2b25189a4cc4302b2f312afd59b0dea95e9bf1f/live2d_py-0.5.4-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2c4a24322689654464e4f30b547ac87a990c26c420f5529a0990139b18fd6e75",
                "md5": "d1c1ea41371dcc639752b1ef0a954a75",
                "sha256": "4da998f715ba3bca7d64dfe6f02396739e3f90ad9938d4343d1ec2ea63ae0ca7"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d1c1ea41371dcc639752b1ef0a954a75",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.2",
            "size": 284489,
            "upload_time": "2025-08-09T07:26:48",
            "upload_time_iso_8601": "2025-08-09T07:26:48.316827Z",
            "url": "https://files.pythonhosted.org/packages/2c/4a/24322689654464e4f30b547ac87a990c26c420f5529a0990139b18fd6e75/live2d_py-0.5.4-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "43312e52f5eda5a5bc2a28cab685494ebc3f6b967a0ba1bef0c5af8427e7667d",
                "md5": "143675fc905cfd5b928810d0bcbc71b2",
                "sha256": "c3075c6b2ce13934c06f02b02a365e941b1cf9a272f2449016537aa4e9272303"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp311-cp311-macosx_13_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "143675fc905cfd5b928810d0bcbc71b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.2",
            "size": 363743,
            "upload_time": "2025-08-09T07:27:57",
            "upload_time_iso_8601": "2025-08-09T07:27:57.092151Z",
            "url": "https://files.pythonhosted.org/packages/43/31/2e52f5eda5a5bc2a28cab685494ebc3f6b967a0ba1bef0c5af8427e7667d/live2d_py-0.5.4-cp311-cp311-macosx_13_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "67d6f71d0874806400351873acbfb8cbb40a81f103f9ded1751b351d37747aa6",
                "md5": "5dccde63b5bba915005f52233e299245",
                "sha256": "632cd15a00af1881e50aee6651c32dcda11d6e4e15c5812c0542824952f39dd0"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp311-cp311-macosx_14_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "5dccde63b5bba915005f52233e299245",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.2",
            "size": 338999,
            "upload_time": "2025-08-09T07:24:09",
            "upload_time_iso_8601": "2025-08-09T07:24:09.381624Z",
            "url": "https://files.pythonhosted.org/packages/67/d6/f71d0874806400351873acbfb8cbb40a81f103f9ded1751b351d37747aa6/live2d_py-0.5.4-cp311-cp311-macosx_14_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6c685a15dd4d41f24385a5968af9806260d1ad8e37d7e39c3f7b6c2e859eac63",
                "md5": "d88cd25b8f804abf2e44b8aa760841d4",
                "sha256": "078c9f3aec944cffd93b271a01449f2ff72d886597e9e7a64902207445786e80"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "d88cd25b8f804abf2e44b8aa760841d4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.2",
            "size": 257723,
            "upload_time": "2025-08-09T07:25:11",
            "upload_time_iso_8601": "2025-08-09T07:25:11.626352Z",
            "url": "https://files.pythonhosted.org/packages/6c/68/5a15dd4d41f24385a5968af9806260d1ad8e37d7e39c3f7b6c2e859eac63/live2d_py-0.5.4-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d512b761dcee51a5f4bcc574249b962a73c573d49ee46d05bac7d2730e9b502d",
                "md5": "332a5e0e49d3875543c5624826766c06",
                "sha256": "25668288a0834cabf8b7995d55cbd673167746fa6bd2e209746746ecebfa507e"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "332a5e0e49d3875543c5624826766c06",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.2",
            "size": 284498,
            "upload_time": "2025-08-09T07:27:02",
            "upload_time_iso_8601": "2025-08-09T07:27:02.276871Z",
            "url": "https://files.pythonhosted.org/packages/d5/12/b761dcee51a5f4bcc574249b962a73c573d49ee46d05bac7d2730e9b502d/live2d_py-0.5.4-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "53c7d98c1698522a01a40b8aa5a0eabe35072061ca21d358355c99647d8ea1fd",
                "md5": "9b364b3c587e7c74c731925c47acb689",
                "sha256": "8783e740bcf173a10a08bdf07a84e07e3de62f5ffeb355d1bd110193541cf2c8"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp312-cp312-macosx_13_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "9b364b3c587e7c74c731925c47acb689",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.2",
            "size": 363687,
            "upload_time": "2025-08-09T07:25:05",
            "upload_time_iso_8601": "2025-08-09T07:25:05.639226Z",
            "url": "https://files.pythonhosted.org/packages/53/c7/d98c1698522a01a40b8aa5a0eabe35072061ca21d358355c99647d8ea1fd/live2d_py-0.5.4-cp312-cp312-macosx_13_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "22831e5d0ffc17cef9f94cc09d02d331c125340b71d04d88376bf858eb68ee0d",
                "md5": "e8d4f868e1382f5683c90f196446930a",
                "sha256": "ddf2ec1e66d126b6209ec3a53a7862946cb78fada2cbdb558551a55b808b06f3"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp312-cp312-macosx_14_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "e8d4f868e1382f5683c90f196446930a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.2",
            "size": 338916,
            "upload_time": "2025-08-09T07:24:09",
            "upload_time_iso_8601": "2025-08-09T07:24:09.076859Z",
            "url": "https://files.pythonhosted.org/packages/22/83/1e5d0ffc17cef9f94cc09d02d331c125340b71d04d88376bf858eb68ee0d/live2d_py-0.5.4-cp312-cp312-macosx_14_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1e28418faeaa54cd15027825472e93e415432263f475fe3a35010a7d31149ba0",
                "md5": "3a9cd5d836ece388ba15564ac55d2bfe",
                "sha256": "d4f22e74b9a07dce853b9d8112dabb47d51ffddba7a47668e4886222c60d7764"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "3a9cd5d836ece388ba15564ac55d2bfe",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.2",
            "size": 257783,
            "upload_time": "2025-08-09T07:26:24",
            "upload_time_iso_8601": "2025-08-09T07:26:24.728682Z",
            "url": "https://files.pythonhosted.org/packages/1e/28/418faeaa54cd15027825472e93e415432263f475fe3a35010a7d31149ba0/live2d_py-0.5.4-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e9e8ade0291094d143d5ae94b36bb6218418d96783b34701c02c9ba9d7d2e7e2",
                "md5": "d8e321d18457b703024419266d44d905",
                "sha256": "225691bafc5bf3c39fe88d5af612c3535209a19eb389c4327aa00c515acad177"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d8e321d18457b703024419266d44d905",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.2",
            "size": 284498,
            "upload_time": "2025-08-09T07:26:26",
            "upload_time_iso_8601": "2025-08-09T07:26:26.530935Z",
            "url": "https://files.pythonhosted.org/packages/e9/e8/ade0291094d143d5ae94b36bb6218418d96783b34701c02c9ba9d7d2e7e2/live2d_py-0.5.4-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ba7534078e9d9efc4171d3785e75c0235c9c8628f1e2e6cc88fc05ec7f71cf70",
                "md5": "6743cbaeb2b6d2d348b6b6fdc37da932",
                "sha256": "4cdf6eae2acf0d01e5b7f9ddeef5962683a312a6e689d7632f6dbfbfc50a5e21"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp313-cp313-macosx_13_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "6743cbaeb2b6d2d348b6b6fdc37da932",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.2",
            "size": 364419,
            "upload_time": "2025-08-09T07:24:43",
            "upload_time_iso_8601": "2025-08-09T07:24:43.985147Z",
            "url": "https://files.pythonhosted.org/packages/ba/75/34078e9d9efc4171d3785e75c0235c9c8628f1e2e6cc88fc05ec7f71cf70/live2d_py-0.5.4-cp313-cp313-macosx_13_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a00ebdb7bbb488df03829326ac133579e3f46aaaf087cd6c444fec66ae78cdb6",
                "md5": "e8ce5640aa2fd3abf11a526eb3e10144",
                "sha256": "a0b8337dc5e877a165067b0a2746e007382fa13c6ae0648423102d5fa7e170eb"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp313-cp313-macosx_14_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "e8ce5640aa2fd3abf11a526eb3e10144",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.2",
            "size": 339116,
            "upload_time": "2025-08-09T07:25:33",
            "upload_time_iso_8601": "2025-08-09T07:25:33.800946Z",
            "url": "https://files.pythonhosted.org/packages/a0/0e/bdb7bbb488df03829326ac133579e3f46aaaf087cd6c444fec66ae78cdb6/live2d_py-0.5.4-cp313-cp313-macosx_14_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ce95a285e7e387a6bb29d36922d78114bf7d0fb7904241a919f220a86422371f",
                "md5": "5e6dff9ba321c4c3d16f490f1fddee2a",
                "sha256": "4824d3d84d5febb33b2a90b98ed2f7d48bc8bcbd82d0ba5e3aa0b3263f912ea1"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "5e6dff9ba321c4c3d16f490f1fddee2a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.2",
            "size": 257845,
            "upload_time": "2025-08-09T07:26:09",
            "upload_time_iso_8601": "2025-08-09T07:26:09.148349Z",
            "url": "https://files.pythonhosted.org/packages/ce/95/a285e7e387a6bb29d36922d78114bf7d0fb7904241a919f220a86422371f/live2d_py-0.5.4-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "85645a7c73654648247589070a5127622186f7a8f5348c32c464a4a10adef367",
                "md5": "97d28ba164992ba966f0b593c458782a",
                "sha256": "8a883419b7784e374296e5227d61da3c32bf5fdfb4b60326b3ba33c3cab59901"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "97d28ba164992ba966f0b593c458782a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.2",
            "size": 284667,
            "upload_time": "2025-08-09T07:26:38",
            "upload_time_iso_8601": "2025-08-09T07:26:38.051755Z",
            "url": "https://files.pythonhosted.org/packages/85/64/5a7c73654648247589070a5127622186f7a8f5348c32c464a4a10adef367/live2d_py-0.5.4-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "854ec17d221ae252ece161ba3bfc69f721acbc5984e6d4710c0f2c4af9aefa90",
                "md5": "d12cb42b552cf45234c948ad10f23e95",
                "sha256": "902457bb7162a022818d48f36494899fdf6f1c2ba51b93050932fb5e579d8cf8"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "d12cb42b552cf45234c948ad10f23e95",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.2",
            "size": 257843,
            "upload_time": "2025-08-09T07:25:12",
            "upload_time_iso_8601": "2025-08-09T07:25:12.203163Z",
            "url": "https://files.pythonhosted.org/packages/85/4e/c17d221ae252ece161ba3bfc69f721acbc5984e6d4710c0f2c4af9aefa90/live2d_py-0.5.4-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fcc27efbdb5e59005f0a6fa038ae16d8000fa5e2196e2a2e84bd716d4698c740",
                "md5": "021ef08188e0decd67943571222c1cc7",
                "sha256": "8cee2354ee007200753eadfa467ea154aa6b23415c870f65ae8ffd64d6a68a33"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "021ef08188e0decd67943571222c1cc7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.2",
            "size": 284858,
            "upload_time": "2025-08-09T07:24:52",
            "upload_time_iso_8601": "2025-08-09T07:24:52.544444Z",
            "url": "https://files.pythonhosted.org/packages/fc/c2/7efbdb5e59005f0a6fa038ae16d8000fa5e2196e2a2e84bd716d4698c740/live2d_py-0.5.4-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23a00bd1d0f0d6b39662a2c25cdf3d86e2d0eaa5277d3f2265b30472ee5972a6",
                "md5": "4488634599c338589adcd98a5237f5f1",
                "sha256": "e797eeb5632975da34deef29109fa9743ef2c55e935bb2c64a26b3ce17de8f03"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "4488634599c338589adcd98a5237f5f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.2",
            "size": 257904,
            "upload_time": "2025-08-09T07:26:52",
            "upload_time_iso_8601": "2025-08-09T07:26:52.220048Z",
            "url": "https://files.pythonhosted.org/packages/23/a0/0bd1d0f0d6b39662a2c25cdf3d86e2d0eaa5277d3f2265b30472ee5972a6/live2d_py-0.5.4-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2d4050b3d962b4ff477107f3e068b00c484aae3b430ed1e6e9b6e164ae5cd6b3",
                "md5": "6f5380c40f6c928c6efe77070b392cd2",
                "sha256": "d9832498b7446e822aac9b0b3e811f30d998f8de1c6d62e10d9d9ae633b902ea"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6f5380c40f6c928c6efe77070b392cd2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.2",
            "size": 284909,
            "upload_time": "2025-08-09T07:25:06",
            "upload_time_iso_8601": "2025-08-09T07:25:06.941826Z",
            "url": "https://files.pythonhosted.org/packages/2d/40/50b3d962b4ff477107f3e068b00c484aae3b430ed1e6e9b6e164ae5cd6b3/live2d_py-0.5.4-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "572545a207dfef16e655a5638472fe702311d9e55814a524ec4a02d209151219",
                "md5": "ffa3940bfb37ab5418a35f107bf38ce7",
                "sha256": "adf47cf9f9020e7de07c532c5f7fdd102711361204fcbc7af83997a98fc3025a"
            },
            "downloads": -1,
            "filename": "live2d_py-0.5.4.tar.gz",
            "has_sig": false,
            "md5_digest": "ffa3940bfb37ab5418a35f107bf38ce7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.2",
            "size": 5698492,
            "upload_time": "2025-08-09T07:24:50",
            "upload_time_iso_8601": "2025-08-09T07:24:50.360336Z",
            "url": "https://files.pythonhosted.org/packages/57/25/45a207dfef16e655a5638472fe702311d9e55814a524ec4a02d209151219/live2d_py-0.5.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 07:24:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Arkueid",
    "github_project": "live2d-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "live2d-py"
}
        
Elapsed time: 0.72097s