当前位置: 首页 > news >正文

vue-live2d看板娘集成方案设计使用教程

文章目录

  • 前言
  • v1.1.x版本:vue集成看板娘(暂不使用,在v1.2.x已替换)
    • 集成看板娘
    • 实现看板娘拖拽效果
    • 方案资源备份存储
  • 当前最新调研:2024.10.2
    • 开源方案1:OhMyLive2D(推荐)
    • 开源方案2:fghrsh(提供后端接口)
    • 开源方案3:live2dw(模型直接本地放置)
    • 开源方案4:vue-live2d,支持vue(推荐,基于方案2改造)
  • v1.2.x版本:集成vue-live2d
    • 开发定位
    • 集成步骤
    • 效果展示
  • 参考文章

前言

博主介绍:✌目前全网粉丝3W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。

涵盖技术内容:Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。

博主所有博客文件目录索引:博客目录索引(持续更新)

视频平台:b站-Coder长路


下面的v1.1.x、v1.2.x指的是我的开源项目:https://gitee.com/changluJava/studio-vue

v1.1.x版本:vue集成看板娘(暂不使用,在v1.2.x已替换)

说明:在截止到哈希吗为46678653b6cd6636f4a375fe7243618547a12df7及之前,都是使用的这个方案,后续已替换下面的开源方案4。


集成看板娘

对应文件资源:

链接:https://pan.baidu.com/s/1q1s0hL7fxAz68fP5tV9SyQ
提取码:e6k2

在vue项目添加live2d可交互的看板娘

相关其他博客:

  • https://www.fghrsh.net/post/123.html

效果:

image-20220409001611489

1、首先在index.html引入jquery

<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>

或者你可以将jquery下载到本地引入,如:

npm install jquery //之后再main.js中全局引入
import $ from "jquery/dist/jquery"
window.jquery = window.$ = $

2、将对应四个文件放入

image-20220409000835233

紧接着将对应的index.vue放入:

image-20220409000916769

3、最后在layout组件中进行引入组件

image-20241002162833820

<Live2d />//引入看板娘
import Live2d from '@/components/live2d'components: {   // 引入组件Live2d},

实现看板娘拖拽效果

本质使用的jquery-ui以及对应的css文件实现的拖拽效果,要三个文件

由于在上面集成中的waifu-tips.js中本身就集成了拖拽:

image-20241002162927613

我们这里还需要引入jquery的ui库,其中应该是需要draggable函数支持:

网上的:demo案例

<style href="https://apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.min.css"></style>
<script src="https://www.fghrsh.net/zb_system/script/jquery-1.8.3.min.js"></script>
<script src="https://www.fghrsh.net/zb_users/plugin/live2d/assets/jquery-ui.min.js"></script>

这是我自己上传到图床里的:备用

<style href="https://zhifengstudio.oss-cn-beijing.aliyuncs.com/assets/jquery-ui.min.css"></style>
<script src="https://zhifengstudio.oss-cn-beijing.aliyuncs.com/assets/jquery-1.8.3.min.js"></script>
<script src="https://zhifengstudio.oss-cn-beijing.aliyuncs.com/assets/jquery-ui.min.js"></script>

对于vue的话直接在index.html中进行引入

image-20220416230058119

后面改为了放置到当前本地文件引用。


方案资源备份存储

image-20241002163344303

image-20241002164056868

链接:https://pan.baidu.com/s/1q4_IV0pzYtTlABmyDmM8_A 
提取码:w6BC

当前最新调研:2024.10.2


开源方案1:OhMyLive2D(推荐)

官网:https://oml2d.com/

b站配套视频:https://www.bilibili.com/video/BV1TD421M7zm

github地址:https://github.com/oh-my-live2d/oh-my-live2d

应用场景:可直接应用于index.html相关的。


开源方案2:fghrsh(提供后端接口)

配套视频:live2d动态亚丝娜看板娘网页教程-零基础 https://www.bilibili.com/video/BV184411o75s

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

live2d后端API以及源码插件:https://github.com/fghrsh

  • 后端API:https://github.com/fghrsh/live2d_api
  • 前端源码插件:https://github.com/fghrsh/live2d_demo

说明:实际上上面的vue集成方案就是基于当前的这个live2d-widget以及fghrsh进行二开的。配置过程可见:在vue项目添加live2d可交互的看板娘

问题描述:使用了这个目前会出现模型渲染有问题情况,后考虑使用vue-live2d。


开源方案3:live2dw(模型直接本地放置)

Vue中引入看板娘教程(见方式一):https://blog.csdn.net/qq_57485314/article/details/127892079

直接将所有模型放置到前端本地工程中。


开源方案4:vue-live2d,支持vue(推荐,基于方案2改造)

关于搭建 live2d api接口详细步骤:https://blog.csdn.net/RAXCL/article/details/127685261

该开源方案同样也使用到了 live2d api,开源up主个人自己搭建了一套api我们可以直接使用。

演示网址:https://evgo2017.com/repo/vue-live2d

github网址:https://github.com/evgo2017/vue-live2d

案例demo:https://github.com/evgo2017/vue-live2d/blob/master/example/App.vue


v1.2.x版本:集成vue-live2d

开发定位

位于开发分支:feat_1.2.x_fsstudio,提交哈希码:e3aadc69735949e92058a856fa84b3137438fec1

集成步骤

安装依赖:

npm install vue-live2d

封装vue组件:live2d.vue

image-20241002191640870

<template><div><live2d:style="style":model="['Potion-Maker/Pio', 'school-2017-costume-yellow']":direction="direction":size="size"></live2d></div>
</template><script>
import live2d from 'vue-live2d'export default {name: 'Live2d',components: {live2d},data () {return {direction: 'right',style: 'position: fixed;bottom: 0;right: 20px;z-index: 1;font-size: 0;-webkit-transform: translateY(3px);transform: translateY(3px);',width: 500,height: 500,size: 260,tips: {mouseover: [{selector: '.vue-live2d',texts: ['这样可以修改默认语句']}]}}},created() {},methods: {}
}
</script><style scoped></style>

集成使用:

image-20241002191741251

<Live2d/>// 引入live2d看板娘
import Live2d from '../components/live2d/index.vue'components: {   // 引入组件Live2d
},

效果展示

image-20241002191921461


参考文章

[1]. 搭建 live2d api接口详细步骤:https://blog.csdn.net/RAXCL/article/details/127685261

[2]. vue-live2d开源演示:https://evgo2017.com/repo/vue-live2d


整理者:长路 时间:2024.10.2

相关文章:

vue-live2d看板娘集成方案设计使用教程

文章目录 前言v1.1.x版本&#xff1a;vue集成看板娘&#xff08;暂不使用&#xff0c;在v1.2.x已替换&#xff09;集成看板娘实现看板娘拖拽效果方案资源备份存储 当前最新调研&#xff1a;2024.10.2开源方案1&#xff1a;OhMyLive2D&#xff08;推荐&#xff09;开源方案2&…...

springboot接口如何支持400并发量

Spring Boot 本身并不直接限制并发量&#xff0c;但是你可以通过配置来优化应用以处理更多的并发请求。以下是一些关键配置和优化技巧&#xff1a; 服务器连接配置&#xff08;application.properties 或 application.yml&#xff09;: # 服务器连接数配置 server.tomcat.max…...

Verilog中的: `+:` 和 `-:`

: 和 -: 标准解释 logic [15:0] down_vect; logic [0:15] up_vect;down_vect[lsb_base_expr : width_expr] up_vect [msb_base_expr : width_expr] down_vect[msb_base_expr -: width_expr] up_vect [lsb_base_expr -: width_expr]举例 reg [31:0] dword; reg [7:0] byte0…...

为何四次挥手要等待2MSL

参考文章&#xff1a;https://zhuanlan.zhihu.com/p/204988465 A主动关闭连接一方&#xff0c;B是被动关闭一方 我们假设A发送了ACK报文后过了一段时间t之后B才收到该ACK&#xff0c;则有 0 < t < MSL。因为A并不知道它发送出去的ACK要多久对方才能收到&#xff0c;所以…...

C++——模拟实现list

1.初步实现结点和链表 namespace jxy {template<class T>struct list_node{T _data;list_node<T>* _prev;list_node<T>* _next;list_node(const T& x T()):_data(x),_prev(nullptr),_next(nullptr){}};template<class T>class list//list的框架本…...

React中useState、useReducer与useRef

useState 详解 useState 是 React 函数组件中用于管理组件状态的 Hook。它提供了一种简洁的方式来在函数组件中添加状态&#xff0c;并在状态改变时触发组件重新渲染。以下是 useState 的详细解析&#xff1a; 一、基本概念 useState 是一个函数&#xff0c;它接收一个初始状…...

ReGCL Rethinking Message Passingin Graph Contrastive Learning

AAAI24 推荐指数&#xff1a; #paper/⭐ 总体说&#xff1a;利用梯度对对比正负样本加权的。个人觉得和与正负样本加权没有区别&#xff0c;读完之后不想做笔记了。...

ubutun安装ffmpeg

安装依赖 sudo apt-get install yasm sudo apt-get install libsdl1.2-dev sudo apt-get install libsdl2-dev 下载安装 tar -zxvf filename.gz ./configure --enable-shared --prefix/usr/local/ffmpeg make -j4 sudo make install 添加路径 路径/usr/local/ffmpeg…...

Vue的基本用法及模板语法

Vue.js使用了基于 HTML 的模板语法&#xff0c;允许开发者声明式地将 DOM 绑定至底层 Vue实例的数据。所有 Vue.js的模板都是合法的 HTML&#xff0c;所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上&#xff0c;Vue将模板编译成虚拟 DOM 渲染函数。结合响应系…...

Redis数据库与GO完结篇:redis操作总结与GO使用redis

一、redis操作总结 由于写redis命令的时候有提示符&#xff0c;所以下表只给出命令名称 数据类型操作简介字符串GET, SET, MGET, MSET, SETEX,DEL最基本的数据类型&#xff0c;存储任意二进制数据&#xff0c;支持简单操作和原子计数。适合存储重复数据。哈希HSET, HGET, HDE…...

《重生到现代之从零开始的C语言生活》—— 动态内存管理

动态内存分配 我们在开辟内存的时候就是 int a 3;这样 但是这样开的空间大小是固定的&#xff0c;且大小不能调整 但是如果我们用动态内存开辟的话&#xff0c;就可以自己申请和释放空间、 malloc 是C语言提供的一个开辟动态空间的函数 void* malloc (size_t size);//si…...

四、Spring Boot集成Spring Security之登录登出业务逻辑

Spring Boot集成Spring Security之登录登出业务逻辑 一、概要说明二、基于内存的用户名密码1、默认用户名密码2、自定义用户名密码3、为方便测试添加测试接口TestController 三、登录登出重要概念介绍四、登录业务逻辑1、登录业务相关过滤器2、访问业务请求处理流程①、访问业务…...

pipe和pipefd

Linux 中 pipe 的详细介绍 在 Linux 中&#xff0c;pipe 是一个系统调用&#xff0c;用于创建一个管道&#xff0c;这是一种用于进程间通信&#xff08;IPC&#xff09;的机制。管道允许两个进程之间进行单向数据传输&#xff0c;通常是一个进程向管道写入数据&#xff0c;而另…...

无人机之飞控仿真技术篇

一、无人机飞控仿真技术的定义 无人机飞控仿真技术主要是指飞行控制系统仿真&#xff0c;它是以无人机的运动情况为研究对象&#xff0c;面向对象的复杂系统仿真。通过该技术&#xff0c;可以模拟无人机的飞行过程&#xff0c;评估飞行控制系统的性能&#xff0c;优化飞行参数&…...

Tetra Pak利乐触摸屏维修beijer北尔触摸屏维修E1151

TetraPak利乐包装机触摸显示屏维修&#xff0c;北尔全系列型号触摸屏修理 维修注意事项&#xff1a; 上电前&#xff0c;应检查负载是否接上或是否正确&#xff1b; 测量电压时&#xff0c;确认档位是否在电压档。要确认仪器仪表的量程应大于测试点的电压&#xff1b; 更换电…...

Python_网络编程(IP 端口 协议)

网络编程&#xff1a; 互联网时代&#xff0c;现在基本上所有的程序都是网络程序&#xff0c;很少有单机版的程序了。网络编程就是如何在程序中实现两台计算机的通信。Python语言中&#xff0c;提供了大量的内置模块和第三方模块用于支持各种网络访问&#xff0c;而且Python语言…...

Adobe Acrobat提示“3D数据解析错误”

原因&#xff1a;在使用Adobe Acrobat打开3D PDF时&#xff0c;因当前Adobe Acrobat的配置存在错误&#xff0c;所以无法打开 解决方法&#xff1a;重新生成配置 首先到达下面的路径C:\Users\你的用户名\AppData\Local\Adobe\Acrobat 下面为我的路径内容 若该路径下存在文件…...

红帽7—Mysql路由部署

MySQL Router 是一个对应用程序透明的InnoDB Cluster连接路由服务&#xff0c;提供负载均衡、应用连接故障转移和客户端路 由。 利用路由器的连接路由特性&#xff0c;用户可以编写应用程序来连接到路由器&#xff0c;并令路由器使用相应的路由策略 来处理连接&#xff0c;使其…...

LLM4Rec最新工作: 字节发布用于序列推荐的分层大模型HLLM

前几个月 Meta HSTU 点燃各大厂商对 LLM4Rec 的热情&#xff0c;一时间&#xff0c;探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等一系列话题让人兴奋&#xff0c;然而理想有多丰满&#xff0c;现实就有多骨感&#xff0c;尚未有业界公开真正复刻 …...

怎么高效对接SaaS平台数据?

SaaS平台数据对接是指将一个或多个SaaS平台中的数据集成到其他应用或平台中的过程。在当前的数字化时代&#xff0c;企业越来越倾向于使用SaaS平台来管理他们的业务和数据。然而&#xff0c;这些数据通常散布在不同的SaaS平台中&#xff0c;这对于企业数据的整合和分析来说可能…...

Spark算子使用-Map,FlatMap,Filter,diatinct,groupBy,sortBy

目录 Map算子使用 FlatMap算子使用 Filter算子使用-数据过滤 Distinct算子使用-数据去重 groupBy算子使用-数据分组 sortBy算子使用-数据排序 Map算子使用 # map算子主要使用长场景&#xff0c;一个转化rdd中每个元素的数据类型&#xff0c;拼接rdd中的元素数据&#xf…...

CSS响应式布局

CSS 响应式布局也称自适应布局&#xff0c;是 Ethan Marcotte 在 2010 年 5 月份提出的一个概念&#xff0c;简单来讲就是一个网站能够兼容多个不同的终端&#xff08;设备&#xff09;&#xff0c;而不是为每个终端做一个特定的版本。这个概念是为解决移动端浏览网页而诞生的。…...

AI大模型书籍丨掌握 LLM 和 RAG 技术,这本大模型小鸟书值得一看!

本指南旨在帮助数据科学家、机器学习工程师和机器学习/AI 架构师探索信息检索与 LLMs 的集成及其相互增强。特别聚焦于 LLM 和检索增强生成&#xff08;RAG&#xff09;技术在信息检索中的应用&#xff0c;通过引入外部数据库与 LLMs 的结合&#xff0c;提高检索系统的性能。 …...

Mysql和Oracle使用差异和主观感受

这两种常用的关系型数据库有何差异&#xff1f; 支持和社区 MySQL&#xff1a;有一个活跃的开源社区&#xff0c;用户可以获取大量的文档和支持。 Oracle&#xff1a;提供了专业的技术支持&#xff0c;但通常需要额外的费用。 易用性 MySQL&#xff1a;通常被认为是更易于学…...

【Java】—— File类与IO流:File类的实例化与常用方法

目录 1. java.io.File类的使用 1.1 概述 1.2 构造器 1.3 常用方法 1、获取文件和目录基本信息 2、列出目录的下一级 3、File类的重命名功能 4、判断功能的方法 5、创建、删除功能 1.4 练习 练习1&#xff1a; 练习2&#xff1a; 练习3&#xff1a; 1. java.io.Fil…...

C++设计模式——装饰器模式

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 什么是装饰器模式&#xff1f; 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;允许你向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种模式通过创…...

C#使用ITextSharp生成PDF文件实例详解

许多项目开发中需要生成PDF, 常规办法使用官方提供的Microsoft.Office.Interop.Worddll插件,但是这种方法需要完全安装OFFICE,另外版本不一致还会出现很多错误。一般不推荐使用。 下面介绍这种巧妙的用法,定能事半功倍。 本文使用ITextSharp完成功能。 首先,通过NuGet…...

10.9QT对话框以及QT的事件机制处理

MouseMoveEvent(鼠标移动事件) widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 设置窗口为无边框&#xff0c;去掉标题栏等装饰this->setWi…...

SiLM266x系列SiLM2661高压电池组前端充/放电高边NFET驱动器 为电池系统保护提供可靠性和设计灵活性

SiLM2661产品概述&#xff1a; SiLM2661能够灵活的应对不同应用场景对锂电池进行监控和保护的需求&#xff0c;为电池系统保护提供可靠性和设计灵活性。是用于电池充电/放电系统控制的低功耗、高边 N 沟道 FET 驱动器&#xff0c;高边保护功能可避免系统的接地引脚断开连接&am…...

linux中sed命令详解

sed 是 Linux 中的一个流编辑器&#xff08;stream editor&#xff09;&#xff0c;主要用于处理文本的编辑和转换。它可以从文件或标准输入读取内容&#xff0c;然后根据指定的模式和指令对数据进行处理&#xff0c;最后输出修改后的结果。它的强大之处在于可以通过脚本或命令…...