Skip to content

Releases: Arkueid/live2d-py

v0.2.4

11 Oct 15:17
Compare
Choose a tag to compare

同步更新 PyPI

添加 Part 透明度控制
class LAppModel:
    ...

    def GetPartCount() -> int:
        pass

    def GetPartId(index: int) -> str:
        pass

    def GetPartIds() -> list[str]:
        pass

    def SetPartOpacity(index: int, opacity: float) -> None:
        pass

用例:

log.Debug(f"Part Count: {model.GetPartCount()}")
partIds = model.GetPartIds()
log.Debug(f"Part Ids: {partIds}")
model.SetPartOpacity(partIds.index("PartHairBack"), 0.5)

v0.2.3

25 Sep 10:59
Compare
Choose a tag to compare

2024/9/24

  • 更正HitTest的参数类型
  • 移除动态库内全局动作回调函数
  • 添加live2d.clearBuffer的可选背景色参数 by @96bearli
  • 修正live2d.utils.log.logEnable与动态库的状态同步
  • 修复简易面捕的抖动问题 by @96bearli

v0.2.2-alpha

20 Aug 03:40
Compare
Choose a tag to compare

添加:

  • 工作流:PyPi发布

三种安装方式:

pip install live2d-py -v
pip install live2d_py-0.2.2.tar.gz -v
pip install live2d_py-0.2.2-cp310-cp310-win32.whl

v0.2.1-alpha

19 Aug 13:33
Compare
Choose a tag to compare

添加:

  • 日志打印、口型同步工具(需要numpy):live2d.utils.loglive2d.utils.lipsync
  • 修改接口:CalcParameters => UpdateUpdate => Draw
  • 标准参数:live2d.v3.params.StandardParams

移除:

  • 内置口型同步功能:LAppModel.SetLipSyncEnableLAppModel.SetLipSyncN

其他:

  • 将v3版本的更新同步到v2上

新包结构如下:

package\live2d
|-- utils
|   |
|   |-- lipsync.py  # 口型同步工具
|   `-- log.py      # 日志工具
`-- v3
    |-- __init__.py
    |-- live2d.pyd  # 动态库/封装c++函数
    |-- live2d.pyi  # 接口&文档
    `-- params.py   # live2d 标准参数id

绘制步骤的接口名更改如下:

live2d.clearBuffer()

# 初始化呼吸、动作、姿势、表情、各部分透明度等必要的参数值(如果对应的功能开启
model.Update() # CalcParameters() 更改为 Update()

# 在初始化的基础上修改参数(具体用法参考 live2d.pyi 文件
# 直接赋值
model.SetParameterValue("ParamAngleX", 15, 1.)
# 在原值基础上添加
model.AddParameterValue("ParamAngleX", 15)

# 执行绘制
model.Draw() # 原来的 Update() 更改为 Draw()

口型同步用法:

创建 wavHandler 对象并设置口型同步幅度 lipSyncN

from live2d.utils.lipsync import WavHandler
wavHandler = WavHandler()
lipSyncN = 3

在播放动作的同时,播放音频并进行口型同步

def start_callback(group, no):
    # 播放音频
    pygame.mixer.music.load("audio1.wav")
    pygame.mixer.music.play()
    # 处理口型同步
    wavHandler.Start("audio1.wav")

model.StartMotion("Speak", 0, live2d.MotionPriority.FORCE.value, start_callback)

将 wav 响度同步到 ParamMouthOpenY

if wavHandler.Update():  # 获取 wav 的下一帧片段,并返回当前音频是否已结束
    model.AddParameterValue("ParamMouthOpenY", wavHandler.GetRms() * lipSyncN)

v0.2.0-alpha

17 Aug 10:35
c9fc129
Compare
Choose a tag to compare

添加:

  • 口型同步、自动呼吸、自动眨眼开关
  • 动作参数控制,LAppModel.SetParameterValueLAppModel.AddParameterValue
  • 简易面部动捕示例

修复:

  • v3 版本播放动作时没有对应的动作文件导致崩溃

可用参数见 Live2D 官方文档:https://docs.live2d.com/en/cubism-editor-manual/standard-parameter-list/

v0.1.1-alpha

10 Jun 09:33
Compare
Choose a tag to compare

添加:

  • live2d-py:
    • 动作开始播放回调函数
  • live2d-desktop:
    • 播放语音
    • 显示文本

修复:

  • live2d-py:
    • 调用回调函数前使用GIL
    • Windows下释放live2d模型内存导致崩溃

v0.1.0-alpha

05 Jun 13:32
Compare
Choose a tag to compare

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

功能:

  • 加载模型
  • 鼠标点击触发动作
  • 鼠标拖拽视线

安装:pip install live2d_py-0.1.tar.gz