• 👉Live2d-moc3👈

⏩ 文章地址/示例博客 | ✔️ 仓库地址 | 👀 示例页面 欢迎提交 pr !

  • [x] 支持 live2d-moc3 版本的 web 渲染库
  • [x] 支持鼠标点击互动 | 不提供拖动功能
  • [x] 新增支持 [多模型] 异步加载 + 每日恒定随机模型 (每天更换自定义列表内随机模型,当日不再随刷新而替换)

分割线

如何添加

  • 三个必要的头: [1] [2]

    1
    2
    3
    4
    5
    <!-- Live2DCubismCore -->
    <script src="https://fastly.jsdelivr.net/gh/Weidows-projects/live2d-moc3/dist/live2dcubismcore.min.js"></script>
    <!-- Include Pixi. -->
    <script src="https://fastly.jsdelivr.net/gh/Weidows-projects/live2d-moc3/dist/pixi.min.js"></script>
    <script src="https://fastly.jsdelivr.net/gh/Weidows-projects/live2d-moc3/dist/live2d.min.js"></script>
  • 以及自定义的 js, 单个/多个模型都可以, 但只显示一个, 想要多个可以多 new 几个

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    addEventListener("DOMContentLoaded", function () {
    let models = [
    {
    left: "0px",
    bottom: "0px",
    basePath:
    "https://fastly.jsdelivr.net/gh/alg-wiki/AzurLaneL2DViewer@gh-pages/assets",
    role: "bisimai_2",
    background: "",
    opacity: 1,
    mobile: false,
    },
    {
    right: "0px",
    bottom: "0px",
    basePath:
    "https://fastly.jsdelivr.net/gh/alg-wiki/AzurLaneL2DViewer@gh-pages/assets",
    role: "bisimai_2",
    background: "",
    opacity: 1,
    mobile: false,
    },
    ];
    new Live2dLoader(models);
    });

分割线

比如 Hexo

添加到主题的 _config.yml

js 代码可以写完参数后 压缩为一行,一起添加到下面;

当然也可以魔改框架源码,此处不再赘述.

1
2
3
4
5
6
7
8
9
inject:
head:
# - <link rel="stylesheet" href="/xxx.css">
- <script src="https://fastly.jsdelivr.net/gh/Weidows-projects/live2d-moc3/dist/live2dcubismcore.min.js"></script>
- <script src="https://fastly.jsdelivr.net/gh/Weidows-projects/live2d-moc3/dist/pixi.min.js"></script>
- <script src="https://fastly.jsdelivr.net/gh/Weidows-projects/live2d-moc3/dist/live2d.min.js"></script>
bottom:
# - <script src="xxxx"></script>
- <script>addEventListener("DOMContentLoaded",function(){let models=[{left:"0px",bottom:"0px",basePath:"https://fastly.jsdelivr.net/gh/alg-wiki/AzurLaneL2DViewer@gh-pages/assets",role:"bisimai_2",background:"",opacity:1,mobile:false,},{right:"0px",bottom:"0px",basePath:"https://fastly.jsdelivr.net/gh/alg-wiki/AzurLaneL2DViewer@gh-pages/assets",role:"bisimai_2",background:"",opacity:1,mobile:false,},];new Live2dLoader(models)});</script>

分割线

可选参数

参数TypeDefaultDescription
width可选[Number]800宽度,单位为 px
height可选[Number]600长度,单位为 px
top,right,bottom,left可选[String]“”模型到浏览器各边框的距离。选择两个即可定位,如定位在左下角:left: ‘0px’ , bottom: ‘0px’
basePath必须[String]“”live2d 模型资源库的路径
role必须[String]“”角色模型对应的文件夹(即 basePath 下的文件夹
background可选[String]“”背景图片,可填入图片外链
opacity可选[Number]1模型透明度,0~1 取值
mobile可选[boolean]true移动端(手机)是否显示

分割线

Q-A

  • 关于报错含有 reading ‘_ptr’ 的, 是模型不适配问题 (#2)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    live2dcubismcore.min.js:1
    Uncaught TypeError: Cannot read properties of null (reading ‘_ptr’)
    at new Model (live2dcubismcore.min.js:1:138485)
    at Function.Model.fromMoc (live2dcubismcore.min.js:1:138707)
    at l2d.js💯60
    at t.value (mini-signals.js:93:1)
    at e.t._onComplete (Loader.js:568:1)
    at Loader.js:608:1
    at s (async.js:27:1)
    at e. (interactiveTarget.js:82:5)
    at Loader.js:590:1
    at async.js:35:1

    检验过并不是配置文件哪里有问题, 单纯是二进制模型 .png/.moc3 问题, 想修复的话要修复模型

分割线

借物表

项目基于AzurLaneL2DViewer修改

[1]: https://fastly.jsdelivr.net/gh/litstronger/live2d-moc3@master/js/frame/live2dcubismcore.min.js

[2]: https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.6.1/pixi.min.js