【转载】L2Dwidget.js网页二次元看板娘的用法

这篇具有很好参考价值的文章主要介绍了【转载】L2Dwidget.js网页二次元看板娘的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近新建了博客,https://yellowgg.cn,许久不更新的博客园想引个流,可以关注一波嗷。

发现某些blog网站左下方或者右下方出现的二次元卡通人物或萌萌阿猫,除了萌,还可以监听鼠标的行为,产生互动的现象。

1. 关于脚本的生成

L2Dwidget.min.js的源码:https://github.com/xiazeyu/live2d-widget.js.git

起初我以为在git中会找到这个脚本文件,但是却失望了。L2Dwidget.min.js 脚本是需要编译生成的。
首先我们把项目git下来(master分支),此项目是基于nodeJs的,如果不会nodeJs,需要先去了解下。刚Git下来的目录,是没有 lib和
node_modules目录的。
接下来我们安装依赖和编译项目,在当前目录打开命令窗口,输入如下命令:

npm install

命令成功后,node_modules目录就生成了,这是这个项目需要的依赖包。
打开package.json,可以看到这个项目的结构情况。可以看到有执行的脚本:

{
  "scripts": {
    //省略
    "inst:dev": "npm install -g commitizen && npm install -g conventional-changelog-cli && npm install",
    "build:dev": "./node_modules/.bin/webpack --progress --colors",
    "build:prod": "./node_modules/.bin/webpack --env prod --progress --colors && npm run build:module"
    //省略
  }
}

执行脚本,编译项目:

npm run build

运行后,会看到lib目录生成了,L2Dwidget.min.js和L2Dwidget.0.min.js脚本成功生成。
如果不想下载来编译,我们可以直接引入l2dwidget.js.org官网的js链接:


<script src="https://l2dwidget.js.org/lib/L2Dwidget.min.js"></script>
<script>
    L2Dwidget.init({
        "model": {
            jsonPath: 'https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json',
            "scale": 1
        },
        "display": {
            "position": "left",
            "width": 180,
        },
        "mobile": {
            "show": true,
            "scale": 0.5
        },
        "react": {
            "opacityDefault": 0.7,
            "opacityOnHover": 0.2
        },
    });
</script>

2. 脚本使用

我们运行项目下的 dev.html文件,就可以看到效果。里面就一句代码:

L2Dwidget.init();

默认加载的是 live2d-widget-model-shizuku 这个模型,在 src/config/defaultConfig.js 中可以看到默认配置如下:

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: 'live2d-widget',
  },
  react: {
    opacity: 1,
  },
  dev: {
    border: false
  },
  dialog: {
    enable: false,
    script: null
  }
}

在 src/index.js 文件中可以看到配置的说明如下:

/**
 * The init function
 * @param {Object}   [userConfig] User's custom config 用户自定义设置
 * @param {String}   [userConfig.model.jsonPath = ''] Path to Live2D model's main json eg. `https://test.com/miku.model.json` model主文件路径
 * @param {Number}   [userConfig.model.scale = 1] Scale between the model and the canvas 模型与canvas的缩放
 * @param {Number}   [userConfig.display.superSample = 2] rate for super sampling rate 超采样等级
 * @param {Number}   [userConfig.display.width = 150] Width to the canvas which shows the model canvas的长度
 * @param {Number}   [userConfig.display.height = 300] Height to the canvas which shows the model canvas的高度
 * @param {String}   [userConfig.display.position = 'right'] Left of right side to show 显示位置:左或右
 * @param {Number}   [userConfig.display.hOffset = 0] Horizontal offset of the canvas canvas水平偏移
 * @param {Number}   [userConfig.display.vOffset = -20] Vertical offset of the canvas canvas垂直偏移
 * @param {Boolean}  [userConfig.mobile.show = true] Whether to show on mobile device 是否在移动设备上显示
 * @param {Number}   [userConfig.mobile.scale = 0.5] Scale on mobile device 移动设备上的缩放
 * @param {String}   [userConfig.name.canvas = 'live2dcanvas'] ID name of the canvas canvas元素的ID
 * @param {String}   [userConfig.name.div = 'live2d-widget'] ID name of the div div元素的ID
 * @param {Number}   [userConfig.react.opacity = 0.7] opacity 透明度
 * @param {Boolean}  [userConfig.dev.border = false] Whether to show border around the canvas 在canvas周围显示边界
 * @param {Boolean}  [userConfig.dialog.enable = false] Display dialog 显示人物对话框
 * @param {Boolean}  [userConfig.dialog.hitokoto = false] Enable hitokoto 使用一言api
 * @return {null}
 */

3. model的替换

在https://github.com/xiazeyu/live2d-widget-models.git这个地址可以看到可以用的model,你可以Git下来,或者像文章中说的 cnpm 安装到node_modules。我这里用的cnpm安装,live2d-widget.js-master目录下运行:

npm install live2d-widget-model-koharu

成功后,在node_modules目录下可以看到live2d-widget-model-koharu文件夹。
在使用的时候,指定model的json位置即可:

L2Dwidget.init({
    "model": {
        "jsonPath": "node_modules/live2d-widget-model-koharu/assets/koharu.model.json"
    }
    //省略
});

直接双击dev.html是加载不出来的,必须基于服务。你可以用nodeJs构建一个简单的服务。可以看到,可爱的看板娘出来了!!

4. 弹出对话框

我们来让看板娘说话吧!
只有部分的看板娘可以触发 触摸身体和触摸头部的事件(默认的那个),在使用的时候,加入下面的配置就可以了:

L2Dwidget.init({
    "dialog": {
        "enable": true,
        "script": {
            //每20s,显示一言(调用一言Api返回的句子)
            'every idle 20s': '$hitokoto$',
            //触摸到对象
            'hover .star': '星星在天上而你在我心里 (*/ω\*)',
            //触摸到身体
            'tap body': '害羞?',
            //触摸到头部
            'tap face': '~~'
      }
    }
});

5. 手动调用对话框

我在编译好的脚本 L2Dwidget.min.js 中没有发现可以直接调用对话框的接口,所以打算修改源代码,增加弹出对话框的接口。打开src/index.js脚本,添加如下代码:

import { alertText } from './dialog';
/*弹出对话框*/
alert(text){
    alertText(text);
}

添加的位置如下:

//代码省略
import device from 'current-device';
import { config, configApplyer }from './config/configMgr';
import { EventEmitter } from './utils/EventEmitter';
import { alertText } from './dialog';

//代码省略
/**
 * download current frame {@link L2Dwidget.captureFrame}
 * @return {null}
 */
  downloadFrame(){
    this.captureFrame(
      function(e){
        let link = document.createElement('a');
        document.body.appendChild(link);
        link.setAttribute('type', 'hidden');
        link.href = e;
        link.download = 'live2d.png';
        link.click();
      }
    );
  }

/**
 * 弹出对话框
 */

  alert(text){
    alertText(text);
  }
//代码省略

然后按照 #1 的方式, 重新编译生成L2Dwidget.min.js脚本文件,此时只需要执行cnpm run build:dev就可以。在使用的时候直接执行如下代码,可以看到看板娘弹出了对话框!

L2Dwidget.alert("我要吃包子~");

需要注意的是,L2Dwidget.alert() 需要配置文件的 dialog: {enable: true} 才可以。

6. 换不同的人物

要想不同的图片,更换不同的jsnPath就好了,贴一下几个json:
https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json
https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json
https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json
https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json
https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json
https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json
https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json
https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json
https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json
https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
原文链接: https://www.fly63.com/article/detial/12264文章来源地址https://www.toymoban.com/news/detail-820218.html

到了这里,关于【转载】L2Dwidget.js网页二次元看板娘的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity实战系列】如何把你的二次元老婆/老公导入Unity进行二创并且进行二次元渲染?(附模型网站分享)

    君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C++ 游戏开发 Hello,米娜桑们,这里是君兮_,在正式开始讲主线知识之前,我们先来讲点有趣且有用的东西。 我知道,除了很多想从事游戏开发行业的人以外,还有更多的人学习Unity是因为兴趣爱好,想要让自己喜欢的角

    2024年02月12日
    浏览(24)
  • AIGC绘画关键词 - 二次元少女

    Unity3D特效百例 案例项目实战源码 Android-Unity实战问题汇总 游戏脚本-辅助自动化 Android控件全解手册 再战Android系列 Scratch编程案例 软考全系列 Unity3D学习专栏 蓝桥系列 ChatGPT和AIGC 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等

    2024年04月12日
    浏览(27)
  • Unity制作二次元卡通渲染角色材质

    Unity制作二次元材质角色   大家好,我是阿赵。接下来准备开一个系列,讲一下二次元卡通角色的渲染。   先来看看成品,我从网上下载了著名游戏《罪恶装备》里面的一个角色模型。在没有做材质之前,把贴图赋予上去,给一个Unlit材质,这个角色的样子大概是这样的

    2024年02月14日
    浏览(34)
  • 你了解二次元ai绘画软件哪个好用吗?

    如今,人工智能逐渐渗透到各个领域,艺术领域也不例外。它能够帮助大家更快、更好地完成画作,从而提高创造效率。介绍之前请大家先浏览一下ai绘画生成的一些二次元图像: 二次元绘画是日本动漫文化中的一种绘画风格,具有明显的漫画特点和可爱的风格。我们通过

    2024年02月14日
    浏览(31)
  • Stable Diffusion绘画系列【2】:二次元风美女

    《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌ 更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍 感谢小伙伴们点赞、关注! 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】

    2024年02月04日
    浏览(32)
  • 利用百度AI作画之二次元小姐姐

    先说结果:不好说😶 大白   不敢细看,过于骇人  首先还是先去申请,基础版即可 AI作画_文心AI作画-百度AI开放平台 百度AI开放平台-文心AI作画,基于百度领先的中文跨模态生成模型,准确理解用户输入的自然语言,一键自动生成不限定风格的图像. https://ai.baidu.com/tech/creativi

    2024年02月12日
    浏览(28)
  • unity+webgl+websocket实时口型+二次元语音老婆

    文章开始首先感谢 B站UP: 阴沉的怪咖 提供的最初资源包 2.gif 体验地址 体验地址 www.aixmao.com 不能放视频,看效果去B站链接:B站链接_bilibili UP主提供初始代码地址: Github地址:https://github.com/zhangliwei7758/unity-AI-Chat-Toolkit Gitee地址:https://gitee.com/DammonSpace/unity-ai-chat-toolkit 2、LipSy

    2024年02月02日
    浏览(36)
  • 前端vue3——实现二次元人物拼图校验

    大家好,我是yma16,本文分享关于 前端vue3——实现二次元人物拼图校验。 vue3系列相关文章: vue3 + fastapi 实现选择目录所有文件自定义上传到服务器 前端vue2、vue3去掉url路由“ # ”号——nginx配置 csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板 认识vite_vue3 初

    2024年02月04日
    浏览(35)
  • 原神3D卡通动漫二次元角色模型Blender已绑骨骼

    3Dmax/C4D这类软件应该做三维的都知道。Blender知道的应该不多。一款跨平台开源的 3D 创作软件,可以在 Linux、macOS 以及 Windows 系统下运行。与其他 3D 建模工具相比,Blender 对内存和驱动的需求更低。 今天给大家分享一组Blender格式的资源,56个原神角色模型,2K高清贴图,带骨

    2024年02月11日
    浏览(55)
  • Unity制作二次元卡通渲染角色材质——5、脸部的特殊处理

    Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色材质的制作。这次是讲头部的做法。 之前在分析资源的时候,其实已经发现了这个模型的脸部法线有问题,导致在做光照模型的时候,脸部很奇怪。 把fbx文件导入到3DsMax里面,可以发现 这个模型

    2024年02月09日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包