模型加载与绘制 - Arkueid/live2d-py GitHub Wiki
1. 导入库
导入适用于 3.0 版本的 live2d 库
import live2d.v3 as live2d
导入适用于 2.0 版本的 live2d 库
import live2d.v2 as live2d
2. 初始化
在加载和使用 live2d 模型前,应初始化 live2d 模块
live2d.init()
3. 启用 OpenGL
(3.0及以上版本)在对应的窗口库中设置 OpenGL 上下文后,初始化 Glew 和 OpenGL 绘制选项。不同的窗口库方法不一样,以 Pygame 为例:
display = (800,600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
# live2d.v3 还需要调用如下函数
live2d.glInit()
4. 加载模型
在上述步骤全部完成后,方可创建 LAppModel
并加载本地模型。路径如下:
Resources\Haru
|-- Haru.2048
|-- Haru.cdi3.json
|-- Haru.moc3
|-- Haru.model3.json
|-- Haru.model3.json.bak
|-- Haru.physics3.json
|-- Haru.pose3.json
|-- Haru.userdata3.json
|-- expressions
|-- motions
`-- sounds
model = live2d.LAppModel()
model.LoadModelJson("./Resources/Haru/Haru.model3.json")
5. 设置宽高
窗口大小变化时调用 LAppModel
的 Resize
方法。初次加载时,即使没有改变大小也应设置一次大小,否则模型显示比例异常、点击检测错位。
model.Resize(800, 600)
6. 绘制图像
每帧绘制图像时,使用 live2d.clearBuffer
,清空画布(可用其他 OpenGL 函数替代)。重置 live2d 模型的各个参数LAppModel.Update
,再调用 LAppModel.Draw
进行绘制。在使用具体的窗口库时,可能还需要调用缓冲刷新函数。
若要对模型动作参数进行控制,则应在 Update
和 Draw
之间调用 SetParameterValue
/AddParameterValue
。
live2d.clearBuffer()
# 初始化呼吸、动作、姿势、表情、各部分透明度等必要的参数值(如果对应的功能开启
model.Update()
# 设置面部朝向偏右15度
# 直接赋值
model.SetParameterValue("ParamAngleX", 15, 1.)
# 在原值基础上添加
# model.AddParameterValue("ParamAngleX", 15)
# 执行绘制
model.Draw()
7. 释放内存
不再使用 live2d 模块,则应调用 live2d.dispose
释放内存。
del model
live2d.dispose()
8. 开关选项
# 以下选项,默认均为开启状态
# 日志开关
live2d.setLogEnable(False)
# 自动呼吸开关
model.SetAutoBreathEnable(False)
# 自动眨眼开关
model.SetAutoBlinkEnable(False)