
在官方framework里面有一个motion3.json的parse方法,他会转换json中的动作,给到group动作组,提供后续触碰支持,在1.7.3版本中已经实际安装,此版本的debug版已经上传至github,debug版本安装后将会加载并反馈点击模型后触发的提示,如果可以,请协助我安装debug版本,并在留言处留下你的网址。
注意:debug版本会扰乱控制台内容,经常输出很多字符,请慎重安装。
https://github.com/jiangweifang/wp-live2d/releases/tag/1.7.3_dev
- lappmodel.ts 的 375 行 loadCubismMotion 中需要读取 model3.json含有Motions的内容

"Motions" : {
"动作": [
{
"File": "motions/动作组_1.motion3.json"
},
{
"File": "motions/动作组_2.motion3.json"
},
{
"File": "motions/动作组_3.motion3.json"
}
]
}
当前问题:
1. moc3模型制作结果由于v3版本生成和v4版本生成后结果不同,导致model3.json中对于Motions的定义有一定差异。
2. 没有动作组被触发,这个需要设置,我会在后台增加设置来配置动作触发的条件。
3. 触发动作可以在model3.json中配置好后直接使用
model3.json配置成功的例子“Hiyori”:
{
"Version": 3,
"FileReferences": {
"Moc": "Hiyori.moc3",
"Textures": [
"Hiyori.2048/texture_00.png",
"Hiyori.2048/texture_01.png"
],
"Physics": "Hiyori.physics3.json",
"Pose": "Hiyori.pose3.json",
"UserData": "Hiyori.userdata3.json",
"Motions": {
"Idle": [
{
"File": "motions/Hiyori_m01.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m02.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m03.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m05.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m06.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m07.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m08.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m09.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
},
{
"File": "motions/Hiyori_m10.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
}
],
"TapBody": [
{
"File": "motions/Hiyori_m04.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5
}
]
}
},
"Groups": [
{
"Target": "Parameter",
"Name": "LipSync",
"Ids": [
"ParamMouthOpenY"
]
},
{
"Target": "Parameter",
"Name": "EyeBlink",
"Ids": [
"ParamEyeLOpen",
"ParamEyeROpen"
]
}
],
"HitAreas": [
{
"Id": "HitArea",
"Name": "Body"
}
]
}
例子中“动作”设置为“Idle”为待机动作,模型将会各段时间随机选择“Idle”组中的动作触发,“TapBody”为触发身体触碰时的动作。
在ExStudio中可以看到 hemin_3 有TouchBody、TouchHead、TouchSpecial网格,他们代表触碰这3个位置可以有指定动作触发,这种网格只可以在Cubism Editor工具中进行修改和创建。

鉴于以上情景,我将会在代码中增加读取motions的方法,提供给没有按照Hiyori 配置的model3.json,但是相对的,用户需要在后台对触发的位置进行定义.