xiazeyu / live2d-widget.js

Live2D on webpages with out-of-the-box experience.
https://l2dwidget.js.org/
GNU Affero General Public License v3.0
1.55k stars 258 forks source link

修复加载绝对路径问题 #20

Closed 52cik closed 6 years ago

52cik commented 6 years ago

Fix # , Re #.

Changes proposed in this pr:

此pr的改变:

由于 model 可能是动态生成的,而非和资源在同一目录下。 所以需要加载绝对路径的资源,之前都默认拼接前缀,导致地址错误。

Change the [ ] into [x] to show your acceptance. 将 [ ] 变为 [x] 来表示你接受了这些问题。

@EYHN @xiazeyu

xiazeyu commented 6 years ago

@52cik emmmm... 并不是很明白您的意思.. 我们在jsonPath中指定模型的.model.json 然后根据.model.json中的具体字段来确定moc、mtn、和相关材质的位置 Ex:

{"type":"Live2D Model Setting","name":"wanko","model":"moc/wanko.moc","textures":["moc/wanko.1024/texture_00.png"],"hit_areas":[{"name":"body","id":"D_REF.PT_SOBA_01"}],"layout":{"center_x":0,"y":1.8,"width":2.9},"motions":{"idle":[{"file":"mtn/idle_01.mtn","fade_in":500,"fade_out":200},{"file":"mtn/idle_02.mtn","fade_in":500,"fade_out":200},{"file":"mtn/idle_03.mtn","fade_in":500,"fade_out":200},{"file":"mtn/idle_04.mtn","fade_in":500,"fade_out":200}],"shake":[{"file":"mtn/shake_01.mtn","fade_in":500,"fade_out":0},{"file":"mtn/shake_02.mtn","fade_in":500,"fade_out":0}],"tap_body":[{"file":"mtn/touch_01.mtn","fade_in":500,"fade_out":0},{"file":"mtn/touch_02.mtn","fade_in":500,"fade_out":0},{"file":"mtn/touch_03.mtn","fade_in":500,"fade_out":0}]}}

顺便能否不要执行lint, diff太混乱了..现在在dev分支开发的.

52cik commented 6 years ago

http://www.52cik.com/bilibili-haruna/ 随机换装功能,你看看应该就懂了。 就是所有资源都用绝对地址的时候会导致错误。 如果 model.json 跟资源不同域名,不同协议,不同目录,自动获取的资源地址是不对的。

我这边编辑器好像默认 eslint 掉了,所以代码确实有点乱,,抱歉。

xiazeyu commented 6 years ago

@52cik

emmmmm https://github.com/xiazeyu/live2d-widget-models/blob/master/packages/live2d-widget-model-wanko/assets/wanko.model.json .model.json应该是有官方标准的... 理论上moc文件就是模型文件,而png的texture素材只要和moc能匹配上就可以随意换用 换装...官方的做法是加载不同的model.json,其中的model标记的是moc文件位置(后来journey-ad为了使用方便才加的https加载功能) https://github.com/journey-ad/live2d_src/commit/6d06b8ee781b29139aa61cf130d046d8278d4d3e

我看你十分大佬的把一堆的文件获取都重写了一遍....十分佩服 因为最近也在dev分支上重写,等写到相关部分时会参考您的代码。 而且等到4.0版本时unload、load方法可能可以简化您的随机换装功能。

xiazeyu commented 6 years ago

Migrated into https://github.com/xiazeyu/live2d-widget.js/pull/25/