二、【易 AI】Live2d 简介与使用

When you cry for missing the sun, you will miss the stars again.

当你为错过太阳而哭泣时,你也要再错过群星了。

——泰戈尔

一、Live2d 简介

Live2D是一种基于2D图像的动态角色技术,它能够将静态的2D角色转化为具有丰富表情和动作的实时交互角色。通过使用Live2D,开发者可以为游戏、动画、虚拟主播等应用创建出生动活泼的角色。

Live2D的核心技术是基于多层次的2D绘制,通过对角色进行分割并赋予不同部位独立的动作能力,从而实现角色的自由变形和动态效果。这种技术使得角色能够根据用户的操作或者外部输入实时响应,展现出更加真实的表情和动作。

除了基本的动作表现,Live2D还提供了丰富的特效功能,如光影效果、粒子效果等,使得角色在交互过程中更加生动有趣。同时,Live2D还支持与其他引擎和平台的集成,方便开发者将其应用到各种不同的项目中。

二、Live2d Web

L2Dwidget.min.js 是一个基于 WebGL 技术的开源库,用于在网页上实现可爱的 Live2D 角色模型。Live2D 是一种二维动画技术,可以将静态的插图转化为具有动态效果的角色模型。

L2Dwidget.min.js 提供了一些简单易用的接口,使得开发者可以轻松地将 Live2D 模型嵌入到网页中。它支持鼠标交互、触摸事件和设备重力感应等功能,使得用户可以与 Live2D 模型进行互动。

使用 L2Dwidget.min.js,你可以通过引入相应的 JavaScript 文件和配置文件,将 Live2D 模型添加到你的网页中。你可以自定义模型的大小、位置、动作等属性,并且可以根据需要添加额外的特效和动画效果。

网上很多文章都有介绍使用 L2Dwidget.min.js 实现看板娘效果,我们也来实现一个简单的 demo,

1、编译 L2Dwidget.min.js

git clone https://github.com/xiazeyu/live2d-widget.js.git

把源代码克隆下来,进入根目录,准备安装依赖,

# 使用 cnpm i 有问题
npm i

# 模块打包
yarn add webpack webpack-cli --dev
yarn webpack

模块打包完成后不会自动退出,可以直接在 ./lib 目录下看到已经生成了  L2Dwidget.0.min.js 和  L2Dwidget.min.js,

2、运行效果

启动一个 node server 来代理 html 入口,

npm install -g serve
serve .

访问 localhost:3000,然后点击 dev.html,

可以看到右下角成功显示了看板娘,

3、源代码解析

我们来看下 dev.html 里面都有些什么,

<!-- dev.html -->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Live2d Test Env</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  </head>
  <body>
  <script src="lib/L2Dwidget.min.js"></script>
  <script type="text/javascript">
    L2Dwidget.init();
  </script>
  </body>
</html>

页面引入了 L2Dwidget.min.js 库,并且做了初始化  L2Dwidget.init(); ,默认加载的是 live2d-widget-model-shizuku 这个模型,在 src/config/defaultConfig.js 中可以看到默认配置如下,

/**
 * @description The storage of configs. Intend to unify serverJs and clientJs's config
 */

/**
 * Default settings for defaulter
 * @type {Object}
 */

const defaultConfig = {
  model: {
    jsonPath: 'https://unpkg.com/live2d-widget-model-shizuku@latest/assets/shizuku.model.json',
    scale: 1,
  },
  display: {
    superSample: 2,
    width: 200,
    height: 400,
    position: 'right',
    hOffset: 0,
    vOffset: -20,
  },
  mobile: {
    show: true,
    scale: 0.8,
    motion: true,
  },
  name: {
    canvas: 'live2dcanvas',
    div: 'l

相关推荐

  1. 初学vue3ts:keep-alive简单使用

    2024-04-08 20:08:02       39 阅读
  2. Cocos Creator 2D MaskLayout 使用详解

    2024-04-08 20:08:02       15 阅读
  3. Redis 简介使用

    2024-04-08 20:08:02       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 20:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 20:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 20:08:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 20:08:02       20 阅读

热门阅读

  1. Istio-learning-note-about-Fault Injection(二)

    2024-04-08 20:08:02       12 阅读
  2. Web爬虫

    Web爬虫

    2024-04-08 20:08:02      13 阅读
  3. js与jq之间的联系(补)

    2024-04-08 20:08:02       15 阅读
  4. RPA投资:成本效益分析秘籍

    2024-04-08 20:08:02       13 阅读
  5. 基于 Spring Task实现单体项目架构的定时任务

    2024-04-08 20:08:02       15 阅读
  6. jquery

    2024-04-08 20:08:02       14 阅读
  7. js中filter,map,forEach,indexOf的用法和区别详解

    2024-04-08 20:08:02       15 阅读
  8. 网络安全教程及案例分析

    2024-04-08 20:08:02       14 阅读
  9. 前端开发语言都有哪些?

    2024-04-08 20:08:02       15 阅读
  10. 防抖和节流

    2024-04-08 20:08:02       13 阅读