少女祈祷中...

使用一些主题自带的Live2D开关

以我自己目前使用的主题Reimu为例:

reimu-Live2D
reimu-Live2D
https://github.com/D-Sketon/hexo-theme-reimu?tab=readme-ov-file#live2d

仅需在 _config.reimu.yml 中调整以下设置即可:

1
2
live2d:
enable: true

保存并提交后就能在部署的网页中看到Live2D小人啦~

但是这样得到的Live2D看板娘无法自定义,那么要怎么自定义呢?

有一种方式是通过修改 _config.reimu.yml 中的以下内容(不同主题的位置以及实现方法不同):

1
2
3
4
5
6
vendor:
fastly_jsdelivr_gh: https://fastly.jsdelivr.net/gh/
js:
live2d:
base: fastly_jsdelivr_gh|D-Sketon/plugin-live2d/
js: fastly_jsdelivr_gh|D-Sketon/plugin-live2d/js/live2d-autoload.js

将这些内容修改为自己的CDN链接即可,可以参考以下内容:

使用CDN
使用CDN
https://github.com/stevenjoezhang/live2d-widget?tab=readme-ov-file#%E4%BD%BF%E7%94%A8-cdn

但是我认为这太麻烦了(其实是我搞了半天没搞好),我选择一些更简单的方式实现(

使用OhMyLive2D组件

为你的个人博客添加一个Live2D看板娘
为你的个人博客添加一个Live2D看板娘
https://www.bilibili.com/video/BV1TD421M7zm/

我们可以来到他的官网查看在Hexo上的部署教程

首先安装

1
npm install hexo-oh-my-live2d

然后在 _config.yml 中添加

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# hexo-oh-my-live2d 配置
OhMyLive2d:
enable: true
CDN: https://unpkg.com/oh-my-live2d
option:
dockedPosition: 'right' # 模型停靠位置 默认值: 'right' 可选值: 'left' | 'right'
# menus: |
# (currentModel) =>{
# console.log(currentModel);
# }

# menus:
# items: |
# (defaultItems)=>{
# return [
# ...defaultItems,
# {
# id: 'github',
# icon: 'github-fill',
# title: '我的github',
# onClick: ()=>window.open('https://github.com/hacxy')
# }
# ]
# }

# items:
# - id: 'github'
# icon: 'github-fill'
# title: '我的github'
# onClick: ()=>window.open('https://github.com/hacxy')

mobileDisplay: true # 是否在移动端显示
models:
- path: https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
mobilePosition: [-10, 23] # 移动端时模型在舞台中的位置。 默认值: [0,0] [横坐标, 纵坐标]
mobileScale: 0.1 # 移动端时模型的缩放比例 默认值: 0.1
mobileStageStyle: # 移动端时舞台的样式
width: 180
height: 166
motionPreloadStrategy: IDLE # 动作预加载策略 默认值: IDLE 可选值: ALL | IDLE | NONE
position: [-10, 35] # 模型在舞台中的位置。 默认值: [0,0] [横坐标, 纵坐标]
scale: 0.15 # 模型的缩放比例 默认值: 0.1
# showHitAreaFrames: false # 是否显示点击区域 默认值: false
stageStyle:
width: 250
height: 250
- path: 'https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json'
scale: 0.12
position: [0, 0]
stageStyle:
width: 250
mobileScale: 0.08
mobilePosition: [0, 0]
mobileStageStyle: # 移动端时舞台的样式
width: 180
- path: 'https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json'
scale: 0.12
position: [0, 0]
mobileScale: 0.08
mobilePosition: [0, 0]
mobileStageStyle: # 移动端时舞台的样式
width: 180
stageStyle:
width: 250
parentElement: document.body #为组件提供一个父元素,如果未指定则默认挂载到 body 中
primaryColor: 'var(--btn-bg)' # 主题色 支持变量
sayHello: false # 是否在初始化阶段打印项目信息
tips:
style:
width: 230
height: 120
left: calc(50% - 20px)
top: -100px
mobileStyle:
width: 180
height: 80
left: calc(50% - 30px)
top: -100px
idleTips:
interval: 15000
# message:
# - 你好呀~
# - 欢迎来到我的小站~
# 自定义提示语 需要 引入 axios 库 ,也可以使用其他方法
message: |
function(){
return axios.get('https://v1.hitokoto.cn?c=i')
.then(function (response) {
return response.data.hitokoto ;
})
.catch(function (error) {
console.error(error);
});
}
# wordTheDay: true
# 自定义 https://v1.hitokoto.cn 数据
# wordTheDay: |
# function(wordTheDayData){
# return `${wordTheDayData.hitokoto} by.${wordTheDayData.from}`;
# }
# 具体方法请看: https://oml2d.com/guide/loadModel.html#oml2d-%E5%AE%9E%E4%BE%8B
# then: |
# oml2d.onStageSlideIn(() => {
# oml2d.tipsMessage('Oh My Live2D !!!', 3000, 10);
# });

自定义(OhMyLive2D)

首先将Live2D模型放在根目录的 source 目录下

模型怎么来?可以参考Live2d-model

Live2D模型模型文件夹结构大致如下:

1
2
3
4
5
6
7
8
9
10
model/
- motions/
- 1.mtn
- 2.mtn
- ...
- model_name_number/
- xxx.png
- model.json
- physice.json
- model.moc

_config.ymlskip_render 添加模型文件夹

1
2
skip_render:
- model/**

然后在 _config.ymlOhMyLive2d 配置中

source 改为 ''

path 为你的 model.json 路径

1
2
3
4
5
OhMyLive2d:
enable: true
source: ''
models:
- path: /model/model.json

保存并提交后就能在部署的网页中看到自己的Live2D小人啦~