更换Live2D模型具体步骤

(具体情况有差异,文章仅供思路参考)

项目介绍

我的后端来自fay数字人,https://gitee.com/xszyou/fay

前端来自https://gitee.com/garveyer/mate-human,有自带的数字人形象,但是本篇文章重点讲如何替换成其他Live2D形象

我的后端来自fay数字人,所以对Live2D文件格式有严格要求。下面图片是readme内容,因此我的文件必须按照目录结构实例存放。

前期准备

首先在mate-human\CubismSdkForWeb-5-r.4\Samples\Resources目录下新建文件夹MyModel,格式要求如图:

在expressions文件夹里面,修改文件名字为F01,F02.....这是因为后端固定只识别 F01、F02、F03、F04 这几个名字去调用表情,(从mate-human的Live2D 模型制作外包规范md中得知的),所以需要根据本项目更改这些文件名字。

与此同时,需要更改MyModel.model3.json中的映射文件,原本是没有改expressions里面的文件名字,如下图:

改后如图:

修改模型路径

找到lappdefine.ts(一般会在src下面)这个文件包含Live2D最重要的信息,比如引用的模型名称

复制代码
export const ModelDir: string[] = [
  'Haru'
];

模型面板背景

复制代码
export const BackImageName = 'nokia_reception_desk.png';

刚好我来介绍一下我的项目里面src都会包含哪些文件

javascript 复制代码
TypeScript
└── Demo
    └── src/
        ├─ lappdefine.ts          # 【文件1:改模型目录路径】
        ├─ live2d-action-map.ts   # 【文件2:动作&表情映射表】
        ├─ lapplive2dmanager.ts   # Live2D模型加载核心管理器
        ├─ fayclient.ts           # 和Fay后端WebSocket通信
        ├─ lipsync.ts             # 口型同步核心文件
        └─ main.ts                # 程序入口

动作映射

这一部分最为复杂,所以我先尝试着将所有动作表清空,如图所示目录

将这个文件里面的代码修改为这个:

javascript 复制代码
{
	"Version": 3,
	"FileReferences": {
		"Moc": "MyModel.moc3",
		"Textures": [
			"MyModel.2048/texture_00.png"
		],
		"Physics": "MyModel.physics3.json",
		"DisplayInfo": "MyModel.cdi3.json",
		"Expressions": [],
		"Motions": {
			
		}
	},
	"Groups": [
		{
			"Target": "Parameter",
			"Name": "EyeBlink",
			"Ids": ["ParamEyeLOpen","ParamEyeROpen"]
		},
		{
			"Target": "Parameter",
			"Name": "LipSync",
			"Ids": ["ParamMouthOpenY"]
		}
	],
	"HitAreas": []
}

可以运行显示出来人物形象,但是完全没有相关动作映射

我们一步步引入动作:

(这一块需要一个动作一个动作引入,否则人物显示不出来也找不到问题出在哪里)

在下面这个文件中的"Expressions": \[\]引入

之后要在映射表里添加映射

补充说明:smile,warm,neutral都是后端的部分,用于连接前后端内容,在后端项目fay/config里面,是一个excle表格

然后查看前端页面有没有人物形象

成功出现抱猫咪的剪纸人。

总结

1.Live2D 模型接入时:

先清空所有额外表情动作,只保留模型本体(moc3、贴图、物理文件),人物显示无报错后,再逐个追加表情、动作,出现报错能瞬间定位问题来源

2.关于 <!DOCTYPE> JSON 报错

只要报这个错,100% 是 SDK 请求的资源文件 404:要么路径写错、要么文件不存在、要么文件本身损坏非法,优先排查文件有效性,再排查路径。

以上就是实现思路,感谢观看。

相关推荐
明志数科14 分钟前
自主探索范式下机器人示教数据的工程定位:少量示范为何对质量更敏感
人工智能·机器学习·机器人
Maynor99625 分钟前
WorkBuddy 一键接通 gpt-6.1-sol:MomoAI / TryAllAPI 把最新模型接到桌面
人工智能·gpt·ai·大模型·编程工具
火山引擎开发者社区29 分钟前
问得出、搜得准、信得过:ContextSearch 重构销售检索体验
人工智能
Raymond168842 分钟前
AI配音工具长文本合成架构技术解析:全局音色锚定与声学状态跟踪
人工智能·架构·实时互动·视觉检测·音视频·语音识别
Codiggerworld1 小时前
从“装一套协议”到“扔进终端”:MCP 与 CLI 的 Agent 工具层之争
人工智能·程序人生·ai编程
ViperL11 小时前
[智能计算]AutoDiffusion-基于进化NAS的扩散模型
人工智能·深度学习·计算机视觉
FITA阿泽要努力1 小时前
用 Hooks 给 Claude Code 加规矩
人工智能·agent
摩尔元数2 小时前
制造业AI落地难?摩尔元数用智能体破局
人工智能
Data-Miner2 小时前
人工智能怎么做数据分析?从准备到出报告的实操指南
人工智能·数据挖掘·数据分析
数字会议深科技2 小时前
会议方案设计应如何融入 AI 和物联网等领先会议技术
人工智能·物联网·会议解决方案·会议设计方案