Live2d Widget
写在最前
最早的时候看别人的博客很多都有一个可爱的看板娘,然后就找了教程给自己也整了一个。因为找到的教程都是稂莠不齐的,原作者自己说的也略显含糊(其实是我自己看不懂)。总之秉承着一如既往的小白风格。把网上的教程做个整合。
Hexo插件版看板娘(不能换装)
首先是博客自带的看板娘,这孩子不会说话也不能换装,只会跟着你的鼠标晃动脑袋,不过有几款超可爱。可以在这里查看部分模型的预览图:模型预览
安装
1.在Hexo根目录下打开终端,输入以下指令安装必要插件
npm install --save hexo-helper-live2d |
2.打开站点配置文件myblog\config.yml
搜索live2d,按照如下注释内容指示进行操作。
如果没有搜到live2d的配置项,就直接把以下内容复制到最底部。
# Live2D |
3.完成后保存修改,在Hexo根目录下运行
hexo clean |
之所以必须要使用hexo clean是因为我们需要清空缓存重新生成静态页面,不然看板娘没被加入生成的静态页面里,是不会出现的。
更换看板娘
1.同样是在Hexo根目录下,打开终端,选择想要的看板娘进行安装,例如我这里用到的是 live2d-widget-model-koharu
,一个Q版小正太。其他的模型也可以在模型预览里查看以供选择。
2.输入指令
npm install --save live2d-widget-model-koharu |
3.然后在站点配置文件myblog\_config.yml
里找到model项修改为期望的模型。
model: |
4.之后按部就班的运行
hexo clean |
就能在localhost:4000上查看效果了。
卸载看板娘
卸载插件和卸载模型的指令都是通过npm
进行操作的。在博客根目录打开终端,输入:
npm uninstall hexo-helper-live2d #卸载看板娘插件 |
大神魔改看板娘(会说话,能换装)
1.在myblog\themes\butterfly\source\
目录下打开终端,输入
git clone https://github.com/stevenjoezhang/live2d-widget.git live2d-widget |
2.找到路径myblog\themes\butterfly\source\live2d-widget\autoload.js,打开autoload.js,修改内容:
- const live2d_path = "https://cdn.jsdelivr.net/gh/stevenjoezhang/live2d-widget/"; |
3.在Butterfly的主题配置文件myblog_config.butterfly.yml中,
butterfly主题其实自带fontawesome依赖,无需引入!
# Inject |
4.保存所有文件的修改,然后照例执行
hexo clean |
就能在localhost:4000看到预览了。
5.自定义修改
有一定前端基础的小伙伴可以通过修改myblog\themes\butterfly\source\live2d-widget路径下的样式资源文件:
waifu-tips.js:包含了按钮和对话框的逻辑
waifu-tips.json :定义了触发条件(selector,CSS 选择器)和触发时显示的文字(text);
waifu.css:看板娘的样式表。可以对看板娘的位置布局等做自定义修改。
bug归纳
一开始博主通过在gulpfile.js里添加屏蔽配置,让gulp不要压缩看板娘的静态资源,但是似乎是因为pwa的缘故,在本地预览重新出现的看板娘在部署到网页以后依然不出现。
解决方案:
1.直接把看板娘提取出来作为单独的项目,然后借助jsdelivr引用相应的静态资源。live2d-widget文件夹不放在博客的source目录中,而是存在独立的github仓库里。这样gulp怎么也压缩不到。而且得益于jsdelivr,看板娘的加载速度也有所提高。
2.配置方法是将live2d-widget项目fork到自己的仓库(用原项目也可以,但是那样不方便更改样式啊),然后修改autoload.js里的路径为你自己的仓库名。
- const live2d_path = "https://cdn.jsdelivr.net/gh/stevenjoezhang/live2d-widget/";
+ const live2d_path = "https://cdn.jsdelivr.net/gh/YourGithubName/live2d-widget/";3.在主题配置项里也可以使用https://cdn.jsdelivr.net/gh/YourGithubName/live2d-widget/autoload.js来引入。
本地化API配置
有读者反映使用张书樵大神的魔改方案时,
Pio酱``和
Tia酱的模型不能像在其他网站看到的那样可以换装。这里主要是因为张书樵大神的魔改方案使用的CDN路径是通过接入的
live2d_api仓库的
jedelivrCDN链接,根据该项目的
model_list.json和指向的
model文件夹内的模型的
index.json来确定模型资源。而
Pio酱和
Tia酱的模型装配是配合有后端服务器的API装配方式,依赖于后端生成的
textures.cache```来获取模型资源。解决方案是将模型装配模式由单模型 多组皮肤转换为同分组 多个模型。
1.懒人配置方案:修改张书樵大神的项目内的~\live2d-widget\autoload.js,将模型资源由cdnPath改为apiPath。
// 加载 waifu.css live2d.min.js waifu-tips.js |
2.模型配置方案更改
上面已经说到过,张书樵大神的魔改方案其实已经实现了本地化API
,只是因为模型配置路径不同才导致无法换装的。所以其实只要注意配置模型时,保证每个可以展示的模型都有相应的index.json
并且在model_list.json
里有相应的模型路径就可以了。
这里可以比对参考我改好的路径项目和原项目的区别
这里读者可以直接使用我配置好的本地化项目的路径:
修改张书樵大神的项目内的~\live2d-widget\autoload.js,
修改cdnPath
// 加载 waifu.css live2d.min.js waifu-tips.js |
除了让原有模型换装可用化以为,还顺便添加了亚丝娜、和泉纱雾,血小板、土间埋(干物妹小埋)和香风智乃的模型哦。
Use this card to join the king's Empire and participate in a pleasant discussion together .
Welcome to КИНГВДИ's king's Empire,wish you a nice day .