今天闲着给自己的博客整了个效果,在live2d这方面整点花活。
记录一下,顺便也给hexo博客搭建live2d的方式做一次梳理。
live2d模型一般有几种常见的格式,其中方便web端渲染呈现的有moc跟moc3两种格式。
一般我们从大佬们白嫖到live2d模型下载解压之后会是这样的格式:
以jiaran4为例:
jiaran4.2048
或jiaran4.1024
存放了模型的材质贴图jiaran4.moc3
为模型主体,为二进制文件jiaran4.model3.json
为模型的配置文件,会重点标注出其他文件的引用路径jiaran4.physics3.json
是物理演算配置文件jiaran4.cdi3.json
作为显示信息,不是很重要
比较豪华的live2d模型还有:
jiaran4.pose3.json
,初始姿势配置文件motions
文件夹,内含若干个xxx.motion3.json
的动作配置文件
moc模型
以我拿到的一个崩2德莉莎的模型为例,目的是想要在hexo博客上实装。
是hexo的话,可以方便地使用hexo-helper-live2d这么一个插件:
1 | npm install --save hexo-helper-live2d |
这个插件有若干个预设模型,随便扒拉几个看下:
1 | npm install --save live2d-widget-model-shizuku |
看下文件结构:
1 | . |
如果我们有一个moc模型的话,就可以考虑模仿这样的文件格式安排,伪装成能被插件正常执行的模型包,在hexo里面跑起来。
最后我把原来的模型包修改成了这样:
这里有一点需要注意:.model3.json
文件内含relative file reference,在调整文件结构的时候也需要把里面的内容也做改动。
最终效果是这样的:
moc3模型
不过这几年来新的模型大多以moc3的格式来传播,用原来moc格式的办法没法直接套用,尝试另外的解决方案。
moc3模型以嘉然为例(然然你带我走吧然然
第一种尝试是从这几个repo来看看能不能伪装格式一起套用:
- https://github.com/Yukariin/AzurLaneL2DViewer
- https://github.com/alg-wiki/AzurLaneL2DViewer
- https://github.com/HCLonely/Live2dV3
- https://github.com/LitStronger/live2d-moc3
然后发现不行,遂放弃。
第二种尝试来自这篇博客:https://www.cnblogs.com/Arisf/p/14347362.html
首先是需要live2d cubism有关的几个js:
bundle.js
,似乎需要自己生成live2dcubismcore.js
,是官方web sdk的
相应所需要的js文件跟模型都一起放在了我github的repo里面,感谢开源,侵删。
可以首先在本地上试试能不能跑起来。事实上把这几行代码一起粘到body
标签里面就好了:
1 | <canvas id="live2d" width="400" height="400" class="live2d" style="position: fixed; opacity: 1; left: -110px; bottom: -135px; z-index: 99999; pointer-events: none;"></canvas> |
其中不知道是cdn抽风还是什么奇怪的原因,原本应该是v0.1.1
的地方需要是vv0.1.1
才访问得到,非常奇怪。
如果正常的话应该是这样子:
接下来把然然带进hexo博客里面。由于我用的NexT主题,修改themes/next/layout/_layout.swig
,直接在body
标签的最后边粘上去这几行,做法非常暴力。
不出意外的话然然应该就能跟爷同框了,像下面这样(