Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 个人简历

  • 人生总结

  • 实用技巧

  • 影剧观感

  • 教育

  • 服务搭建

    • Code Server搭建指南
    • deepfake 项目搭建
    • 博客

      • 几款好看的博客主题
      • 博客收录注意事项
      • vuepress踩坑记录
      • 博客分类脑图生成
      • 博客评论踩坑记录
      • 博客配置全文搜索
      • 博客配置资源缓存
      • 如何部署博客
      • 给网站添加一只看板娘
        • live2d 介绍
        • live2d 使用
        • 拓展阅读
    • 域名解析常见问题
  • 灵感记录
  • 理财投资

  • 生活常识

  • 知识科普

  • 自媒体

  • 面试经验

  • 闲言碎语
  • 服务搭建
  • 博客
gahing
2023-04-15
目录

给网站添加一只看板娘

我们想要给博客增加一个看板娘或小动物,增加互动的趣味性。

本文将介绍一种 live2d 的技术,并提供相应的代码,帮助你在 3 分钟之内接入个人站点。

在线查看效果:https://summerscar.me/live2dDemo/

# live2d 介绍

Live2D 并不是一种先进的技术,它产生的效果,都是用基本的平移、旋转、透明、曲面变形等操作实现的。 最终的效果与贴图关系很大,而每一个动作,都需要制作师的精细调整。 这是一个需要消耗大量时间精力的过程,因此质量好的模型并不多,质量好的也一般是在游戏中,版权受到保护,不能随意使用。

引自 https://github.com/galnetwen/Live2D

# live2d 使用

模型可以在这个仓库 (opens new window)找:

如何使用 live2d ,整体来说就三步:

  1. 创建 canvas 元素,用于展示
  2. 加载 live2d 脚本
  3. 加载 live2d 模型

对于 live2d 的脚本和资源,我们可以利用 jsdelivr 获取 live2dDemo 仓库的 CDN 资源地址,比如

  • live2d 脚本对应的 cdn 地址为 https://cdn.jsdelivr.net/gh/francecil-public/live2dDemo/live2d.js
  • live2d 猫猫模型对应的 cdn 地址为 https://cdn.jsdelivr.net/gh/francecil-public/live2dDemo/assets/hijiki.model.json

整理以上步骤得到一段通用代码:

export default () => {
    if (typeof window !== "undefined") {
        // 窄屏不展示
        if(window.innerWidth <= 800) {
            return;
        }
        setTimeout(() => {
            const model = LIVE2D_MODEL
            const canvas = document.createElement('canvas')
            canvas.id = "live2d"
            canvas.style = "position: fixed; right: 40px; bottom: 40px";
            canvas.width = 180
            canvas.height = 150
            document.body.appendChild(canvas)
            
            const script = document.createElement('script')
            script.src = 'https://cdn.jsdelivr.net/gh/francecil-public/live2dDemo/live2d.js'
            script.async = true
            script.onload = () => {
                window.loadlive2d("live2d", `https://cdn.jsdelivr.net/gh/francecil-public/live2dDemo/assets/${model}/${model}.model.json`);
            }
            document.body.appendChild(script)
        }, 3000)
    }
}
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

上面代码加了延迟加载和窄屏限制

# 拓展阅读

  • 为网站添加一只萌萌哒的看板娘 (opens new window)
编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56
如何部署博客
域名解析常见问题

← 如何部署博客 域名解析常见问题→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2024 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式