live2d C++ sdk 分析

从网上收集的live2d模型

可以自己添加新的表情/姿态,不过只能是静态(虽然可以用渐变过渡实现动态效果)

前提要下载官方live2d应用(免费版即可)

双击moc3,会在Cubism Viewer中打开(这是live2d应用附带的)。

工具函数

首先会加载各种配置文件如model3.json,以字节流的方式读取(fstream)

读取过程中若报错 Stat failed. errno:2 path,很有可能是路径中出现了中文。因为官方用的stat函数判断文件合法性,stat函数貌似无法处理中文名

MatrixManager::ScreenToScene(float *x, float *y)

计算鼠标所在位置坐标

实用函数

StartMotion( group, no, priority,s_call, f_call)

group -- 动作组名称

no -- 动作序号,即数组下标0、1、2、...

priority -- 动作优先级

选取group组中的第no号动作播放

什么是动作组?如图。优先级分4个级别,如图。

StartRandomMotion( group, priority, s_call, f_call)

播放一个动作组内的随机动作

SetExpression( expressionID )

expressionID -- 表情ID,即name

播放表情

SetDragging( x, y)

传入鼠标位置

令模型看向鼠标

相关推荐
e***98575 分钟前
C++跨平台开发的5大核心挑战与突破
开发语言·c++
橘颂TA10 分钟前
【剑斩OFFER】算法的暴力美学——leetCode 662 题:二叉树最大宽度
c++·算法·结构与算法
MSTcheng.12 分钟前
【C++】开放定址法实现哈希表!
c++·缓存·stl·散列表·哈希
玖釉-15 分钟前
[Vulkan 学习之路] 20 - 顶点缓冲区:创建顶点缓冲区 (Vertex Buffer Creation)
c++·windows·图形渲染
yi.Ist19 分钟前
博弈论 Nim游戏
c++·学习·算法·游戏·博弈论
yuanmenghao21 分钟前
车载Linux 系统问题定位方法论与实战系列 - 系统 reset / reboot 问题定位
linux·服务器·数据结构·c++·自动驾驶
楼田莉子23 分钟前
C++高级数据结构——LRU Cache
数据结构·c++·后端·学习
DYS_房东的猫24 分钟前
macOS 上 C++ 开发完整指南(2026 年版)
开发语言·c++·macos
啊吧怪不啊吧25 分钟前
C++之模版详解(进阶)
大数据·开发语言·c++
小灰灰搞电子26 分钟前
C++ 多线程详解
c++·多线程