-
Notifications
You must be signed in to change notification settings - Fork 0
/
live2d-web.js
63 lines (55 loc) · 2.16 KB
/
live2d-web.js
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
// 封装异步加载资源的方法
function loadExternalResource(url, type) {
return new Promise((resolve, reject) => {
let tag;
if (type === "css") {
tag = document.createElement("link");
tag.rel = "stylesheet";
tag.href = url;
}
else if (type === "js") {
tag = document.createElement("script");
tag.src = url;
}
if (tag) {
tag.onload = () => resolve(url);
tag.onerror = () => reject(url);
document.head.appendChild(tag);
}
});
}
async function initLive2d(config) {
if (!config.live2d_path.endsWith("/")) config.live2d_path += "/";
if (!config.model_path.endsWith("/")) config.model_path += "/";
await loadExternalResource(config.live2d_path + "waifu.css", "css");
await loadExternalResource(config.live2d_path + "pixi.min.js", "js");
await loadExternalResource(config.live2d_path + "live2d.min.js", "js");
await loadExternalResource(config.live2d_path + "live2dcubismcore.min.js", "js");
await loadExternalResource(config.live2d_path + "pixi-live2d-display.min.js", "js");
window.PIXI = PIXI; // 将 PIXI 暴露到 window 上,这样插件就可以通过 window.PIXI.Ticker 来自动更新模型
await loadExternalResource(config.live2d_path + "waifu-tips.js", "js");
initWidget({
modelPath: config.model_path,
live2dPath: config.live2d_path,
tools: ["hitokoto", "switch-model", "switch-texture", "random", "shake", "info", "quit"]
});
console.log(`
く__,.ヘヽ. / ,ー、 〉
\ ', !-─‐-i / /´
/`ー' L//`ヽ、
/ /, /| , , ',
イ / /-‐/ i L_ ハ ヽ! i
レ ヘ 7イ`ト レ'ァ-ト、!ハ| |
!,/7 '0' ´0iソ| |
|.从" _ ,,,, / |./ |
レ'| i>.、,,__ _,.イ / .i |
レ'| | / k_7_/レ'ヽ, ハ. |
| |/i 〈|/ i ,.ヘ | i |
.|/ / i: ヘ! \ |
kヽ>、ハ _,.ヘ、 /、!
!'〈//`T´', \ `'7'ーr'
レ'ヽL__|___i,___,ンレ|ノ
ト-,/ |___./
'ー' !_,.:
`);
};