写在最前

最早的时候看别人的博客很多都有一个可爱的看板娘,然后就找了教程给自己也整了一个。因为找到的教程都是稂莠不齐的,原作者自己说的也略显含糊(其实是我自己看不懂)。总之秉承着一如既往的小白风格。把网上的教程做个整合。

效果

正式步骤

1.首先克隆仓库:

https://github.com/stevenjoezhang/live2d-widget.git

2.把下载的zip解压放到主题的assets\media,重命名为live2d-widget

3.找到路径assets\media\live2d-widget\autoload.js,打开autoload.js,修改内容:

- const live2d_path = "https://cdn.jsdelivr.net/gh/stevenjoezhang/live2d-widget/";
+ const live2d_path = "/media/live2d-widget/";

此处引用一下参考教程原话:autoload.js中的注释的绝对地址指的是,将资源打包放到theme/next/source中后,以/theme/next/source为根目录(/)的绝对路径。

4.引入Font Awesome

将以下代码粘贴到网页HTML代码的 部分.

<link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

5.在footer引入JS

<script defer src="/media/live2d-widget/autoload.js"></script>

完成

本地化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
if (screen.width >= 768) {
Promise.all([
loadExternalResource(live2d_path + "waifu.css", "css"),
loadExternalResource(live2d_path + "live2d.min.js", "js"),
loadExternalResource(live2d_path + "waifu-tips.js", "js")
]).then(() => {
initWidget({
waifuPath: live2d_path + "waifu-tips.json",
- //apiPath: "https://live2d.fghrsh.net/api/",
- cdnPath: "https://cdn.jsdelivr.net/gh/fghrsh/live2d_api/"
+ apiPath: "https://live2d.fghrsh.net/api/",
+ //cdnPath: "https://cdn.jsdelivr.net/gh/fghrsh/live2d_api/"
});
});
}

这个apiPath就是live2d_widget的原作者@fghrsh搭建的。但是这个API纯粹是用爱发电的产物,随时可能到期,虽然已经喊了三年了。。。详见Live2D 看板娘 API 迁移公告,所以最好还是采用自建api的方式。

模型配置方案更改

上面已经说到过,张书樵大神的魔改方案其实已经实现了本地化API,只是因为模型配置路径不同才导致无法换装的。所以其实只要注意配置模型时,保证每个可以展示的模型都有相应的index.json并且在model_list.json里有相应的模型路径就可以了。

这里读者可以直接使用我配置好的本地化项目的路径:

修改张书樵大神的项目内的~\live2d-widget\autoload.js,修改cdnPath

  // 加载 waifu.css live2d.min.js waifu-tips.js
if (screen.width >= 768) {
Promise.all([
loadExternalResource(live2d_path + "waifu.css", "css"),
loadExternalResource(live2d_path + "live2d.min.js", "js"),
loadExternalResource(live2d_path + "waifu-tips.js", "js")
]).then(() => {
initWidget({
waifuPath: live2d_path + "waifu-tips.json",
//apiPath: "https://live2d.fghrsh.net/api/",
- cdnPath: "https://cdn.jsdelivr.net/gh/fghrsh/live2d_api/"
+ cdnPath: "https://npm.elemecdn.com/akilar-live2dapi@latest/"
//因为jsdelivr不支持50MB以上的包的加速,可能报403错误,所以用的vercel的CDN服务。
//可以考虑clone我配置好的live2d_api仓库自己部署到其他更快的cdn服务上。
});
});
}

除了让原有模型换装可用化以为,还顺便添加了亚丝娜、和泉纱雾,血小板、土间埋(干物妹小埋)和香风智乃的模型哦。

最新文章

  1. Redis数据类型,以及应用场合
  2. IE9控件安装方法
  3. 概率 light oj 1248
  4. PHP访问数据库
  5. 转载 jquery $(document).ready() 与window.onload的区别
  6. ubuntu中flash的中文乱码解决方法
  7. sphinx,github和readthedocs配合使用
  8. 手机电话号码吉凶查询原理及ASP算法源码 转
  9. python实现博客自动刷点击脚本
  10. [Java算法分析与设计]--单向链表(List)的实现和应用
  11. Python操作Redis及连接方式
  12. Django ORM存储datetime 时间误差8小时问题
  13. 尝鲜svnup
  14. Python3 系列之 环境包管理神器 pipenv
  15. Windows 10 系统,配置jdk系统环境变量
  16. BSGS算法及其扩展
  17. typedef你真的理解么?
  18. MT【202】内准圆
  19. Go第六篇之结构体剖析
  20. JMS异步消息机制

热门文章

  1. 【转载】浅谈大规模k8s集群关于events的那些坑
  2. RPA教程
  3. python小题目练习(十一)
  4. 如何通过WinDbg获取方法参数值
  5. Java判断字符串是否为金额
  6. Elasticsearch面试题
  7. 毫秒值的概念和作用 --Date类的构造方法和成员方法
  8. 使用 Abp.Zero 搭建第三方登录模块(三):网页端开发
  9. HTML基础标签学习
  10. 当我们进行性能优化,我们在优化什么(LightHouse优化实操)