Hexo主题美化 | 配置看板娘
安装插件与模型配置
前言:这是一篇基于hexo架构和的配置,主要使用了live2d插件实现看板娘功能,最终效果和左下角类似(左下角为进阶效果,进阶教程见文末链接)
安装live2d插件
在你博客的根目录打开git bash或cmd,输入以下指令以安装插件
1  | npm install --save hexo-helper-live2d  | 
选择模型并下载
1  | npm install --save live2d-widget-model-z16  | 
其中packagename就是你要安装的模型,常见的模型见https://github.com/imuncle/live2d或[Eikanya/Live2d-model: Live2d model collection (github.com)](https://github.com/Eikanya/Live2d-model),这里有[模型预览地址](https://imuncle.github.io/live2d/),这里以为例live2d-widget-model-z16为例。
可选择的模型:
1  | live2d-widget-model-chitose  | 
修改主题配置文件
在Hexo主题_config.yml文件中添加以下内容:
1  | live2d:  | 
模型预览
素质三连
1  | hexo cl & hexo g hexo s  | 
添加文本框对话功能
以上只有基本功能,以下将做一些进阶的设置
浮现hitokoto文字
这里我们使用语句接口 | 一言开发者中心提供的api接口https://v1.hitokoto.cn,每天返回一句不同的话
在刚刚添加live2d的_config.yml中添加以下代码:
1  | live2d:  | 
这样就可以在看板娘上方显示文本框
自定义文本
解决方案
- 修改配置文件_config.yml
 
1  | live2d:  | 
这里的text 变量名是自定义的,和后面的config.dialog.text 对应即可
[Blogroot]\node_modules\live2d-widget\src\dialog\index.js,添加函数
1  | function randomSelection(obj) {  | 
并添加对此函数的调用
1  | function createDialogElement(root) {  | 
webpack打包
3.1 在
live2d-widget下安装webpack包:npm install --save-dev webpack@3.10.0注:
webpack版本很重要,参考.\live2d-widget\package.json
 3.2 命令行输入./node_modules/.bin/webpack
到这里就结束了~~
过程
关于waifu-tips.js · Issue #137 · EYHN/hexo-helper-live2d (github.com)这个issue中并没有提及如何自定义文本的问题,于是就先来读一读源码
有关对话框的源代码在[Blogroot]\node_modules\live2d-widget\src\dialog\index.js下
_config.yml里的设置经过一系列传参到index.js中,变成了config对象
当你按下述设置时,
1  | dialog:  | 
传到index.js中,使得config.dialog.enable和config.dialog.hitokoto都变为了true
因此
1  | function createDialogElement(root) {  | 
就调用了showHitokotoLoop()函数,因此我们首先要做的是将hitokoto: true改为false,由于默认值就是false(见.\live2d-widget\src\index.js注释和.\live2d-widget\src\config\defaultConfig.js的默认设置),因此删掉这句话就可以了
我们知道函数showHitokotoLoop()调用了alertText(text)函数,将data.hotokoto当作text参数传入
因此如果要自定义文本,只需要将我们的文本作为text传入即可
于是开始魔改(x),见上一小节
参考了live2d-widget/waifu-tips.js at master · stevenjoezhang/live2d-widget · GitHub
事实上可以看看butterfly主题中对subtitle的处理,还可以增加调用其他api的方法,这里就不加了。
修改为自己想要的live2d图像
选择想要的live2d形象
在完成上面的步骤之后,我们知道存放模型文件的地方就是你博客根目录下面的node_modules中,例如上面的live2d-widget-model-z16的位置就是[blog根目录]/node_modules/live2d-widget-model-z16,现在我们在Eikanya/Live2d-model: Live2d model collection (github.com)找想要配置的角色,找到后下载即可。
然后我们观察到live2d-widget-model-z16中有两个东西,分别是assets文件夹和package.json文件,打开assets文件我们注意一下里面的目录结构,然后在我们自己下载的模型文件中找到相似的目录结构的文件夹。
之后将具有相似结构的文件目录改名为assets。另外再新建一个package.json文件,这里面的内容直接将原来的复制一下就行,里面的名字信息改为你自己的模型名字。最后将assets和package.json合并为一个文件夹(名称为live2d-widget-model-模型名字)放入node_modules下面。最后修改根目录下面的_config.yml中使用的模型地址为live2d-widget-model-模型名字。
配置动作
Json配置 - Live2DViewerEX文档 (pavostudio.com)
问题:不知道模型建立的时候的区域ID,没办法设置hit_area,js代码里也没有对于tap的单独设置,因此只能把动作全部加到json文件里
moc文件用二进制形式打开,发现都是用D_PSD_XXX的形式命名的,就不知道哪个是头那个是身子。。
打包的文件已经用npm发布
可以用命令npm install live2d-widget-model-kasumi安装



