Open Nick-Hopps opened 4 years ago
顺便请问一下,我设置了 "hit_area",但是无论用 "tap_head" 还是 "flick_head" 都没用,点击头部只会切换表情。
我的 motion 设置如下:
{
"motions":
{
"idle": [
{"file": "mtn/idle_01.mtn", "fade_in": 2000, "fade_out": 2000},
{"file": "mtn/idle_02.mtn", "fade_in": 2000, "fade_out": 2000},
{"file": "mtn/idle_03.mtn", "fade_in": 2000, "fade_out": 2000},
{"file": "mtn/idle_04.mtn", "fade_in": 2000, "fade_out": 2000}
],
"tap_body": [
{"file": "mtn/tap_body.mtn"}
],
"flick_head": [
{ "file":"mtn/flick_head.mtn"}
]
}
}
看了一天的代码,终于找到问题了。
首先是第一个问题:每次刷新页面只会随机加载一个,然后再也不会随机到另外三个动作,而是不断重复加载到的这个动作。
解决方法:
修改 cModel.js
的第 369
行开始的 if
语句:
if (this.motions[name] == null)
{
this.loadMotion(name, this.modelHomeDir + motionName, function(mtn) {
motion = mtn;
thisRef.setFadeInFadeOut(name, no, priority, motion);
});
}
else
{
motion = this.motions[name];
thisRef.setFadeInFadeOut(name, no, priority, motion);
}
改为
if (this.motions[motionName] == null)
{
this.loadMotion(motionName, this.modelHomeDir + motionName, function(mtn) {
motion = mtn;
thisRef.setFadeInFadeOut(name, no, priority, motion);
});
}
else
{
motion = this.motions[motionName];
thisRef.setFadeInFadeOut(name, no, priority, motion);
}
第二个问题:设置 "tap_head" 或 "flick_head" 都没用,点击头部只会切换表情。
解决方法:
修改 cManager
的第 89
行:
this.models[i].setRandomExpression(); // 把这个注释掉,改成:
this.models[i].startRandomMotion(cDefine.MOTION_GROUP_FLICK_HEAD,
cDefine.PRIORITY_NORMAL);
@xiazeyu @EYHN 两位大佬方便的话给我这个 issue 标记一下吧,说不定别人也有类似的问题
你好,我也遇到了和你一样的问题,然后按你的方式改了node_modules\live2d-widget\src里的cModel.js和cManager.js里的部分,可惜我这个问题还是没有修复好,还是只能一次刷新出现一种循环待机动作和一种点击动作
你好,我也遇到了和你一样的问题,然后按你的方式改了node_modules\live2d-widget\src里的cModel.js和cManager.js里的部分,可惜我这个问题还是没有修复好,还是只能一次刷新出现一种循环待机动作和一种点击动作
修改之后要重新编译,我没说而已啊
具体是先执行 npm run inst:dev
再 npm run build:prod
,之后再 hexo g -f
就可以了
多谢,已经可以正常展示不同的动作,帮大忙了
Describe the bug
我在 "idle" 中设置了4个动作,使用 Live2D 的 SampleApp 加载时,模型会不断随机这 4 个动作。但是当我用 hexo-helper-live2d 加载到博客中时,每次刷新页面只会随机加载一个,然后再也不会随机到另外三个动作,而是不断重复加载到的这个动作。
@EYHN @xiazeyu