为网页加上Live2D Widget

April 30, 2021 · 技术 · 34次阅读

在网页中添加 Live2D 看板娘。兼容 PJAX,支持无刷新加载。

插件版:
https://paugram.com/coding/add-poster-girl-with-plugin.html

根据开源项目:
https://github.com/stevenjoezhang/live2d-widget
其扩展项目:
https://github.com/fghrsh/live2d_demo

展示:
展示
展示
展示

特性 Feature

在网页中添加 Live2D 看板娘。兼容 PJAX,支持无刷新加载。
Add Live2D widget to web page. Compatible with PJAX.

警告:本项目使用了大量 ES6 语法,不支持 IE 11 等老旧浏览器。
WARNING: This project does not support legacy browsers such as IE 11.

以下为简单使用方法,不建议。

依赖 Dependencies

本插件需要 Font Awesome (v4 或 v5) 图标支持,请确保相关样式表已在页面中加载。以 Font Awesome v4 为例,请在 <head> 中加入:
Font Awesome (v4 or v5) is required for this plugin. Take Font Awesome v4 as an example, please add the following in <head>:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">

否则图标将无法正常显示。(如果网页中已经加载了任何版本的 Font Awesome,就不要重复加载了)

使用 Usage

将这一行代码加入 <head> 或 <body>,即可展现出效果:

<script src="https://cdn.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>

如果网站启用了 PJAX,由于看板娘不必每页刷新,因此要注意将相关脚本放到 PJAX 刷新区域之外。

换句话说,如果你是小白,或者只需要最基础的功能,就只用把这一行代码,连同前面加载 Font Awesome 的一行代码,一起放到 html 的 <head> 中即可。
对于用各种模版引擎(例如 Nunjucks,Jinja 或者 PHP)生成的页面,也要自行修改,方法类似,只是可能略为麻烦。以 Hexo 为例,需要在主题相关的 ejs 或 njk 模版中正确配置路径,才可以加载。

以下为自主搭建配置

1.Using CDN

要自定义有关内容,可以把这个仓库 Fork 一份,然后进行修改。这时,使用方法对应地变为:

<script src="https://cdn.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js"></script>

将此处的 username 替换为你的 GitHub 用户名。为了使 CDN 的内容正常刷新,需要创建新的 git tag 并推送至 GitHub 仓库中,否则此处的 @latest 仍然指向更新前的文件。此外 CDN 本身存在缓存,因此改动可能需要一定的时间生效。

2.Self-host

你也可以直接把这些文件放到服务器上,而不是通过 CDN 加载。

  • 如果你能够通过 ssh 访问你的主机,请把整个仓库克隆到服务器上。执行:

cd /path/to/your/webroot
# Clone this repository
git clone https://github.com/stevenjoezhang/live2d-widget.git

  • 如果你的主机无法用 ssh 连接(例如一般的虚拟主机),请选择 Download ZIP,然后通过 ftp 等方式上传到主机上,再解压到网站的目录下。
  • 如果你是通过 Hexo 等工具部署的静态博客,请在博客源文件(即 source)目录下,执行前述的 git clone 命令。重新部署博客时,相关文件就会自动上传到对应的路径下。为了避免这些文件被 Hexo 插件错误地修改,可能需要设置 skip_render。

这样,整个项目就可以通过你的服务器 IP 或者域名从公网访问了。不妨试试能否正常地通过浏览器打开 autoload.js 和 live2d.min.js 等文件,并确认这些文件的内容是完整和正确的。
一切正常的话,接下来修改一些配置就行了。(需要通过服务器上的文本编辑器修改;你也可以先在本地完成这一步骤,再上传到服务器上)
修改 autoload.js 中的常量 live2d_path 为 live2d-widget 这一目录的 URL。比如说,如果你能够通过:

https://example.com/path/to/live2d-widget/live2d.min.js

访问到 live2d.min.js,那么就把 live2d_path 的值修改为

https://example.com/path/to/live2d-widget/

路径末尾的 / 一定要加上。具体可以参考 autoload.js 内的注释。
完成后,在你要添加看板娘的界面加入

<script src="https://example.com/path/to/live2d-widget/autoload.js"></script>

就可以加载了。

后端 API

介绍

initWidget 方法接受名为 apiPath 和 cdnPath 的参数,两者设置其中一项即可。其中 apiPath 为后端 API 的 URL,可以自行搭建,并增加模型(需要修改的内容比较多,此处不再赘述)。而 cdnPath 则是通过 jsDelivr 这样的 CDN 服务加载资源,更加稳定。

目录结构 Files

  • waifu-tips.js 包含了按钮和对话框的逻辑;
  • waifu-tips.json 中定义了触发条件(selector,CSS 选择器)和触发时显示的文字(text);
  • waifu.css 是看板娘的样式表。

源文件是对 Hexo 的 NexT 主题有效的,为了适用于你自己的网页,可能需要自行修改,或增加新内容。
警告:作者不对包括但不限于 waifu-tips.js 和 waifu-tips.json 文件中的内容负责,请自行确保它们是合适的。

现在使用的

本站目前使用的
基于以下项目略微修改

https://jupiterbjy.github.io/PaulPio_PIXI_Demo/
https://github.com/journey-ad/blog-img/tree/master/live2d/lib
https://nocilol.me/

下面做一些具体记录:

根据这位大佬博客搬迁...

通过简单耗时的网页源代码分析,发现了liv2D的相关github数据库(感谢不是本地储存!谢谢):
https://github.com/journey-ad/blog-img/tree/master/live2d/

通过简单代码分析,找到了这位作者:
https://paugram.com/coding/add-poster-girl-with-plugin.html

仔细研究,发现并不完全相同,还有区别,比如live2D的模板和使用方法。
这位大佬直接引用的代码,联系之前的仓库代码和网页代码详细分析,发现:

出自同一作者,不同的功能?这是相关页面:
https://jupiterbjy.github.io/PaulPio_PIXI_Demo/

重要代码:
<!-- Copyrighted cubism SDK -->

<script src="https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js"></script>
(必要的文件引用)

<script src="https://cdn.jsdelivr.net/gh/dylanNew/live2d/webgl/Live2D/lib/live2d.min.js";></script>
(demo模板文件引用,更改模板的话模板删去)

<!-- Load Pixi (dependency for cubism 2/4 integrated loader) -->
<script src="https://cdn.jsdelivr.net/npm/pixi.js@5.3.6/dist/pixi.min.js"></script>

(必要的文件引用)

<!-- Load cubism 2/4 integrated loader -->
<script src="https://cdn.jsdelivr.net/npm/pixi-live2d-display/dist/index.min.js"></script>

(必要的文件引用)

<!-- Load pio and alternative loader -->
<script src="https://jupiterbjy.github.io/PaulPio_PIXI_Demo/pio.js"></script>

(具体的配置文件)

<script src="https://jupiterbjy.github.io/PaulPio_PIXI_Demo/pio_sdk4.js"></script>

(具体的配置文件,这个很重要)

<link href="https://jupiterbjy.github.io/PaulPio_PIXI_Demo/pio.css" rel='stylesheet' type='text/css'/>

(具体的配置文件)

<script src="https://jupiterbjy.github.io/PaulPio_PIXI_Demo/MainScript.js"></script>

(具体的配置文件,控制一些东西)

以上代码直接放入网站文件里就行。

然后对照大佬的代码:

<!-- Copyrighted cubism SDK -->
<script src="https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js";></script>
<!-- Load Pixi (dependency for cubism 2/4 integrated loader) -->
<script src="https://cdn.jsdelivr.net/npm/pixi.js@5.3.6/dist/pixi.min.js";></script>
<!-- Load cubism 4 integrated loader -->
<script src="https://cdn.jsdelivr.net/npm/pixi-live2d-display@0.3.1/dist/cubism4.min.js";></script>

<!-- Load pio and alternative loader -->
<link href="https://cdn.jsdelivr.net/gh/journey-ad/blog-img/live2d/lib/pio.css"; rel="stylesheet" type="text/css"/>
<script src="https://cdn.jsdelivr.net/gh/journey-ad/blog-img/live2d/lib/pio.js";></script>
<script src="https://cdn.jsdelivr.net/gh/journey-ad/blog-img/live2d/lib/pio_sdk4.js";></script>
<script src="https://cdn.jsdelivr.net/gh/journey-ad/blog-img@f9f8041/live2d/lib/load.js";></script>(这个文件就是MainScript.js,包含了模板文件地址,大佬的这个文件有小小的问题,引流...

最后版本

<!-- Copyrighted cubism SDK -->
<script src="https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js";></script>
<!-- Load Pixi (dependency for cubism 2/4 integrated loader) -->
<script src="https://cdn.jsdelivr.net/npm/pixi.js@5.3.6/dist/pixi.min.js";></script>
<!-- Load cubism 4 integrated loader -->
<script src="https://cdn.jsdelivr.net/npm/pixi-live2d-display@0.3.1/dist/cubism4.min.js";></script>

<!-- Load pio and alternative loader -->
<link href="live2d/lib/pio.css" rel="stylesheet" type="text/css"/>
<script src="live2d/lib/pio.js"></script>
<script src="live2d/lib/pio_sdk4.js"></script>
<script src="live2d/lib/load.js"></script>

然后,下载大佬的仓库,模板搞定!修改一些相关信息,搞定。

**目前不兼容360浏览器,包含IE内核的菜菜浏览器...
安装个谷歌浏览器,火狐浏览器吧!**

模板来自:
https://www.bilibili.com/video/BV1FZ4y1F7HH

喝杯水

原创转载

最后编辑于1个月前

添加新评论

  1. 2021-05-02 19:05

    你网站的live2d真好看

    回复