vue项目引入live2d保姆级教程--web端、多种方法

news2024/9/8 23:05:46

一、自建live2d运行

1、选择SDK——live2d Cubism SDK

 (1)链接:Live2D Cubism SDK | Live2D Cubism     

打开网站,它长这样:

(2)选择web ,到下个页面

(3)下载

勾选同意,填写邮箱,点击下载,得到一个压缩包

注意:如果你需要完整的的SDK按上文来就行,实际这篇文章主要用到内容是code文件夹里的js文件

2、文件复制与引用

(1)将下好的  live2dcubismcore.min.js 文件复制到public目录下。

如果步骤1内下的文件夹,找到core进入即可,如下图:

复制文件:

(2)安装依赖库:

npm add pixi-live2d-display pixi.js@6.x  // 下面的库目前只支持到6.x
 //安装pixi和pixi-live2d-display 
npm add pixi-live2d-display 

安装后会在node_modules中显示:

(3)index文件内引入

找到项目的index.html文件,一般在public文件夹内或和public同级,引入 live2dcubismcore.min.js 文件(如上图我的public内,有index.html文件)

  <body>
    <div id="app">
      <script src="live2dcubismcore.min.js"></script> 
            <!-- 这是引入的语句,需要写在body内的大div中,相对路径引入 -->
	</div>
  </body>

(4)App.vue文件内导入

找到App.vue文件,一般在:src文件夹内

<script>
//以下需要引入:
import * as PIXI from 'pixi.js';
import {Live2DModel} from 'pixi-live2d-display/cubism4';
window.PIXI = PIXI; // 为了pixi-live2d-display内部调用
let app; // 为了存储pixi实例
let model; // 为了存储live2d实例

export default {
//需要引入:
  async mounted() {
    app = new PIXI.Application({
      view: this.$refs.liveCanvas,//ref组件绑定,liveCanvas为下文自定义的
      autoStart: true,            //是否开启自动播放
      resizeTo: window,           
      backgroundAlpha: 0,  //透明度
    });

    // 这里是放live2d资源的地方,直接相对路径引用即可
    model = await Live2DModel.from('../public/HeiJiao/openSource.model3.json');

    app.stage.addChild(model);
    model.scale.set(0.2); // 调整缩放比例,0.1-0.2整体比较合适
  },
//需要引入
  beforeUnmount() {
    model?.destroy();
    app?.destroy();
  }
}
</script>
<template>
  <div class="app">
<!-- 自定义ref="liveCanvas": -->
     <canvas ref="liveCanvas"></canvas>
  </div>
</template>

<style scoped>
.app{
  background-color: #f1e6aa;
}
header {
  line-height: 1.5;
}
</style>

3、下载live2d资源包:

这里推荐大家去B站上找一些最新的live2d资源包,现在它内容的主流架构(5.0、4.0)大致这样

老版本的2.0这样:

记得更新:App.vue文件:

 model = await Live2DModel.from('../public/HeiJiao/openSource.model3.json');
//替换为你的model3.json文件的相对路径

4、运行与演示:

npm run dev运行项目,比如我的,如下图,还是比较大的,哈哈。

网上(github)的多数项目live2d版本比较老,更新时间都在3-6年前不等,文件版本多为cubism2.0(现cubism版本主流为4.0、5.0),直接使用可能存在不兼容等问题。不过老版本自有老版本的强大,直接使用就行!

二、直接套用:

基于:live2d_api

1、最懒人方法:

直接在你的项目index.html文件中引入,即可!

<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>

运行图:右下角的小人,就是啦~,最简单轻松,一行代码搞定!

2、高度自定义

本方法来源于:在vue项目添加live2d可交互的看板娘_vue项目live2d.min.j waifu-tips-CSDN博客

大家可以直接在文内顶部下载,放到对应位置,然后在:App.vue中引入即可:

<template>
  <div id="app">
    <PhyLive2d v-if="showLive2D" ref="live2d"></PhyLive2d>
        <!--  引用组件   -->
  </div>
</template>

<script>
import PhyLive2d from '@/components/Live2d/index.vue' 
//导入

export default {
  name: 'App',
  components: { PhyLive2d, ThemePicker },
    ……
    //其它代码
}
</script>

三、集成方法

                        ----便捷使用+自定义live2d模型(适用于cubism4.0、5.0版本)

(1)npm安装

直接安装  "live2d-render" ,这是一位B站大佬写的插件库,同时满足了便捷使用与live2d自定义,两个愿望一次满足!

npm install live2d-render
//npm安装

(2)修改App.vue文件:

<script>
//复制下文script的内容稍作修改即可,其余地方不用
import { onMounted } from 'vue';
import * as live2d from 'live2d-render';

export default {
setup() {
  onMounted(async () => {
     await live2d.initializeLive2D({
     BackgroundRGBA: [0.0, 0.0, 0.0, 0.0],
     ResourcesPath: '../public/HeiJiao/openSource.model3.json',
     //这是你自己的live2d资源文件,相对路径引用即可
       CanvasSize: {
        height: 500,
        width: 400
       }
    })
     console.log('finish loading');
  });
},

}
</script>
<template>
  <div class="app">
  </div>
</template>

(3)运行!

//控制台输入:
$Env:NODE_OPTIONS="--openssl-legacy-provider"

npm run dev

这个样子,如图:

来源:Live2dRender

贴几个地址:

1、很多live2d项目的源头api:live2d_api ,这是大佬!

2、目前start算最多的live2d项目,live2d-widget,超级好用的

3、live2d模型库,大多是2.0版本的:live2d资源库

4、也是一个live2d模型库,但内容相对更多一些:资源库

最后大家用的哪一个呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Power Tower

Problem - D - Codeforces 牛客和codeforce都有 递归处理l,r&#xff0c;终点是lr && mod1 用扩展欧拉定理 // Problem: D. Power Tower // Contest: Codeforces - Codeforces Round 454 (Div. 1, based on Technocup 2018 Elimination Round 4) // URL: https://c…

Linux基础操作指令

Linux的操作特点&#xff1a;纯命令行&#xff08;虽然也有图形化界面&#xff0c;但主要是工程师使用&#xff0c;意义不大&#xff09; windows的操作特点&#xff1a;图形化界面&#xff08;也有纯命令行的形式&#xff0c;但其更贴近大众&#xff0c;命令行学习成本高&…

用Python打造精彩动画与视频1.2 安装Python和基本配置

1.2 安装Python和基本配置 在本章节中&#xff0c;我们将介绍如何在不同操作系统上安装Python&#xff0c;并进行基本配置&#xff0c;以便你能够顺利开始使用Python进行编程和多媒体创作。 1.2.1 Python的安装 Python有多个版本&#xff0c;目前主要使用Python 3版本。以下…

贪心加暴力枚举

数据范围只有 1 0 5 10^5 105所以我们可以直接暴力枚举&#xff0c;然后我们知道假操作一定是在最开始进行&#xff0c;至于加多少次我们可以直接枚举 class Solution { public:int minOperations(int k) {// 只可能先加后叠加if (k 1) return 0;int ans 0x7ffffff;int now…

Windows FreeCAD 导入ODA File Converter 插件

0. 背景 需要打开.dwg 格式的文件&#xff0c;AutoCAD 又要收费&#xff0c;所以使用法国的 FreeCAD&#xff0c; 安装完成打开.dwg 格式的文件时&#xff0c;出现问题如图所示&#xff1a; 1.下载插件 插件 ODA File Converter 网址 windows 插件在最下面&#xff1a; 2…

Android 性能优化(二):LeakCanary【用于分析代码是否存在内存泄漏】程序无响应

目录 1&#xff09;内存相关的五种常见问题 2&#xff09;内存溢出和内存泄漏 3&#xff09;LeakCanary是什么? 4&#xff09;LeakCanary如何使用&#xff0c;如何分析&#xff1f; 5&#xff09;LeakCanary监测的内容 提问&#xff1a;程序有时候很卡&#xff0c;经常会出现…

再论pg归档日志的设置

用过ORACLE的朋友&#xff0c;第一次设置 PG的归档参数&#xff0c;如下&#xff1a; 。。。 wal_level replica archive_mode on archive_command test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f 。。。 对于归档&#xff0c;还要用…

ConvGRU原理与开源代码

ConvGRU 1. 算法简介与应用场景2. 算法原理2.1 GRU基础2.2 ConvGRU原理2.2.1 ConvGRU的结构2.2.2 卷积操作的优点 2.3 GRU与ConvGRU的对比分析2.4 ConvGRU的应用 3. PyTorch代码 仅需要网络源码的可以直接跳到末尾即可 需要ConvLSTM的可以参考我的另外一篇博客&#xff1a;小白…

Halcon Blob分析

斑点分析的思路&#xff1a;在图像中&#xff0c;相关对象的像素可以通过其灰度值来识别。例如下图的组织颗粒。这些颗粒是凉的&#xff0c;而液体是暗的&#xff0c;通过选择明亮像素(阈值)&#xff0c;可以很容易地检测到颗粒。在需要应用中&#xff0c;这种简单的暗像素和亮…

成像光学:LCD的工作原理与结构图解

一、主流显示面板技术&#xff1a;LCD&#xff0c;OLED&#xff0c;MicroLED 二、主流显示屏的发展趋势 三、LCD堆叠结构&#xff08;以比较流行的TFT-LCD为例&#xff09; 沿光路方向介绍&#xff1a;背光&#xff0c;下偏光片&#xff08;polarizer&#xff09;&#xff0c;…

python实现图像分割算法2

python实现随机步行算法 随机步行算法数学模型Python 实现详细解释优缺点应用领域随机步行算法是一种常用于图像分割和图像分析的算法。它通过模拟随机游走来确定图像中每个像素的标签或类别。随机步行算法特别适合用于解决有种子标记的图像分割问题,其中用户提供一些初始标记…

【Python】基础语法(上)

本篇文章讲解以下知识&#xff1a; &#xff08;1&#xff09;初始编码 &#xff08;2&#xff09;输出 &#xff08;3&#xff09;初识数据类型 一&#xff1a;初识编码 在计算机中所有的数据本质上都是以0和1的组合来存储。 比如&#xff1a;在一个文件中有以下内容&am…

力扣SQL50 上级经理已离职的公司员工 一题双解

Problem: 1978. 上级经理已离职的公司员工 Code -- 方法 1 -- select e1.employee_id -- from employees e1 -- left join employees e2 -- on e1.manager_id e2.employee_id -- where e1.salary < 30000 -- and e1.manager_id is not null -- and e2.employee_id is…

SpringBoot 整合 Redis 实现验证码登录功能

一、整合Redis 在pom.xml中添加Redis相关依赖&#xff1b; <!--Spring Data Redis依赖配置--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>…

103.qt qml-最全Table新增下拉复制功能

在上篇文章102.qt qml-最全Table交互之多列固定、行列拖拽、自定义委托、标题交互使用教程_qt 表格控件 拖动列-CSDN博客 我们实现了大部分功能,所以本章实现下拉复制功能。 demo截图如下所示: 支持跨界复制,如果下拉的位置大于Table则会动画向下移动,具体可以参考视频链接…

颠覆未来计算!CRAM技术摒弃冯·诺依曼模型,20年研究终迎突破

未来科技&#xff1a;AI计算需求激增&#xff0c;数据中心耗电量堪比派对狂饮&#xff01;明尼苏达大学研究团队或携革命性设备&#xff0c;以惊人能效解决AI能耗难题&#xff01; 研究人员设计了一种新型的"计算随机存取存储器"&#xff08;CRAM&#xff09;原型芯…

查看路由表 netstat -r

“Kernel IP routing table” 是Linux系统中用于展示和配置IP路由的表。它告诉操作系统如何将数据包从一个网络接口发送到另一个网络或主机。下面是对您给出的路由表条目的解释&#xff1a; Destination&#xff1a;目的地地址&#xff0c;可以是具体的IP地址&#xff0c;也可…

Codeforces 962 div3 A-F

A 题目分析 签到 C代码 #include<iostream> using namespace std; int main(){int t;cin>>t;while(t--){int n;cin>>n;cout<<n/4n%4/2<<endl;} } B 题目分析 将n*n的方格分成若干个k*k的方格&#xff0c;每个k*k的方格中所有的数都相同 遍历…

小主机SSD固态硬盘选购攻略,希捷酷鱼 530 SSD固态硬盘表现优秀【附系统无损迁移教程】

小主机SSD固态硬盘选购攻略&#xff0c;希捷酷鱼 530 SSD固态硬盘表现优秀【附系统无损迁移教程】 哈喽小伙伴们好&#xff0c;我是Stark-C~ 这几年随着以零刻为首的小主机市场的兴起&#xff0c;小主机相关的配置周边需求也是越来越大&#xff0c;就比如说SSD固态硬盘就是其…

爬虫程序在采集亚马逊站点数据时如何绕过验证码限制?

引言 在电商数据分析中&#xff0c;爬虫技术的应用日益广泛。通过爬虫技术&#xff0c;我们可以高效地获取大量的电商平台数据&#xff0c;这些数据对于市场分析、竞争情报、价格监控等有着极其重要的意义。亚马逊作为全球最大的电商平台之一&#xff0c;是数据采集的重要目标…