@seayoo-web/pixi-live2d 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3608 @@
1
+ import { M as pt, E as Tt, C as Ie, O as Le, P as Te, T as Ee, u as Et, a as vt } from "./index-CuNStzp0.js";
2
+ var H = Math.pow, b = (s, t, e) => new Promise((i, r) => {
3
+ var a = (l) => {
4
+ try {
5
+ o(e.next(l));
6
+ } catch (h) {
7
+ r(h);
8
+ }
9
+ }, n = (l) => {
10
+ try {
11
+ o(e.throw(l));
12
+ } catch (h) {
13
+ r(h);
14
+ }
15
+ }, o = (l) => l.done ? i(l.value) : Promise.resolve(l.value).then(a, n);
16
+ o((e = e.apply(s, t)).next());
17
+ });
18
+ class Ft {
19
+ constructor() {
20
+ this._breathParameters = [], this._currentTime = 0;
21
+ }
22
+ static create() {
23
+ return new Ft();
24
+ }
25
+ setParameters(t) {
26
+ this._breathParameters = t;
27
+ }
28
+ getParameters() {
29
+ return this._breathParameters;
30
+ }
31
+ updateParameters(t, e) {
32
+ this._currentTime += e;
33
+ const i = this._currentTime * 2 * 3.14159;
34
+ for (let r = 0; r < this._breathParameters.length; ++r) {
35
+ const a = this._breathParameters[r];
36
+ t.addParameterValueById(a.parameterId, a.offset + a.peak * Math.sin(i / a.cycle), a.weight);
37
+ }
38
+ }
39
+ }
40
+ class st {
41
+ constructor(t, e, i, r, a) {
42
+ this.parameterId = t ?? void 0, this.offset = e ?? 0, this.peak = i ?? 0, this.cycle = r ?? 0, this.weight = a ?? 0;
43
+ }
44
+ }
45
+ const St = class {
46
+ static create(s) {
47
+ return new St(s);
48
+ }
49
+ setBlinkingInterval(s) {
50
+ this._blinkingIntervalSeconds = s;
51
+ }
52
+ setBlinkingSetting(s, t, e) {
53
+ this._closingSeconds = s, this._closedSeconds = t, this._openingSeconds = e;
54
+ }
55
+ setParameterIds(s) {
56
+ this._parameterIds = s;
57
+ }
58
+ getParameterIds() {
59
+ return this._parameterIds;
60
+ }
61
+ updateParameters(s, t) {
62
+ this._userTimeSeconds += t;
63
+ let e, i = 0;
64
+ switch (this._blinkingState) {
65
+ case A.EyeState_Closing:
66
+ i = (this._userTimeSeconds - this._stateStartTimeSeconds) / this._closingSeconds, i >= 1 && (i = 1, this._blinkingState = A.EyeState_Closed, this._stateStartTimeSeconds = this._userTimeSeconds), e = 1 - i;
67
+ break;
68
+ case A.EyeState_Closed:
69
+ i = (this._userTimeSeconds - this._stateStartTimeSeconds) / this._closedSeconds, i >= 1 && (this._blinkingState = A.EyeState_Opening, this._stateStartTimeSeconds = this._userTimeSeconds), e = 0;
70
+ break;
71
+ case A.EyeState_Opening:
72
+ i = (this._userTimeSeconds - this._stateStartTimeSeconds) / this._openingSeconds, i >= 1 && (i = 1, this._blinkingState = A.EyeState_Interval, this._nextBlinkingTime = this.determinNextBlinkingTiming()), e = i;
73
+ break;
74
+ case A.EyeState_Interval:
75
+ this._nextBlinkingTime < this._userTimeSeconds && (this._blinkingState = A.EyeState_Closing, this._stateStartTimeSeconds = this._userTimeSeconds), e = 1;
76
+ break;
77
+ case A.EyeState_First:
78
+ default:
79
+ this._blinkingState = A.EyeState_Interval, this._nextBlinkingTime = this.determinNextBlinkingTiming(), e = 1;
80
+ break;
81
+ }
82
+ St.CloseIfZero || (e = -e);
83
+ for (let r = 0; r < this._parameterIds.length; ++r)
84
+ s.setParameterValueById(this._parameterIds[r], e);
85
+ }
86
+ constructor(s) {
87
+ var t, e;
88
+ this._blinkingState = A.EyeState_First, this._nextBlinkingTime = 0, this._stateStartTimeSeconds = 0, this._blinkingIntervalSeconds = 4, this._closingSeconds = 0.1, this._closedSeconds = 0.05, this._openingSeconds = 0.15, this._userTimeSeconds = 0, this._parameterIds = [], s != null && (this._parameterIds = (e = (t = s.getEyeBlinkParameters()) == null ? void 0 : t.slice()) != null ? e : this._parameterIds);
89
+ }
90
+ determinNextBlinkingTiming() {
91
+ const s = Math.random();
92
+ return this._userTimeSeconds + s * (2 * this._blinkingIntervalSeconds - 1);
93
+ }
94
+ };
95
+ let ue = St;
96
+ ue.CloseIfZero = !0;
97
+ var A = /* @__PURE__ */ ((s) => (s[s.EyeState_First = 0] = "EyeState_First", s[s.EyeState_Interval = 1] = "EyeState_Interval", s[s.EyeState_Closing = 2] = "EyeState_Closing", s[s.EyeState_Closed = 3] = "EyeState_Closed", s[s.EyeState_Opening = 4] = "EyeState_Opening", s))(A || {});
98
+ const Fe = 1e-3, Wt = 0.5;
99
+ class Dt {
100
+ static create(t) {
101
+ const e = new Dt();
102
+ typeof t.FadeInTime == "number" && (e._fadeTimeSeconds = t.FadeInTime, e._fadeTimeSeconds <= 0 && (e._fadeTimeSeconds = Wt));
103
+ const i = t.Groups, r = i.length;
104
+ for (let a = 0; a < r; ++a) {
105
+ const n = i[a], o = n.length;
106
+ let l = 0;
107
+ for (let h = 0; h < o; ++h) {
108
+ const u = n[h], c = new _t();
109
+ c.partId = u.Id;
110
+ const d = u.Link;
111
+ if (d) {
112
+ const _ = d.length;
113
+ for (let p = 0; p < _; ++p) {
114
+ const x = new _t();
115
+ x.partId = d[p], c.link.push(x);
116
+ }
117
+ }
118
+ e._partGroups.push(c), ++l;
119
+ }
120
+ e._partGroupCounts.push(l);
121
+ }
122
+ return e;
123
+ }
124
+ updateParameters(t, e) {
125
+ t != this._lastModel && this.reset(t), this._lastModel = t, e < 0 && (e = 0);
126
+ let i = 0;
127
+ for (let r = 0; r < this._partGroupCounts.length; r++) {
128
+ const a = this._partGroupCounts[r];
129
+ this.doFade(t, e, i, a), i += a;
130
+ }
131
+ this.copyPartOpacities(t);
132
+ }
133
+ reset(t) {
134
+ let e = 0;
135
+ for (let i = 0; i < this._partGroupCounts.length; ++i) {
136
+ const r = this._partGroupCounts[i];
137
+ for (let a = e; a < e + r; ++a) {
138
+ this._partGroups[a].initialize(t);
139
+ const n = this._partGroups[a].partIndex, o = this._partGroups[a].parameterIndex;
140
+ if (!(n < 0)) {
141
+ t.setPartOpacityByIndex(n, a == e ? 1 : 0), t.setParameterValueByIndex(o, a == e ? 1 : 0);
142
+ for (let l = 0; l < this._partGroups[a].link.length; ++l)
143
+ this._partGroups[a].link[l].initialize(t);
144
+ }
145
+ }
146
+ e += r;
147
+ }
148
+ }
149
+ copyPartOpacities(t) {
150
+ for (let e = 0; e < this._partGroups.length; ++e) {
151
+ const i = this._partGroups[e];
152
+ if (i.link.length == 0)
153
+ continue;
154
+ const r = this._partGroups[e].partIndex, a = t.getPartOpacityByIndex(r);
155
+ for (let n = 0; n < i.link.length; ++n) {
156
+ const l = i.link[n].partIndex;
157
+ l < 0 || t.setPartOpacityByIndex(l, a);
158
+ }
159
+ }
160
+ }
161
+ doFade(t, e, i, r) {
162
+ let a = -1, n = 1;
163
+ const o = 0.5, l = 0.15;
164
+ for (let h = i; h < i + r; ++h) {
165
+ const u = this._partGroups[h].partIndex, c = this._partGroups[h].parameterIndex;
166
+ if (t.getParameterValueByIndex(c) > Fe) {
167
+ if (a >= 0)
168
+ break;
169
+ a = h, n = t.getPartOpacityByIndex(u), n += e / this._fadeTimeSeconds, n > 1 && (n = 1);
170
+ }
171
+ }
172
+ a < 0 && (a = 0, n = 1);
173
+ for (let h = i; h < i + r; ++h) {
174
+ const u = this._partGroups[h].partIndex;
175
+ if (a == h)
176
+ t.setPartOpacityByIndex(u, n);
177
+ else {
178
+ let c = t.getPartOpacityByIndex(u), d;
179
+ n < o ? d = n * (o - 1) / o + 1 : d = (1 - n) * o / (1 - o), (1 - d) * (1 - n) > l && (d = 1 - l / (1 - n)), c > d && (c = d), t.setPartOpacityByIndex(u, c);
180
+ }
181
+ }
182
+ }
183
+ constructor() {
184
+ this._fadeTimeSeconds = Wt, this._lastModel = void 0, this._partGroups = [], this._partGroupCounts = [];
185
+ }
186
+ }
187
+ class _t {
188
+ constructor(t) {
189
+ this.parameterIndex = 0, this.partIndex = 0, this.partId = "", this.link = [], t != null && this.assignment(t);
190
+ }
191
+ assignment(t) {
192
+ return this.partId = t.partId, this.link = t.link.map((e) => e.clone()), this;
193
+ }
194
+ initialize(t) {
195
+ this.parameterIndex = t.getParameterIndex(this.partId), this.partIndex = t.getPartIndex(this.partId), t.setParameterValueByIndex(this.parameterIndex, 1);
196
+ }
197
+ clone() {
198
+ const t = new _t();
199
+ return t.partId = this.partId, t.parameterIndex = this.parameterIndex, t.partIndex = this.partIndex, t.link = this.link.map((e) => e.clone()), t;
200
+ }
201
+ }
202
+ class y {
203
+ constructor(t, e) {
204
+ this.x = t || 0, this.y = e || 0;
205
+ }
206
+ add(t) {
207
+ const e = new y(0, 0);
208
+ return e.x = this.x + t.x, e.y = this.y + t.y, e;
209
+ }
210
+ substract(t) {
211
+ const e = new y(0, 0);
212
+ return e.x = this.x - t.x, e.y = this.y - t.y, e;
213
+ }
214
+ multiply(t) {
215
+ const e = new y(0, 0);
216
+ return e.x = this.x * t.x, e.y = this.y * t.y, e;
217
+ }
218
+ multiplyByScaler(t) {
219
+ return this.multiply(new y(t, t));
220
+ }
221
+ division(t) {
222
+ const e = new y(0, 0);
223
+ return e.x = this.x / t.x, e.y = this.y / t.y, e;
224
+ }
225
+ divisionByScalar(t) {
226
+ return this.division(new y(t, t));
227
+ }
228
+ getLength() {
229
+ return Math.sqrt(this.x * this.x + this.y * this.y);
230
+ }
231
+ getDistanceWith(t) {
232
+ return Math.sqrt((this.x - t.x) * (this.x - t.x) + (this.y - t.y) * (this.y - t.y));
233
+ }
234
+ dot(t) {
235
+ return this.x * t.x + this.y * t.y;
236
+ }
237
+ normalize() {
238
+ const t = Math.pow(this.x * this.x + this.y * this.y, 0.5);
239
+ this.x = this.x / t, this.y = this.y / t;
240
+ }
241
+ isEqual(t) {
242
+ return this.x == t.x && this.y == t.y;
243
+ }
244
+ isNotEqual(t) {
245
+ return !this.isEqual(t);
246
+ }
247
+ }
248
+ const gt = class {
249
+ static range(s, t, e) {
250
+ return s < t ? s = t : s > e && (s = e), s;
251
+ }
252
+ static sin(s) {
253
+ return Math.sin(s);
254
+ }
255
+ static cos(s) {
256
+ return Math.cos(s);
257
+ }
258
+ static abs(s) {
259
+ return Math.abs(s);
260
+ }
261
+ static sqrt(s) {
262
+ return Math.sqrt(s);
263
+ }
264
+ static cbrt(s) {
265
+ if (s === 0)
266
+ return s;
267
+ let t = s;
268
+ const e = t < 0;
269
+ e && (t = -t);
270
+ let i;
271
+ return t === 1 / 0 ? i = 1 / 0 : (i = Math.exp(Math.log(t) / 3), i = (t / (i * i) + 2 * i) / 3), e ? -i : i;
272
+ }
273
+ static getEasingSine(s) {
274
+ return s < 0 ? 0 : s > 1 ? 1 : 0.5 - 0.5 * this.cos(s * Math.PI);
275
+ }
276
+ static max(s, t) {
277
+ return s > t ? s : t;
278
+ }
279
+ static min(s, t) {
280
+ return s > t ? t : s;
281
+ }
282
+ static degreesToRadian(s) {
283
+ return s / 180 * Math.PI;
284
+ }
285
+ static radianToDegrees(s) {
286
+ return s * 180 / Math.PI;
287
+ }
288
+ static directionToRadian(s, t) {
289
+ const e = Math.atan2(t.y, t.x), i = Math.atan2(s.y, s.x);
290
+ let r = e - i;
291
+ for (; r < -Math.PI; )
292
+ r += Math.PI * 2;
293
+ for (; r > Math.PI; )
294
+ r -= Math.PI * 2;
295
+ return r;
296
+ }
297
+ static directionToDegrees(s, t) {
298
+ const e = this.directionToRadian(s, t);
299
+ let i = this.radianToDegrees(e);
300
+ return t.x - s.x > 0 && (i = -i), i;
301
+ }
302
+ static radianToDirection(s) {
303
+ const t = new y();
304
+ return t.x = this.sin(s), t.y = this.cos(s), t;
305
+ }
306
+ static quadraticEquation(s, t, e) {
307
+ return this.abs(s) < gt.Epsilon ? this.abs(t) < gt.Epsilon ? -e : -e / t : -(t + this.sqrt(t * t - 4 * s * e)) / (2 * s);
308
+ }
309
+ static cardanoAlgorithmForBezier(s, t, e, i) {
310
+ if (this.sqrt(s) < gt.Epsilon)
311
+ return this.range(this.quadraticEquation(t, e, i), 0, 1);
312
+ const r = t / s, a = e / s, n = i / s, o = (3 * a - r * r) / 3, l = o / 3, h = (2 * r * r * r - 9 * r * a + 27 * n) / 27, u = h / 2, c = u * u + l * l * l, d = 0.5, _ = d + 0.01;
313
+ if (c < 0) {
314
+ const f = -o / 3, v = f * f * f, P = this.sqrt(v), I = -h / (2 * P), M = this.range(I, -1, 1), V = Math.acos(M), N = 2 * this.cbrt(P), Yt = N * this.cos(V / 3) - r / 3;
315
+ if (this.abs(Yt - d) < _)
316
+ return this.range(Yt, 0, 1);
317
+ const Ht = N * this.cos((V + 2 * Math.PI) / 3) - r / 3;
318
+ if (this.abs(Ht - d) < _)
319
+ return this.range(Ht, 0, 1);
320
+ const we = N * this.cos((V + 4 * Math.PI) / 3) - r / 3;
321
+ return this.range(we, 0, 1);
322
+ }
323
+ if (c == 0) {
324
+ let f;
325
+ u < 0 ? f = this.cbrt(-u) : f = -this.cbrt(u);
326
+ const v = 2 * f - r / 3;
327
+ if (this.abs(v - d) < _)
328
+ return this.range(v, 0, 1);
329
+ const P = -f - r / 3;
330
+ return this.range(P, 0, 1);
331
+ }
332
+ const p = this.sqrt(c), x = this.cbrt(p - u), g = this.cbrt(p + u), m = x - g - r / 3;
333
+ return this.range(m, 0, 1);
334
+ }
335
+ constructor() {
336
+ }
337
+ };
338
+ let S = gt;
339
+ S.Epsilon = 1e-5;
340
+ class R {
341
+ constructor() {
342
+ this._tr = new Float32Array(16), this.loadIdentity();
343
+ }
344
+ static multiply(t, e, i) {
345
+ const r = new Float32Array([
346
+ 0,
347
+ 0,
348
+ 0,
349
+ 0,
350
+ 0,
351
+ 0,
352
+ 0,
353
+ 0,
354
+ 0,
355
+ 0,
356
+ 0,
357
+ 0,
358
+ 0,
359
+ 0,
360
+ 0,
361
+ 0
362
+ ]), a = 4;
363
+ for (let n = 0; n < a; ++n)
364
+ for (let o = 0; o < a; ++o)
365
+ for (let l = 0; l < a; ++l)
366
+ r[o + n * 4] += t[l + n * 4] * e[o + l * 4];
367
+ for (let n = 0; n < 16; ++n)
368
+ i[n] = r[n];
369
+ }
370
+ loadIdentity() {
371
+ const t = new Float32Array([
372
+ 1,
373
+ 0,
374
+ 0,
375
+ 0,
376
+ 0,
377
+ 1,
378
+ 0,
379
+ 0,
380
+ 0,
381
+ 0,
382
+ 1,
383
+ 0,
384
+ 0,
385
+ 0,
386
+ 0,
387
+ 1
388
+ ]);
389
+ this.setMatrix(t);
390
+ }
391
+ setMatrix(t) {
392
+ for (let e = 0; e < 16; ++e)
393
+ this._tr[e] = t[e];
394
+ }
395
+ getArray() {
396
+ return this._tr;
397
+ }
398
+ getScaleX() {
399
+ return this._tr[0];
400
+ }
401
+ getScaleY() {
402
+ return this._tr[5];
403
+ }
404
+ getTranslateX() {
405
+ return this._tr[12];
406
+ }
407
+ getTranslateY() {
408
+ return this._tr[13];
409
+ }
410
+ transformX(t) {
411
+ return this._tr[0] * t + this._tr[12];
412
+ }
413
+ transformY(t) {
414
+ return this._tr[5] * t + this._tr[13];
415
+ }
416
+ invertTransformX(t) {
417
+ return (t - this._tr[12]) / this._tr[0];
418
+ }
419
+ invertTransformY(t) {
420
+ return (t - this._tr[13]) / this._tr[5];
421
+ }
422
+ translateRelative(t, e) {
423
+ const i = new Float32Array([
424
+ 1,
425
+ 0,
426
+ 0,
427
+ 0,
428
+ 0,
429
+ 1,
430
+ 0,
431
+ 0,
432
+ 0,
433
+ 0,
434
+ 1,
435
+ 0,
436
+ t,
437
+ e,
438
+ 0,
439
+ 1
440
+ ]);
441
+ R.multiply(i, this._tr, this._tr);
442
+ }
443
+ translate(t, e) {
444
+ this._tr[12] = t, this._tr[13] = e;
445
+ }
446
+ translateX(t) {
447
+ this._tr[12] = t;
448
+ }
449
+ translateY(t) {
450
+ this._tr[13] = t;
451
+ }
452
+ scaleRelative(t, e) {
453
+ const i = new Float32Array([
454
+ t,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ e,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 1,
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 0,
469
+ 1
470
+ ]);
471
+ R.multiply(i, this._tr, this._tr);
472
+ }
473
+ scale(t, e) {
474
+ this._tr[0] = t, this._tr[5] = e;
475
+ }
476
+ multiplyByMatrix(t) {
477
+ R.multiply(t.getArray(), this._tr, this._tr);
478
+ }
479
+ clone() {
480
+ const t = new R();
481
+ for (let e = 0; e < this._tr.length; e++)
482
+ t._tr[e] = this._tr[e];
483
+ return t;
484
+ }
485
+ }
486
+ class At {
487
+ initialize(t) {
488
+ this._model = t;
489
+ }
490
+ drawModel() {
491
+ this.getModel() != null && this.doDrawModel();
492
+ }
493
+ setMvpMatrix(t) {
494
+ this._mvpMatrix4x4.setMatrix(t.getArray());
495
+ }
496
+ getMvpMatrix() {
497
+ return this._mvpMatrix4x4;
498
+ }
499
+ setModelColor(t, e, i, r) {
500
+ t < 0 ? t = 0 : t > 1 && (t = 1), e < 0 ? e = 0 : e > 1 && (e = 1), i < 0 ? i = 0 : i > 1 && (i = 1), r < 0 ? r = 0 : r > 1 && (r = 1), this._modelColor.R = t, this._modelColor.G = e, this._modelColor.B = i, this._modelColor.A = r;
501
+ }
502
+ getModelColor() {
503
+ return Object.assign({}, this._modelColor);
504
+ }
505
+ setIsPremultipliedAlpha(t) {
506
+ this._isPremultipliedAlpha = t;
507
+ }
508
+ isPremultipliedAlpha() {
509
+ return this._isPremultipliedAlpha;
510
+ }
511
+ setIsCulling(t) {
512
+ this._isCulling = t;
513
+ }
514
+ isCulling() {
515
+ return this._isCulling;
516
+ }
517
+ setAnisotropy(t) {
518
+ this._anisortopy = t;
519
+ }
520
+ getAnisotropy() {
521
+ return this._anisortopy;
522
+ }
523
+ getModel() {
524
+ return this._model;
525
+ }
526
+ constructor() {
527
+ this._isCulling = !1, this._isPremultipliedAlpha = !1, this._anisortopy = 0, this._modelColor = new at(), this._mvpMatrix4x4 = new R(), this._mvpMatrix4x4.loadIdentity();
528
+ }
529
+ }
530
+ var z = /* @__PURE__ */ ((s) => (s[s.CubismBlendMode_Normal = 0] = "CubismBlendMode_Normal", s[s.CubismBlendMode_Additive = 1] = "CubismBlendMode_Additive", s[s.CubismBlendMode_Multiplicative = 2] = "CubismBlendMode_Multiplicative", s))(z || {});
531
+ class at {
532
+ constructor() {
533
+ this.R = 1, this.G = 1, this.B = 1, this.A = 1;
534
+ }
535
+ }
536
+ let O = !1, K = !1, Q;
537
+ const xt = {
538
+ vertexOffset: 0,
539
+ vertexStep: 2
540
+ };
541
+ class ht {
542
+ static startUp(t) {
543
+ if (O)
544
+ return rt("CubismFramework.startUp() is already done."), O;
545
+ if (Live2DCubismCore._isStarted)
546
+ return O = !0, !0;
547
+ if (Live2DCubismCore._isStarted = !0, Q = t, Q && Live2DCubismCore.Logging.csmSetLogFunction(Q.logFunction), O = !0, O) {
548
+ const e = Live2DCubismCore.Version.csmGetVersion(), i = (e & 4278190080) >> 24, r = (e & 16711680) >> 16, a = e & 65535, n = e;
549
+ rt("Live2D Cubism Core version: {0}.{1}.{2} ({3})", ("00" + i).slice(-2), ("00" + r).slice(-2), ("0000" + a).slice(-4), n);
550
+ }
551
+ return rt("CubismFramework.startUp() is complete."), O;
552
+ }
553
+ static cleanUp() {
554
+ O = !1, K = !1, Q = void 0;
555
+ }
556
+ static initialize() {
557
+ if (!O) {
558
+ nt("CubismFramework is not started.");
559
+ return;
560
+ }
561
+ if (K) {
562
+ nt("CubismFramework.initialize() skipped, already initialized.");
563
+ return;
564
+ }
565
+ K = !0, rt("CubismFramework.initialize() is complete.");
566
+ }
567
+ static dispose() {
568
+ if (!O) {
569
+ nt("CubismFramework is not started.");
570
+ return;
571
+ }
572
+ if (!K) {
573
+ nt("CubismFramework.dispose() skipped, not initialized.");
574
+ return;
575
+ }
576
+ At.staticRelease(), K = !1, rt("CubismFramework.dispose() is complete.");
577
+ }
578
+ static isStarted() {
579
+ return O;
580
+ }
581
+ static isInitialized() {
582
+ return K;
583
+ }
584
+ static coreLogFunction(t) {
585
+ Live2DCubismCore.Logging.csmGetLogFunction() && Live2DCubismCore.Logging.csmGetLogFunction()(t);
586
+ }
587
+ static getLoggingLevel() {
588
+ return Q != null ? Q.loggingLevel : Y.LogLevel_Off;
589
+ }
590
+ constructor() {
591
+ }
592
+ }
593
+ var Y = /* @__PURE__ */ ((s) => (s[s.LogLevel_Verbose = 0] = "LogLevel_Verbose", s[s.LogLevel_Debug = 1] = "LogLevel_Debug", s[s.LogLevel_Info = 2] = "LogLevel_Info", s[s.LogLevel_Warning = 3] = "LogLevel_Warning", s[s.LogLevel_Error = 4] = "LogLevel_Error", s[s.LogLevel_Off = 5] = "LogLevel_Off", s))(Y || {});
594
+ const ct = () => {
595
+ };
596
+ function ns(s, ...t) {
597
+ dt.print(Y.LogLevel_Verbose, "[CSM][V]" + s + `
598
+ `, t);
599
+ }
600
+ function qt(s, ...t) {
601
+ dt.print(Y.LogLevel_Debug, "[CSM][D]" + s + `
602
+ `, t);
603
+ }
604
+ function rt(s, ...t) {
605
+ dt.print(Y.LogLevel_Info, "[CSM][I]" + s + `
606
+ `, t);
607
+ }
608
+ function nt(s, ...t) {
609
+ dt.print(Y.LogLevel_Warning, "[CSM][W]" + s + `
610
+ `, t);
611
+ }
612
+ function tt(s, ...t) {
613
+ dt.print(Y.LogLevel_Error, "[CSM][E]" + s + `
614
+ `, t);
615
+ }
616
+ class dt {
617
+ static print(t, e, i) {
618
+ if (t < ht.getLoggingLevel())
619
+ return;
620
+ const r = ht.coreLogFunction;
621
+ if (!r)
622
+ return;
623
+ const a = e.replace(/{(\d+)}/g, (n, o) => i[o]);
624
+ r(a);
625
+ }
626
+ static dumpBytes(t, e, i) {
627
+ for (let r = 0; r < i; r++)
628
+ r % 16 == 0 && r > 0 ? this.print(t, `
629
+ `) : r % 8 == 0 && r > 0 && this.print(t, " "), this.print(t, "{0} ", [e[r] & 255]);
630
+ this.print(t, `
631
+ `);
632
+ }
633
+ constructor() {
634
+ }
635
+ }
636
+ class De {
637
+ update() {
638
+ this._model.update(), this._model.drawables.resetDynamicFlags();
639
+ }
640
+ getCanvasWidth() {
641
+ return this._model == null ? 0 : this._model.canvasinfo.CanvasWidth / this._model.canvasinfo.PixelsPerUnit;
642
+ }
643
+ getCanvasHeight() {
644
+ return this._model == null ? 0 : this._model.canvasinfo.CanvasHeight / this._model.canvasinfo.PixelsPerUnit;
645
+ }
646
+ saveParameters() {
647
+ const t = this._model.parameters.count, e = this._savedParameters.length;
648
+ for (let i = 0; i < t; ++i)
649
+ i < e ? this._savedParameters[i] = this._parameterValues[i] : this._savedParameters.push(this._parameterValues[i]);
650
+ }
651
+ getModel() {
652
+ return this._model;
653
+ }
654
+ getPartIndex(t) {
655
+ let e;
656
+ const i = this._model.parts.count;
657
+ for (e = 0; e < i; ++e)
658
+ if (t == this._partIds[e])
659
+ return e;
660
+ return t in this._notExistPartId ? this._notExistPartId[t] : (e = i + this._notExistPartId.length, this._notExistPartId[t] = e, this._notExistPartOpacities[e] = 0, e);
661
+ }
662
+ getPartCount() {
663
+ return this._model.parts.count;
664
+ }
665
+ setPartOpacityByIndex(t, e) {
666
+ if (t in this._notExistPartOpacities) {
667
+ this._notExistPartOpacities[t] = e;
668
+ return;
669
+ }
670
+ ct(0 <= t && t < this.getPartCount()), this._partOpacities[t] = e;
671
+ }
672
+ setPartOpacityById(t, e) {
673
+ const i = this.getPartIndex(t);
674
+ i < 0 || this.setPartOpacityByIndex(i, e);
675
+ }
676
+ getPartOpacityByIndex(t) {
677
+ return t in this._notExistPartOpacities ? this._notExistPartOpacities[t] : (ct(0 <= t && t < this.getPartCount()), this._partOpacities[t]);
678
+ }
679
+ getPartOpacityById(t) {
680
+ const e = this.getPartIndex(t);
681
+ return e < 0 ? 0 : this.getPartOpacityByIndex(e);
682
+ }
683
+ getParameterIndex(t) {
684
+ let e;
685
+ const i = this._model.parameters.count;
686
+ for (e = 0; e < i; ++e)
687
+ if (t == this._parameterIds[e])
688
+ return e;
689
+ return t in this._notExistParameterId ? this._notExistParameterId[t] : (e = this._model.parameters.count + Object.keys(this._notExistParameterId).length, this._notExistParameterId[t] = e, this._notExistParameterValues[e] = 0, e);
690
+ }
691
+ getParameterCount() {
692
+ return this._model.parameters.count;
693
+ }
694
+ getParameterMaximumValue(t) {
695
+ return this._model.parameters.maximumValues[t];
696
+ }
697
+ getParameterMinimumValue(t) {
698
+ return this._model.parameters.minimumValues[t];
699
+ }
700
+ getParameterDefaultValue(t) {
701
+ return this._model.parameters.defaultValues[t];
702
+ }
703
+ getParameterValueByIndex(t) {
704
+ return t in this._notExistParameterValues ? this._notExistParameterValues[t] : (ct(0 <= t && t < this.getParameterCount()), this._parameterValues[t]);
705
+ }
706
+ getParameterValueById(t) {
707
+ const e = this.getParameterIndex(t);
708
+ return this.getParameterValueByIndex(e);
709
+ }
710
+ setParameterValueByIndex(t, e, i = 1) {
711
+ if (t in this._notExistParameterValues) {
712
+ this._notExistParameterValues[t] = i == 1 ? e : this._notExistParameterValues[t] * (1 - i) + e * i;
713
+ return;
714
+ }
715
+ ct(0 <= t && t < this.getParameterCount()), this._model.parameters.maximumValues[t] < e && (e = this._model.parameters.maximumValues[t]), this._model.parameters.minimumValues[t] > e && (e = this._model.parameters.minimumValues[t]), this._parameterValues[t] = i == 1 ? e : this._parameterValues[t] = this._parameterValues[t] * (1 - i) + e * i;
716
+ }
717
+ setParameterValueById(t, e, i = 1) {
718
+ const r = this.getParameterIndex(t);
719
+ this.setParameterValueByIndex(r, e, i);
720
+ }
721
+ addParameterValueByIndex(t, e, i = 1) {
722
+ this.setParameterValueByIndex(t, this.getParameterValueByIndex(t) + e * i);
723
+ }
724
+ addParameterValueById(t, e, i = 1) {
725
+ const r = this.getParameterIndex(t);
726
+ this.addParameterValueByIndex(r, e, i);
727
+ }
728
+ multiplyParameterValueById(t, e, i = 1) {
729
+ const r = this.getParameterIndex(t);
730
+ this.multiplyParameterValueByIndex(r, e, i);
731
+ }
732
+ multiplyParameterValueByIndex(t, e, i = 1) {
733
+ this.setParameterValueByIndex(t, this.getParameterValueByIndex(t) * (1 + (e - 1) * i));
734
+ }
735
+ getDrawableIds() {
736
+ return this._drawableIds.slice();
737
+ }
738
+ getDrawableIndex(t) {
739
+ const e = this._model.drawables.count;
740
+ for (let i = 0; i < e; ++i)
741
+ if (this._drawableIds[i] == t)
742
+ return i;
743
+ return -1;
744
+ }
745
+ getDrawableCount() {
746
+ return this._model.drawables.count;
747
+ }
748
+ getDrawableId(t) {
749
+ return this._model.drawables.ids[t];
750
+ }
751
+ getDrawableRenderOrders() {
752
+ return this._model.drawables.renderOrders;
753
+ }
754
+ getDrawableTextureIndices(t) {
755
+ return this._model.drawables.textureIndices[t];
756
+ }
757
+ getDrawableDynamicFlagVertexPositionsDidChange(t) {
758
+ const e = this._model.drawables.dynamicFlags;
759
+ return Live2DCubismCore.Utils.hasVertexPositionsDidChangeBit(e[t]);
760
+ }
761
+ getDrawableVertexIndexCount(t) {
762
+ return this._model.drawables.indexCounts[t];
763
+ }
764
+ getDrawableVertexCount(t) {
765
+ return this._model.drawables.vertexCounts[t];
766
+ }
767
+ getDrawableVertices(t) {
768
+ return this.getDrawableVertexPositions(t);
769
+ }
770
+ getDrawableVertexIndices(t) {
771
+ return this._model.drawables.indices[t];
772
+ }
773
+ getDrawableVertexPositions(t) {
774
+ return this._model.drawables.vertexPositions[t];
775
+ }
776
+ getDrawableVertexUvs(t) {
777
+ return this._model.drawables.vertexUvs[t];
778
+ }
779
+ getDrawableOpacity(t) {
780
+ return this._model.drawables.opacities[t];
781
+ }
782
+ getDrawableCulling(t) {
783
+ const e = this._model.drawables.constantFlags;
784
+ return !Live2DCubismCore.Utils.hasIsDoubleSidedBit(e[t]);
785
+ }
786
+ getDrawableBlendMode(t) {
787
+ const e = this._model.drawables.constantFlags;
788
+ return Live2DCubismCore.Utils.hasBlendAdditiveBit(e[t]) ? z.CubismBlendMode_Additive : Live2DCubismCore.Utils.hasBlendMultiplicativeBit(e[t]) ? z.CubismBlendMode_Multiplicative : z.CubismBlendMode_Normal;
789
+ }
790
+ getDrawableInvertedMaskBit(t) {
791
+ const e = this._model.drawables.constantFlags;
792
+ return Live2DCubismCore.Utils.hasIsInvertedMaskBit(e[t]);
793
+ }
794
+ getDrawableMasks() {
795
+ return this._model.drawables.masks;
796
+ }
797
+ getDrawableMaskCounts() {
798
+ return this._model.drawables.maskCounts;
799
+ }
800
+ isUsingMasking() {
801
+ for (let t = 0; t < this._model.drawables.count; ++t)
802
+ if (!(this._model.drawables.maskCounts[t] <= 0))
803
+ return !0;
804
+ return !1;
805
+ }
806
+ getDrawableDynamicFlagIsVisible(t) {
807
+ const e = this._model.drawables.dynamicFlags;
808
+ return Live2DCubismCore.Utils.hasIsVisibleBit(e[t]);
809
+ }
810
+ getDrawableDynamicFlagVisibilityDidChange(t) {
811
+ const e = this._model.drawables.dynamicFlags;
812
+ return Live2DCubismCore.Utils.hasVisibilityDidChangeBit(e[t]);
813
+ }
814
+ getDrawableDynamicFlagOpacityDidChange(t) {
815
+ const e = this._model.drawables.dynamicFlags;
816
+ return Live2DCubismCore.Utils.hasOpacityDidChangeBit(e[t]);
817
+ }
818
+ getDrawableDynamicFlagRenderOrderDidChange(t) {
819
+ const e = this._model.drawables.dynamicFlags;
820
+ return Live2DCubismCore.Utils.hasRenderOrderDidChangeBit(e[t]);
821
+ }
822
+ loadParameters() {
823
+ let t = this._model.parameters.count;
824
+ const e = this._savedParameters.length;
825
+ t > e && (t = e);
826
+ for (let i = 0; i < t; ++i)
827
+ this._parameterValues[i] = this._savedParameters[i];
828
+ }
829
+ initialize() {
830
+ this._parameterValues = this._model.parameters.values, this._partOpacities = this._model.parts.opacities, this._parameterMaximumValues = this._model.parameters.maximumValues, this._parameterMinimumValues = this._model.parameters.minimumValues;
831
+ {
832
+ const t = this._model.parameters.ids, e = this._model.parameters.count;
833
+ for (let i = 0; i < e; ++i)
834
+ this._parameterIds.push(t[i]);
835
+ }
836
+ {
837
+ const t = this._model.parts.ids, e = this._model.parts.count;
838
+ for (let i = 0; i < e; ++i)
839
+ this._partIds.push(t[i]);
840
+ }
841
+ {
842
+ const t = this._model.drawables.ids, e = this._model.drawables.count;
843
+ for (let i = 0; i < e; ++i)
844
+ this._drawableIds.push(t[i]);
845
+ }
846
+ }
847
+ constructor(t) {
848
+ this._model = t, this._savedParameters = [], this._parameterIds = [], this._drawableIds = [], this._partIds = [], this._notExistPartId = {}, this._notExistParameterId = {}, this._notExistParameterValues = {}, this._notExistPartOpacities = {}, this.initialize();
849
+ }
850
+ release() {
851
+ this._model.release(), this._model = void 0;
852
+ }
853
+ }
854
+ class Bt {
855
+ static create(t) {
856
+ const e = Live2DCubismCore.Moc.fromArrayBuffer(t);
857
+ if (e)
858
+ return new Bt(e);
859
+ throw new Error("Unknown error");
860
+ }
861
+ createModel() {
862
+ let t;
863
+ const e = Live2DCubismCore.Model.fromMoc(this._moc);
864
+ if (e)
865
+ return t = new De(e), ++this._modelCount, t;
866
+ throw new Error("Unknown error");
867
+ }
868
+ deleteModel(t) {
869
+ t != null && --this._modelCount;
870
+ }
871
+ constructor(t) {
872
+ this._moc = t, this._modelCount = 0;
873
+ }
874
+ release() {
875
+ this._moc._release(), this._moc = void 0;
876
+ }
877
+ }
878
+ class Ae {
879
+ constructor(t, e) {
880
+ this._json = t;
881
+ }
882
+ release() {
883
+ this._json = void 0;
884
+ }
885
+ getUserDataCount() {
886
+ return this._json.Meta.UserDataCount;
887
+ }
888
+ getTotalUserDataSize() {
889
+ return this._json.Meta.TotalUserDataSize;
890
+ }
891
+ getUserDataTargetType(t) {
892
+ return this._json.UserData[t].Target;
893
+ }
894
+ getUserDataId(t) {
895
+ return this._json.UserData[t].Id;
896
+ }
897
+ getUserDataValue(t) {
898
+ return this._json.UserData[t].Value;
899
+ }
900
+ }
901
+ const Be = "ArtMesh";
902
+ class de {
903
+ static create(t, e) {
904
+ const i = new de();
905
+ return i.parseUserData(t, e), i;
906
+ }
907
+ getArtMeshUserDatas() {
908
+ return this._artMeshUserDataNode;
909
+ }
910
+ parseUserData(t, e) {
911
+ let i = new Ae(t, e);
912
+ const r = Be, a = i.getUserDataCount();
913
+ for (let n = 0; n < a; n++) {
914
+ const o = {
915
+ targetId: i.getUserDataId(n),
916
+ targetType: i.getUserDataTargetType(n),
917
+ value: i.getUserDataValue(n)
918
+ };
919
+ this._userDataNodes.push(o), o.targetType == r && this._artMeshUserDataNode.push(o);
920
+ }
921
+ i.release();
922
+ }
923
+ constructor() {
924
+ this._userDataNodes = [], this._artMeshUserDataNode = [];
925
+ }
926
+ release() {
927
+ this._userDataNodes = null;
928
+ }
929
+ }
930
+ class ce {
931
+ constructor() {
932
+ this._fadeInSeconds = -1, this._fadeOutSeconds = -1, this._weight = 1, this._offsetSeconds = 0, this._firedEventValues = [];
933
+ }
934
+ release() {
935
+ this._weight = 0;
936
+ }
937
+ updateParameters(t, e, i) {
938
+ if (!e.isAvailable() || e.isFinished())
939
+ return;
940
+ if (!e.isStarted()) {
941
+ e.setIsStarted(!0), e.setStartTime(i - this._offsetSeconds), e.setFadeInStartTime(i);
942
+ const o = this.getDuration();
943
+ e.getEndTime() < 0 && e.setEndTime(o <= 0 ? -1 : e.getStartTime() + o);
944
+ }
945
+ let r = this._weight;
946
+ const a = this._fadeInSeconds == 0 ? 1 : S.getEasingSine((i - e.getFadeInStartTime()) / this._fadeInSeconds), n = this._fadeOutSeconds == 0 || e.getEndTime() < 0 ? 1 : S.getEasingSine((e.getEndTime() - i) / this._fadeOutSeconds);
947
+ r = r * a * n, e.setState(i, r), this.doUpdateParameters(t, i, r, e), e.getEndTime() > 0 && e.getEndTime() < i && e.setIsFinished(!0);
948
+ }
949
+ setFadeInTime(t) {
950
+ this._fadeInSeconds = t;
951
+ }
952
+ setFadeOutTime(t) {
953
+ this._fadeOutSeconds = t;
954
+ }
955
+ getFadeOutTime() {
956
+ return this._fadeOutSeconds;
957
+ }
958
+ getFadeInTime() {
959
+ return this._fadeInSeconds;
960
+ }
961
+ setWeight(t) {
962
+ this._weight = t;
963
+ }
964
+ getWeight() {
965
+ return this._weight;
966
+ }
967
+ getDuration() {
968
+ return -1;
969
+ }
970
+ getLoopDuration() {
971
+ return -1;
972
+ }
973
+ setOffsetTime(t) {
974
+ this._offsetSeconds = t;
975
+ }
976
+ getFiredEvent(t, e) {
977
+ return this._firedEventValues;
978
+ }
979
+ setFinishedMotionHandler(t) {
980
+ this._onFinishedMotion = t;
981
+ }
982
+ getFinishedMotionHandler() {
983
+ return this._onFinishedMotion;
984
+ }
985
+ }
986
+ const $t = 1;
987
+ class Rt extends ce {
988
+ constructor() {
989
+ super(), this._parameters = [];
990
+ }
991
+ static create(t) {
992
+ const e = new Rt(), i = t.FadeInTime, r = t.FadeOutTime;
993
+ e.setFadeInTime(i !== void 0 ? i : $t), e.setFadeOutTime(r !== void 0 ? r : $t);
994
+ const a = t.Parameters || [];
995
+ for (let n = 0; n < a.length; ++n) {
996
+ const o = a[n], l = o.Id, h = o.Value;
997
+ let u;
998
+ switch (o.Blend) {
999
+ case "Multiply":
1000
+ u = q.ExpressionBlendType_Multiply;
1001
+ break;
1002
+ case "Overwrite":
1003
+ u = q.ExpressionBlendType_Overwrite;
1004
+ break;
1005
+ default:
1006
+ u = q.ExpressionBlendType_Add;
1007
+ break;
1008
+ }
1009
+ const c = {
1010
+ parameterId: l,
1011
+ blendType: u,
1012
+ value: h
1013
+ };
1014
+ e._parameters.push(c);
1015
+ }
1016
+ return e;
1017
+ }
1018
+ doUpdateParameters(t, e, i, r) {
1019
+ for (let a = 0; a < this._parameters.length; ++a) {
1020
+ const n = this._parameters[a];
1021
+ switch (n.blendType) {
1022
+ case q.ExpressionBlendType_Add: {
1023
+ t.addParameterValueById(n.parameterId, n.value, i);
1024
+ break;
1025
+ }
1026
+ case q.ExpressionBlendType_Multiply: {
1027
+ t.multiplyParameterValueById(n.parameterId, n.value, i);
1028
+ break;
1029
+ }
1030
+ case q.ExpressionBlendType_Overwrite: {
1031
+ t.setParameterValueById(n.parameterId, n.value, i);
1032
+ break;
1033
+ }
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+ var q = /* @__PURE__ */ ((s) => (s[s.ExpressionBlendType_Add = 0] = "ExpressionBlendType_Add", s[s.ExpressionBlendType_Multiply = 1] = "ExpressionBlendType_Multiply", s[s.ExpressionBlendType_Overwrite = 2] = "ExpressionBlendType_Overwrite", s))(q || {}), ut;
1039
+ ((s) => {
1040
+ s.supportMoreMaskDivisions = !0, s.setOpacityFromMotion = !1;
1041
+ })(ut || (ut = {}));
1042
+ var $ = /* @__PURE__ */ ((s) => (s[s.CubismMotionCurveTarget_Model = 0] = "CubismMotionCurveTarget_Model", s[s.CubismMotionCurveTarget_Parameter = 1] = "CubismMotionCurveTarget_Parameter", s[s.CubismMotionCurveTarget_PartOpacity = 2] = "CubismMotionCurveTarget_PartOpacity", s))($ || {}), k = /* @__PURE__ */ ((s) => (s[s.CubismMotionSegmentType_Linear = 0] = "CubismMotionSegmentType_Linear", s[s.CubismMotionSegmentType_Bezier = 1] = "CubismMotionSegmentType_Bezier", s[s.CubismMotionSegmentType_Stepped = 2] = "CubismMotionSegmentType_Stepped", s[s.CubismMotionSegmentType_InverseStepped = 3] = "CubismMotionSegmentType_InverseStepped", s))(k || {});
1043
+ class j {
1044
+ constructor(t = 0, e = 0) {
1045
+ this.time = t, this.value = e;
1046
+ }
1047
+ }
1048
+ class Re {
1049
+ constructor() {
1050
+ this.basePointIndex = 0, this.segmentType = 0;
1051
+ }
1052
+ }
1053
+ class Oe {
1054
+ constructor() {
1055
+ this.id = "", this.type = 0, this.segmentCount = 0, this.baseSegmentIndex = 0, this.fadeInTime = 0, this.fadeOutTime = 0;
1056
+ }
1057
+ }
1058
+ class ke {
1059
+ constructor() {
1060
+ this.fireTime = 0, this.value = "";
1061
+ }
1062
+ }
1063
+ class Ue {
1064
+ constructor() {
1065
+ this.duration = 0, this.loop = !1, this.curveCount = 0, this.eventCount = 0, this.fps = 0, this.curves = [], this.segments = [], this.points = [], this.events = [];
1066
+ }
1067
+ }
1068
+ class me {
1069
+ constructor(t) {
1070
+ this._json = t;
1071
+ }
1072
+ release() {
1073
+ this._json = void 0;
1074
+ }
1075
+ getMotionDuration() {
1076
+ return this._json.Meta.Duration;
1077
+ }
1078
+ isMotionLoop() {
1079
+ return this._json.Meta.Loop || !1;
1080
+ }
1081
+ getEvaluationOptionFlag(t) {
1082
+ return Ot.EvaluationOptionFlag_AreBeziersRistricted == t ? !!this._json.Meta.AreBeziersRestricted : !1;
1083
+ }
1084
+ getMotionCurveCount() {
1085
+ return this._json.Meta.CurveCount;
1086
+ }
1087
+ getMotionFps() {
1088
+ return this._json.Meta.Fps;
1089
+ }
1090
+ getMotionTotalSegmentCount() {
1091
+ return this._json.Meta.TotalSegmentCount;
1092
+ }
1093
+ getMotionTotalPointCount() {
1094
+ return this._json.Meta.TotalPointCount;
1095
+ }
1096
+ getMotionFadeInTime() {
1097
+ return this._json.Meta.FadeInTime;
1098
+ }
1099
+ getMotionFadeOutTime() {
1100
+ return this._json.Meta.FadeOutTime;
1101
+ }
1102
+ getMotionCurveTarget(t) {
1103
+ return this._json.Curves[t].Target;
1104
+ }
1105
+ getMotionCurveId(t) {
1106
+ return this._json.Curves[t].Id;
1107
+ }
1108
+ getMotionCurveFadeInTime(t) {
1109
+ return this._json.Curves[t].FadeInTime;
1110
+ }
1111
+ getMotionCurveFadeOutTime(t) {
1112
+ return this._json.Curves[t].FadeOutTime;
1113
+ }
1114
+ getMotionCurveSegmentCount(t) {
1115
+ return this._json.Curves[t].Segments.length;
1116
+ }
1117
+ getMotionCurveSegment(t, e) {
1118
+ return this._json.Curves[t].Segments[e];
1119
+ }
1120
+ getEventCount() {
1121
+ return this._json.Meta.UserDataCount || 0;
1122
+ }
1123
+ getTotalEventValueSize() {
1124
+ return this._json.Meta.TotalUserDataSize;
1125
+ }
1126
+ getEventTime(t) {
1127
+ return this._json.UserData[t].Time;
1128
+ }
1129
+ getEventValue(t) {
1130
+ return this._json.UserData[t].Value;
1131
+ }
1132
+ }
1133
+ var Ot = /* @__PURE__ */ ((s) => (s[s.EvaluationOptionFlag_AreBeziersRistricted = 0] = "EvaluationOptionFlag_AreBeziersRistricted", s))(Ot || {});
1134
+ const Ve = "EyeBlink", Ne = "LipSync", Ge = "Model", je = "Parameter", ze = "PartOpacity", Xe = !1;
1135
+ function B(s, t, e) {
1136
+ const i = new j();
1137
+ return i.time = s.time + (t.time - s.time) * e, i.value = s.value + (t.value - s.value) * e, i;
1138
+ }
1139
+ function Ye(s, t) {
1140
+ let e = (t - s[0].time) / (s[1].time - s[0].time);
1141
+ return e < 0 && (e = 0), s[0].value + (s[1].value - s[0].value) * e;
1142
+ }
1143
+ function He(s, t) {
1144
+ let e = (t - s[0].time) / (s[3].time - s[0].time);
1145
+ e < 0 && (e = 0);
1146
+ const i = B(s[0], s[1], e), r = B(s[1], s[2], e), a = B(s[2], s[3], e), n = B(i, r, e), o = B(r, a, e);
1147
+ return B(n, o, e).value;
1148
+ }
1149
+ function We(s, t) {
1150
+ const e = t, i = s[0].time, r = s[3].time, a = s[1].time, n = s[2].time, o = r - 3 * n + 3 * a - i, l = 3 * n - 6 * a + 3 * i, h = 3 * a - 3 * i, u = i - e, c = S.cardanoAlgorithmForBezier(o, l, h, u), d = B(s[0], s[1], c), _ = B(s[1], s[2], c), p = B(s[2], s[3], c), x = B(d, _, c), g = B(_, p, c);
1151
+ return B(x, g, c).value;
1152
+ }
1153
+ function qe(s, t) {
1154
+ return s[0].value;
1155
+ }
1156
+ function $e(s, t) {
1157
+ return s[1].value;
1158
+ }
1159
+ function Pt(s, t, e) {
1160
+ const i = s.curves[t];
1161
+ let r = -1;
1162
+ const a = i.baseSegmentIndex + i.segmentCount;
1163
+ let n = 0;
1164
+ for (let l = i.baseSegmentIndex; l < a; ++l)
1165
+ if (n = s.segments[l].basePointIndex + (s.segments[l].segmentType == k.CubismMotionSegmentType_Bezier ? 3 : 1), s.points[n].time > e) {
1166
+ r = l;
1167
+ break;
1168
+ }
1169
+ if (r == -1)
1170
+ return s.points[n].value;
1171
+ const o = s.segments[r];
1172
+ return o.evaluate(s.points.slice(o.basePointIndex), e);
1173
+ }
1174
+ class kt extends ce {
1175
+ constructor() {
1176
+ super(), this._eyeBlinkParameterIds = [], this._lipSyncParameterIds = [], this._sourceFrameRate = 30, this._loopDurationSeconds = -1, this._isLoop = !1, this._isLoopFadeIn = !0, this._lastWeight = 0;
1177
+ }
1178
+ static create(t, e) {
1179
+ const i = new kt();
1180
+ return i.parse(t), i._sourceFrameRate = i._motionData.fps, i._loopDurationSeconds = i._motionData.duration, i._onFinishedMotion = e, i;
1181
+ }
1182
+ doUpdateParameters(t, e, i, r) {
1183
+ this._modelCurveIdEyeBlink == null && (this._modelCurveIdEyeBlink = Ve), this._modelCurveIdLipSync == null && (this._modelCurveIdLipSync = Ne);
1184
+ let a = e - r.getStartTime();
1185
+ a < 0 && (a = 0);
1186
+ let n = Number.MAX_VALUE, o = Number.MAX_VALUE;
1187
+ const l = 64;
1188
+ let h = 0, u = 0;
1189
+ this._eyeBlinkParameterIds.length > l && qt("too many eye blink targets : {0}", this._eyeBlinkParameterIds.length), this._lipSyncParameterIds.length > l && qt("too many lip sync targets : {0}", this._lipSyncParameterIds.length);
1190
+ const c = this._fadeInSeconds <= 0 ? 1 : S.getEasingSine((e - r.getFadeInStartTime()) / this._fadeInSeconds), d = this._fadeOutSeconds <= 0 || r.getEndTime() < 0 ? 1 : S.getEasingSine((r.getEndTime() - e) / this._fadeOutSeconds);
1191
+ let _, p, x, g = a;
1192
+ if (this._isLoop)
1193
+ for (; g > this._motionData.duration; )
1194
+ g -= this._motionData.duration;
1195
+ const m = this._motionData.curves;
1196
+ for (p = 0; p < this._motionData.curveCount && m[p].type == $.CubismMotionCurveTarget_Model; ++p)
1197
+ _ = Pt(this._motionData, p, g), m[p].id == this._modelCurveIdEyeBlink ? o = _ : m[p].id == this._modelCurveIdLipSync && (n = _);
1198
+ for (; p < this._motionData.curveCount && m[p].type == $.CubismMotionCurveTarget_Parameter; ++p) {
1199
+ if (x = t.getParameterIndex(m[p].id), x == -1)
1200
+ continue;
1201
+ const f = t.getParameterValueByIndex(x);
1202
+ if (_ = Pt(this._motionData, p, g), o != Number.MAX_VALUE) {
1203
+ for (let P = 0; P < this._eyeBlinkParameterIds.length && P < l; ++P)
1204
+ if (this._eyeBlinkParameterIds[P] == m[p].id) {
1205
+ _ *= o, u |= 1 << P;
1206
+ break;
1207
+ }
1208
+ }
1209
+ if (n != Number.MAX_VALUE) {
1210
+ for (let P = 0; P < this._lipSyncParameterIds.length && P < l; ++P)
1211
+ if (this._lipSyncParameterIds[P] == m[p].id) {
1212
+ _ += n, h |= 1 << P;
1213
+ break;
1214
+ }
1215
+ }
1216
+ let v;
1217
+ if (m[p].fadeInTime < 0 && m[p].fadeOutTime < 0)
1218
+ v = f + (_ - f) * i;
1219
+ else {
1220
+ let P, I;
1221
+ m[p].fadeInTime < 0 ? P = c : P = m[p].fadeInTime == 0 ? 1 : S.getEasingSine((e - r.getFadeInStartTime()) / m[p].fadeInTime), m[p].fadeOutTime < 0 ? I = d : I = m[p].fadeOutTime == 0 || r.getEndTime() < 0 ? 1 : S.getEasingSine((r.getEndTime() - e) / m[p].fadeOutTime);
1222
+ const M = this._weight * P * I;
1223
+ v = f + (_ - f) * M;
1224
+ }
1225
+ t.setParameterValueByIndex(x, v, 1);
1226
+ }
1227
+ {
1228
+ if (o != Number.MAX_VALUE)
1229
+ for (let f = 0; f < this._eyeBlinkParameterIds.length && f < l; ++f) {
1230
+ const v = t.getParameterValueById(this._eyeBlinkParameterIds[f]);
1231
+ if (u >> f & 1)
1232
+ continue;
1233
+ const P = v + (o - v) * i;
1234
+ t.setParameterValueById(this._eyeBlinkParameterIds[f], P);
1235
+ }
1236
+ if (n != Number.MAX_VALUE)
1237
+ for (let f = 0; f < this._lipSyncParameterIds.length && f < l; ++f) {
1238
+ const v = t.getParameterValueById(this._lipSyncParameterIds[f]);
1239
+ if (h >> f & 1)
1240
+ continue;
1241
+ const P = v + (n - v) * i;
1242
+ t.setParameterValueById(this._lipSyncParameterIds[f], P);
1243
+ }
1244
+ }
1245
+ for (; p < this._motionData.curveCount && m[p].type == $.CubismMotionCurveTarget_PartOpacity; ++p)
1246
+ if (_ = Pt(this._motionData, p, g), ut.setOpacityFromMotion)
1247
+ t.setPartOpacityById(m[p].id, _);
1248
+ else {
1249
+ if (x = t.getParameterIndex(m[p].id), x == -1)
1250
+ continue;
1251
+ t.setParameterValueByIndex(x, _);
1252
+ }
1253
+ a >= this._motionData.duration && (this._isLoop ? (r.setStartTime(e), this._isLoopFadeIn && r.setFadeInStartTime(e)) : (this._onFinishedMotion && this._onFinishedMotion(this), r.setIsFinished(!0))), this._lastWeight = i;
1254
+ }
1255
+ setIsLoop(t) {
1256
+ this._isLoop = t;
1257
+ }
1258
+ isLoop() {
1259
+ return this._isLoop;
1260
+ }
1261
+ setIsLoopFadeIn(t) {
1262
+ this._isLoopFadeIn = t;
1263
+ }
1264
+ isLoopFadeIn() {
1265
+ return this._isLoopFadeIn;
1266
+ }
1267
+ getDuration() {
1268
+ return this._isLoop ? -1 : this._loopDurationSeconds;
1269
+ }
1270
+ getLoopDuration() {
1271
+ return this._loopDurationSeconds;
1272
+ }
1273
+ setParameterFadeInTime(t, e) {
1274
+ const i = this._motionData.curves;
1275
+ for (let r = 0; r < this._motionData.curveCount; ++r)
1276
+ if (t == i[r].id) {
1277
+ i[r].fadeInTime = e;
1278
+ return;
1279
+ }
1280
+ }
1281
+ setParameterFadeOutTime(t, e) {
1282
+ const i = this._motionData.curves;
1283
+ for (let r = 0; r < this._motionData.curveCount; ++r)
1284
+ if (t == i[r].id) {
1285
+ i[r].fadeOutTime = e;
1286
+ return;
1287
+ }
1288
+ }
1289
+ getParameterFadeInTime(t) {
1290
+ const e = this._motionData.curves;
1291
+ for (let i = 0; i < this._motionData.curveCount; ++i)
1292
+ if (t == e[i].id)
1293
+ return e[i].fadeInTime;
1294
+ return -1;
1295
+ }
1296
+ getParameterFadeOutTime(t) {
1297
+ const e = this._motionData.curves;
1298
+ for (let i = 0; i < this._motionData.curveCount; ++i)
1299
+ if (t == e[i].id)
1300
+ return e[i].fadeOutTime;
1301
+ return -1;
1302
+ }
1303
+ setEffectIds(t, e) {
1304
+ this._eyeBlinkParameterIds = t, this._lipSyncParameterIds = e;
1305
+ }
1306
+ release() {
1307
+ this._motionData = void 0;
1308
+ }
1309
+ parse(t) {
1310
+ this._motionData = new Ue();
1311
+ let e = new me(t);
1312
+ this._motionData.duration = e.getMotionDuration(), this._motionData.loop = e.isMotionLoop(), this._motionData.curveCount = e.getMotionCurveCount(), this._motionData.fps = e.getMotionFps(), this._motionData.eventCount = e.getEventCount();
1313
+ const i = e.getEvaluationOptionFlag(Ot.EvaluationOptionFlag_AreBeziersRistricted), r = e.getMotionFadeInTime(), a = e.getMotionFadeOutTime();
1314
+ r !== void 0 ? this._fadeInSeconds = r < 0 ? 1 : r : this._fadeInSeconds = 1, a !== void 0 ? this._fadeOutSeconds = a < 0 ? 1 : a : this._fadeOutSeconds = 1, this._motionData.curves = Array.from({ length: this._motionData.curveCount }).map(() => new Oe()), this._motionData.segments = Array.from({ length: e.getMotionTotalSegmentCount() }).map(() => new Re()), this._motionData.events = Array.from({ length: this._motionData.eventCount }).map(() => new ke()), this._motionData.points = [];
1315
+ let n = 0, o = 0;
1316
+ for (let l = 0; l < this._motionData.curveCount; ++l) {
1317
+ const h = this._motionData.curves[l];
1318
+ switch (e.getMotionCurveTarget(l)) {
1319
+ case Ge:
1320
+ h.type = $.CubismMotionCurveTarget_Model;
1321
+ break;
1322
+ case je:
1323
+ h.type = $.CubismMotionCurveTarget_Parameter;
1324
+ break;
1325
+ case ze:
1326
+ h.type = $.CubismMotionCurveTarget_PartOpacity;
1327
+ break;
1328
+ default:
1329
+ nt('Warning : Unable to get segment type from Curve! The number of "CurveCount" may be incorrect!');
1330
+ }
1331
+ h.id = e.getMotionCurveId(l), h.baseSegmentIndex = o;
1332
+ const u = e.getMotionCurveFadeInTime(l), c = e.getMotionCurveFadeOutTime(l);
1333
+ h.fadeInTime = u !== void 0 ? u : -1, h.fadeOutTime = c !== void 0 ? c : -1;
1334
+ for (let d = 0; d < e.getMotionCurveSegmentCount(l); ) {
1335
+ switch (d == 0 ? (this._motionData.segments[o].basePointIndex = n, this._motionData.points[n] = new j(e.getMotionCurveSegment(l, d), e.getMotionCurveSegment(l, d + 1)), n += 1, d += 2) : this._motionData.segments[o].basePointIndex = n - 1, e.getMotionCurveSegment(l, d)) {
1336
+ case k.CubismMotionSegmentType_Linear: {
1337
+ this._motionData.segments[o].segmentType = k.CubismMotionSegmentType_Linear, this._motionData.segments[o].evaluate = Ye, this._motionData.points[n] = new j(e.getMotionCurveSegment(l, d + 1), e.getMotionCurveSegment(l, d + 2)), n += 1, d += 3;
1338
+ break;
1339
+ }
1340
+ case k.CubismMotionSegmentType_Bezier: {
1341
+ this._motionData.segments[o].segmentType = k.CubismMotionSegmentType_Bezier, i || Xe ? this._motionData.segments[o].evaluate = He : this._motionData.segments[o].evaluate = We, this._motionData.points[n] = new j(e.getMotionCurveSegment(l, d + 1), e.getMotionCurveSegment(l, d + 2)), this._motionData.points[n + 1] = new j(e.getMotionCurveSegment(l, d + 3), e.getMotionCurveSegment(l, d + 4)), this._motionData.points[n + 2] = new j(e.getMotionCurveSegment(l, d + 5), e.getMotionCurveSegment(l, d + 6)), n += 3, d += 7;
1342
+ break;
1343
+ }
1344
+ case k.CubismMotionSegmentType_Stepped: {
1345
+ this._motionData.segments[o].segmentType = k.CubismMotionSegmentType_Stepped, this._motionData.segments[o].evaluate = qe, this._motionData.points[n] = new j(e.getMotionCurveSegment(l, d + 1), e.getMotionCurveSegment(l, d + 2)), n += 1, d += 3;
1346
+ break;
1347
+ }
1348
+ case k.CubismMotionSegmentType_InverseStepped: {
1349
+ this._motionData.segments[o].segmentType = k.CubismMotionSegmentType_InverseStepped, this._motionData.segments[o].evaluate = $e, this._motionData.points[n] = new j(e.getMotionCurveSegment(l, d + 1), e.getMotionCurveSegment(l, d + 2)), n += 1, d += 3;
1350
+ break;
1351
+ }
1352
+ }
1353
+ ++h.segmentCount, ++o;
1354
+ }
1355
+ this._motionData.curves.push(h);
1356
+ }
1357
+ for (let l = 0; l < e.getEventCount(); ++l)
1358
+ this._motionData.events[l].fireTime = e.getEventTime(l), this._motionData.events[l].value = e.getEventValue(l);
1359
+ e.release();
1360
+ }
1361
+ getFiredEvent(t, e) {
1362
+ this._firedEventValues.length = 0;
1363
+ for (let i = 0; i < this._motionData.eventCount; ++i)
1364
+ this._motionData.events[i].fireTime > t && this._motionData.events[i].fireTime <= e && this._firedEventValues.push(this._motionData.events[i].value);
1365
+ return this._firedEventValues;
1366
+ }
1367
+ }
1368
+ class Je {
1369
+ constructor() {
1370
+ this._autoDelete = !1, this._available = !0, this._finished = !1, this._started = !1, this._startTimeSeconds = -1, this._fadeInStartTimeSeconds = 0, this._endTimeSeconds = -1, this._stateTimeSeconds = 0, this._stateWeight = 0, this._lastEventCheckSeconds = 0, this._motionQueueEntryHandle = this, this._fadeOutSeconds = 0, this._isTriggeredFadeOut = !1;
1371
+ }
1372
+ release() {
1373
+ this._autoDelete && this._motion && this._motion.release();
1374
+ }
1375
+ setFadeOut(t) {
1376
+ this._fadeOutSeconds = t, this._isTriggeredFadeOut = !0;
1377
+ }
1378
+ startFadeOut(t, e) {
1379
+ const i = e + t;
1380
+ this._isTriggeredFadeOut = !0, (this._endTimeSeconds < 0 || i < this._endTimeSeconds) && (this._endTimeSeconds = i);
1381
+ }
1382
+ isFinished() {
1383
+ return this._finished;
1384
+ }
1385
+ isStarted() {
1386
+ return this._started;
1387
+ }
1388
+ getStartTime() {
1389
+ return this._startTimeSeconds;
1390
+ }
1391
+ getFadeInStartTime() {
1392
+ return this._fadeInStartTimeSeconds;
1393
+ }
1394
+ getEndTime() {
1395
+ return this._endTimeSeconds;
1396
+ }
1397
+ setStartTime(t) {
1398
+ this._startTimeSeconds = t;
1399
+ }
1400
+ setFadeInStartTime(t) {
1401
+ this._fadeInStartTimeSeconds = t;
1402
+ }
1403
+ setEndTime(t) {
1404
+ this._endTimeSeconds = t;
1405
+ }
1406
+ setIsFinished(t) {
1407
+ this._finished = t;
1408
+ }
1409
+ setIsStarted(t) {
1410
+ this._started = t;
1411
+ }
1412
+ isAvailable() {
1413
+ return this._available;
1414
+ }
1415
+ setIsAvailable(t) {
1416
+ this._available = t;
1417
+ }
1418
+ setState(t, e) {
1419
+ this._stateTimeSeconds = t, this._stateWeight = e;
1420
+ }
1421
+ getStateTime() {
1422
+ return this._stateTimeSeconds;
1423
+ }
1424
+ getStateWeight() {
1425
+ return this._stateWeight;
1426
+ }
1427
+ getLastCheckEventSeconds() {
1428
+ return this._lastEventCheckSeconds;
1429
+ }
1430
+ setLastCheckEventSeconds(t) {
1431
+ this._lastEventCheckSeconds = t;
1432
+ }
1433
+ isTriggeredFadeOut() {
1434
+ return this._isTriggeredFadeOut;
1435
+ }
1436
+ getFadeOutSeconds() {
1437
+ return this._fadeOutSeconds;
1438
+ }
1439
+ }
1440
+ class Ut {
1441
+ constructor() {
1442
+ this._userTimeSeconds = 0, this._eventCustomData = null, this._motions = [];
1443
+ }
1444
+ release() {
1445
+ for (let t = 0; t < this._motions.length; ++t)
1446
+ this._motions[t] && this._motions[t].release();
1447
+ this._motions = void 0;
1448
+ }
1449
+ startMotion(t, e, i) {
1450
+ if (t == null)
1451
+ return Ze;
1452
+ let r;
1453
+ for (let a = 0; a < this._motions.length; ++a)
1454
+ r = this._motions[a], r?.setFadeOut(r._motion.getFadeOutTime());
1455
+ return r = new Je(), r._autoDelete = e, r._motion = t, this._motions.push(r), r._motionQueueEntryHandle;
1456
+ }
1457
+ isFinished() {
1458
+ let t = 0;
1459
+ for (; t < this._motions.length; ) {
1460
+ const e = this._motions[t];
1461
+ if (e == null) {
1462
+ this._motions.splice(t, 1);
1463
+ continue;
1464
+ }
1465
+ if (e._motion == null) {
1466
+ e.release(), this._motions.splice(t, 1);
1467
+ continue;
1468
+ }
1469
+ if (!e.isFinished())
1470
+ return !1;
1471
+ t++;
1472
+ }
1473
+ return !0;
1474
+ }
1475
+ isFinishedByHandle(t) {
1476
+ for (let e = 0; e < this._motions.length; e++) {
1477
+ const i = this._motions[e];
1478
+ if (i != null && i._motionQueueEntryHandle == t && !i.isFinished())
1479
+ return !1;
1480
+ }
1481
+ return !0;
1482
+ }
1483
+ stopAllMotions() {
1484
+ for (let t = 0; t < this._motions.length; t++) {
1485
+ const e = this._motions[t];
1486
+ e?.release();
1487
+ }
1488
+ this._motions = [];
1489
+ }
1490
+ getCubismMotionQueueEntry(t) {
1491
+ return this._motions.find((e) => e != null && e._motionQueueEntryHandle == t);
1492
+ }
1493
+ setEventCallback(t, e = null) {
1494
+ this._eventCallBack = t, this._eventCustomData = e;
1495
+ }
1496
+ doUpdateMotion(t, e) {
1497
+ let i = !1, r = 0;
1498
+ for (; r < this._motions.length; ) {
1499
+ const a = this._motions[r];
1500
+ if (a == null) {
1501
+ this._motions.splice(r, 1);
1502
+ continue;
1503
+ }
1504
+ const n = a._motion;
1505
+ if (n == null) {
1506
+ a.release(), this._motions.splice(r, 1);
1507
+ continue;
1508
+ }
1509
+ n.updateParameters(t, a, e), i = !0;
1510
+ const o = n.getFiredEvent(a.getLastCheckEventSeconds() - a.getStartTime(), e - a.getStartTime());
1511
+ for (let l = 0; l < o.length; ++l)
1512
+ this._eventCallBack(this, o[l], this._eventCustomData);
1513
+ a.setLastCheckEventSeconds(e), a.isFinished() ? (a.release(), this._motions.splice(r, 1)) : (a.isTriggeredFadeOut() && a.startFadeOut(a.getFadeOutSeconds(), e), r++);
1514
+ }
1515
+ return i;
1516
+ }
1517
+ }
1518
+ const Ze = -1;
1519
+ class os extends Ut {
1520
+ constructor() {
1521
+ super(), this._currentPriority = 0, this._reservePriority = 0;
1522
+ }
1523
+ getCurrentPriority() {
1524
+ return this._currentPriority;
1525
+ }
1526
+ getReservePriority() {
1527
+ return this._reservePriority;
1528
+ }
1529
+ setReservePriority(t) {
1530
+ this._reservePriority = t;
1531
+ }
1532
+ startMotionPriority(t, e, i) {
1533
+ return i == this._reservePriority && (this._reservePriority = 0), this._currentPriority = i, super.startMotion(t, e, this._userTimeSeconds);
1534
+ }
1535
+ updateMotion(t, e) {
1536
+ this._userTimeSeconds += e;
1537
+ const i = super.doUpdateMotion(t, this._userTimeSeconds);
1538
+ return this.isFinished() && (this._currentPriority = 0), i;
1539
+ }
1540
+ reserveMotion(t) {
1541
+ return t <= this._reservePriority || t <= this._currentPriority ? !1 : (this._reservePriority = t, !0);
1542
+ }
1543
+ }
1544
+ var bt = /* @__PURE__ */ ((s) => (s[s.CubismPhysicsTargetType_Parameter = 0] = "CubismPhysicsTargetType_Parameter", s))(bt || {}), J = /* @__PURE__ */ ((s) => (s[s.CubismPhysicsSource_X = 0] = "CubismPhysicsSource_X", s[s.CubismPhysicsSource_Y = 1] = "CubismPhysicsSource_Y", s[s.CubismPhysicsSource_Angle = 2] = "CubismPhysicsSource_Angle", s))(J || {});
1545
+ class ls {
1546
+ constructor() {
1547
+ this.gravity = new y(0, 0), this.wind = new y(0, 0);
1548
+ }
1549
+ }
1550
+ class Ke {
1551
+ constructor() {
1552
+ this.initialPosition = new y(0, 0), this.position = new y(0, 0), this.lastPosition = new y(0, 0), this.lastGravity = new y(0, 0), this.force = new y(0, 0), this.velocity = new y(0, 0);
1553
+ }
1554
+ }
1555
+ class Qe {
1556
+ constructor() {
1557
+ this.normalizationPosition = {}, this.normalizationAngle = {};
1558
+ }
1559
+ }
1560
+ class ti {
1561
+ constructor() {
1562
+ this.source = {};
1563
+ }
1564
+ }
1565
+ class ei {
1566
+ constructor() {
1567
+ this.destination = {}, this.translationScale = new y(0, 0);
1568
+ }
1569
+ }
1570
+ class ii {
1571
+ constructor() {
1572
+ this.settings = [], this.inputs = [], this.outputs = [], this.particles = [], this.gravity = new y(0, 0), this.wind = new y(0, 0);
1573
+ }
1574
+ }
1575
+ class si {
1576
+ constructor(t) {
1577
+ this._json = t;
1578
+ }
1579
+ release() {
1580
+ this._json = void 0;
1581
+ }
1582
+ getGravity() {
1583
+ const t = new y(0, 0);
1584
+ return t.x = this._json.Meta.EffectiveForces.Gravity.X, t.y = this._json.Meta.EffectiveForces.Gravity.Y, t;
1585
+ }
1586
+ getWind() {
1587
+ const t = new y(0, 0);
1588
+ return t.x = this._json.Meta.EffectiveForces.Wind.X, t.y = this._json.Meta.EffectiveForces.Wind.Y, t;
1589
+ }
1590
+ getSubRigCount() {
1591
+ return this._json.Meta.PhysicsSettingCount;
1592
+ }
1593
+ getTotalInputCount() {
1594
+ return this._json.Meta.TotalInputCount;
1595
+ }
1596
+ getTotalOutputCount() {
1597
+ return this._json.Meta.TotalOutputCount;
1598
+ }
1599
+ getVertexCount() {
1600
+ return this._json.Meta.VertexCount;
1601
+ }
1602
+ getNormalizationPositionMinimumValue(t) {
1603
+ return this._json.PhysicsSettings[t].Normalization.Position.Minimum;
1604
+ }
1605
+ getNormalizationPositionMaximumValue(t) {
1606
+ return this._json.PhysicsSettings[t].Normalization.Position.Maximum;
1607
+ }
1608
+ getNormalizationPositionDefaultValue(t) {
1609
+ return this._json.PhysicsSettings[t].Normalization.Position.Default;
1610
+ }
1611
+ getNormalizationAngleMinimumValue(t) {
1612
+ return this._json.PhysicsSettings[t].Normalization.Angle.Minimum;
1613
+ }
1614
+ getNormalizationAngleMaximumValue(t) {
1615
+ return this._json.PhysicsSettings[t].Normalization.Angle.Maximum;
1616
+ }
1617
+ getNormalizationAngleDefaultValue(t) {
1618
+ return this._json.PhysicsSettings[t].Normalization.Angle.Default;
1619
+ }
1620
+ getInputCount(t) {
1621
+ return this._json.PhysicsSettings[t].Input.length;
1622
+ }
1623
+ getInputWeight(t, e) {
1624
+ return this._json.PhysicsSettings[t].Input[e].Weight;
1625
+ }
1626
+ getInputReflect(t, e) {
1627
+ return this._json.PhysicsSettings[t].Input[e].Reflect;
1628
+ }
1629
+ getInputType(t, e) {
1630
+ return this._json.PhysicsSettings[t].Input[e].Type;
1631
+ }
1632
+ getInputSourceId(t, e) {
1633
+ return this._json.PhysicsSettings[t].Input[e].Source.Id;
1634
+ }
1635
+ getOutputCount(t) {
1636
+ return this._json.PhysicsSettings[t].Output.length;
1637
+ }
1638
+ getOutputVertexIndex(t, e) {
1639
+ return this._json.PhysicsSettings[t].Output[e].VertexIndex;
1640
+ }
1641
+ getOutputAngleScale(t, e) {
1642
+ return this._json.PhysicsSettings[t].Output[e].Scale;
1643
+ }
1644
+ getOutputWeight(t, e) {
1645
+ return this._json.PhysicsSettings[t].Output[e].Weight;
1646
+ }
1647
+ getOutputDestinationId(t, e) {
1648
+ return this._json.PhysicsSettings[t].Output[e].Destination.Id;
1649
+ }
1650
+ getOutputType(t, e) {
1651
+ return this._json.PhysicsSettings[t].Output[e].Type;
1652
+ }
1653
+ getOutputReflect(t, e) {
1654
+ return this._json.PhysicsSettings[t].Output[e].Reflect;
1655
+ }
1656
+ getParticleCount(t) {
1657
+ return this._json.PhysicsSettings[t].Vertices.length;
1658
+ }
1659
+ getParticleMobility(t, e) {
1660
+ return this._json.PhysicsSettings[t].Vertices[e].Mobility;
1661
+ }
1662
+ getParticleDelay(t, e) {
1663
+ return this._json.PhysicsSettings[t].Vertices[e].Delay;
1664
+ }
1665
+ getParticleAcceleration(t, e) {
1666
+ return this._json.PhysicsSettings[t].Vertices[e].Acceleration;
1667
+ }
1668
+ getParticleRadius(t, e) {
1669
+ return this._json.PhysicsSettings[t].Vertices[e].Radius;
1670
+ }
1671
+ getParticlePosition(t, e) {
1672
+ const i = new y(0, 0);
1673
+ return i.x = this._json.PhysicsSettings[t].Vertices[e].Position.X, i.y = this._json.PhysicsSettings[t].Vertices[e].Position.Y, i;
1674
+ }
1675
+ }
1676
+ const Jt = "X", Zt = "Y", Kt = "Angle", ri = 5, ge = 100, ai = 1e-3;
1677
+ class Vt {
1678
+ static create(t) {
1679
+ const e = new Vt();
1680
+ return e.parse(t), e._physicsRig.gravity.y = 0, e;
1681
+ }
1682
+ evaluate(t, e) {
1683
+ let i, r, a, n;
1684
+ const o = new y();
1685
+ let l, h, u, c, d, _, p, x;
1686
+ d = t.getModel().parameters.values, _ = t.getModel().parameters.maximumValues, p = t.getModel().parameters.minimumValues, x = t.getModel().parameters.defaultValues;
1687
+ for (let g = 0; g < this._physicsRig.subRigCount; ++g) {
1688
+ i = { angle: 0 }, o.x = 0, o.y = 0, l = this._physicsRig.settings[g], h = this._physicsRig.inputs.slice(l.baseInputIndex), u = this._physicsRig.outputs.slice(l.baseOutputIndex), c = this._physicsRig.particles.slice(l.baseParticleIndex);
1689
+ for (let m = 0; m < l.inputCount; ++m)
1690
+ r = h[m].weight / ge, h[m].sourceParameterIndex == -1 && (h[m].sourceParameterIndex = t.getParameterIndex(h[m].source.id)), h[m].getNormalizedParameterValue(o, i, d[h[m].sourceParameterIndex], p[h[m].sourceParameterIndex], _[h[m].sourceParameterIndex], x[h[m].sourceParameterIndex], l.normalizationPosition, l.normalizationAngle, h[m].reflect, r);
1691
+ a = S.degreesToRadian(-i.angle), o.x = o.x * S.cos(a) - o.y * S.sin(a), o.y = o.x * S.sin(a) + o.y * S.cos(a), yi(c, l.particleCount, o, i.angle, this._options.wind, ai * l.normalizationPosition.maximum, e, ri);
1692
+ for (let m = 0; m < l.outputCount; ++m) {
1693
+ const f = u[m].vertexIndex;
1694
+ if (f < 1 || f >= l.particleCount)
1695
+ break;
1696
+ u[m].destinationParameterIndex == -1 && (u[m].destinationParameterIndex = t.getParameterIndex(u[m].destination.id));
1697
+ const v = new y();
1698
+ v.x = c[f].position.x - c[f - 1].position.x, v.y = c[f].position.y - c[f - 1].position.y, n = u[m].getValue(v, c, f, u[m].reflect, this._options.gravity);
1699
+ const P = u[m].destinationParameterIndex, I = !Float32Array.prototype.slice && "subarray" in Float32Array.prototype ? JSON.parse(JSON.stringify(d.subarray(P))) : d.slice(P);
1700
+ vi(I, p[P], _[P], n, u[m]);
1701
+ for (let M = P, V = 0; M < d.length; M++, V++)
1702
+ d[M] = I[V];
1703
+ }
1704
+ }
1705
+ }
1706
+ setOptions(t) {
1707
+ this._options = t;
1708
+ }
1709
+ getOption() {
1710
+ return this._options;
1711
+ }
1712
+ constructor() {
1713
+ this._options = new ni(), this._options.gravity.y = -1, this._options.gravity.x = 0, this._options.wind.x = 0, this._options.wind.y = 0;
1714
+ }
1715
+ release() {
1716
+ this._physicsRig = void 0;
1717
+ }
1718
+ parse(t) {
1719
+ this._physicsRig = new ii();
1720
+ let e = new si(t);
1721
+ this._physicsRig.gravity = e.getGravity(), this._physicsRig.wind = e.getWind(), this._physicsRig.subRigCount = e.getSubRigCount();
1722
+ let i = 0, r = 0, a = 0;
1723
+ for (let n = 0; n < this._physicsRig.subRigCount; ++n) {
1724
+ const o = new Qe();
1725
+ o.normalizationPosition.minimum = e.getNormalizationPositionMinimumValue(n), o.normalizationPosition.maximum = e.getNormalizationPositionMaximumValue(n), o.normalizationPosition.defalut = e.getNormalizationPositionDefaultValue(n), o.normalizationAngle.minimum = e.getNormalizationAngleMinimumValue(n), o.normalizationAngle.maximum = e.getNormalizationAngleMaximumValue(n), o.normalizationAngle.defalut = e.getNormalizationAngleDefaultValue(n), o.inputCount = e.getInputCount(n), o.baseInputIndex = i, i += o.inputCount;
1726
+ for (let l = 0; l < o.inputCount; ++l) {
1727
+ const h = new ti();
1728
+ switch (h.sourceParameterIndex = -1, h.weight = e.getInputWeight(n, l), h.reflect = e.getInputReflect(n, l), e.getInputType(n, l)) {
1729
+ case Jt:
1730
+ h.type = J.CubismPhysicsSource_X, h.getNormalizedParameterValue = oi;
1731
+ break;
1732
+ case Zt:
1733
+ h.type = J.CubismPhysicsSource_Y, h.getNormalizedParameterValue = li;
1734
+ break;
1735
+ case Kt:
1736
+ h.type = J.CubismPhysicsSource_Angle, h.getNormalizedParameterValue = hi;
1737
+ break;
1738
+ }
1739
+ h.source.targetType = bt.CubismPhysicsTargetType_Parameter, h.source.id = e.getInputSourceId(n, l), this._physicsRig.inputs.push(h);
1740
+ }
1741
+ o.outputCount = e.getOutputCount(n), o.baseOutputIndex = r, r += o.outputCount;
1742
+ for (let l = 0; l < o.outputCount; ++l) {
1743
+ const h = new ei();
1744
+ switch (h.destinationParameterIndex = -1, h.vertexIndex = e.getOutputVertexIndex(n, l), h.angleScale = e.getOutputAngleScale(n, l), h.weight = e.getOutputWeight(n, l), h.destination.targetType = bt.CubismPhysicsTargetType_Parameter, h.destination.id = e.getOutputDestinationId(n, l), e.getOutputType(n, l)) {
1745
+ case Jt:
1746
+ h.type = J.CubismPhysicsSource_X, h.getValue = ui, h.getScale = pi;
1747
+ break;
1748
+ case Zt:
1749
+ h.type = J.CubismPhysicsSource_Y, h.getValue = di, h.getScale = _i;
1750
+ break;
1751
+ case Kt:
1752
+ h.type = J.CubismPhysicsSource_Angle, h.getValue = ci, h.getScale = fi;
1753
+ break;
1754
+ }
1755
+ h.reflect = e.getOutputReflect(n, l), this._physicsRig.outputs.push(h);
1756
+ }
1757
+ o.particleCount = e.getParticleCount(n), o.baseParticleIndex = a, a += o.particleCount;
1758
+ for (let l = 0; l < o.particleCount; ++l) {
1759
+ const h = new Ke();
1760
+ h.mobility = e.getParticleMobility(n, l), h.delay = e.getParticleDelay(n, l), h.acceleration = e.getParticleAcceleration(n, l), h.radius = e.getParticleRadius(n, l), h.position = e.getParticlePosition(n, l), this._physicsRig.particles.push(h);
1761
+ }
1762
+ this._physicsRig.settings.push(o);
1763
+ }
1764
+ this.initialize(), e.release();
1765
+ }
1766
+ initialize() {
1767
+ let t, e, i;
1768
+ for (let r = 0; r < this._physicsRig.subRigCount; ++r) {
1769
+ e = this._physicsRig.settings[r], t = this._physicsRig.particles.slice(e.baseParticleIndex), t[0].initialPosition = new y(0, 0), t[0].lastPosition = new y(t[0].initialPosition.x, t[0].initialPosition.y), t[0].lastGravity = new y(0, -1), t[0].lastGravity.y *= -1, t[0].velocity = new y(0, 0), t[0].force = new y(0, 0);
1770
+ for (let a = 1; a < e.particleCount; ++a)
1771
+ i = new y(0, 0), i.y = t[a].radius, t[a].initialPosition = new y(t[a - 1].initialPosition.x + i.x, t[a - 1].initialPosition.y + i.y), t[a].position = new y(t[a].initialPosition.x, t[a].initialPosition.y), t[a].lastPosition = new y(t[a].initialPosition.x, t[a].initialPosition.y), t[a].lastGravity = new y(0, -1), t[a].lastGravity.y *= -1, t[a].velocity = new y(0, 0), t[a].force = new y(0, 0);
1772
+ }
1773
+ }
1774
+ }
1775
+ class ni {
1776
+ constructor() {
1777
+ this.gravity = new y(0, 0), this.wind = new y(0, 0);
1778
+ }
1779
+ }
1780
+ function oi(s, t, e, i, r, a, n, o, l, h) {
1781
+ s.x += Nt(e, i, r, a, n.minimum, n.maximum, n.defalut, l) * h;
1782
+ }
1783
+ function li(s, t, e, i, r, a, n, o, l, h) {
1784
+ s.y += Nt(e, i, r, a, n.minimum, n.maximum, n.defalut, l) * h;
1785
+ }
1786
+ function hi(s, t, e, i, r, a, n, o, l, h) {
1787
+ t.angle += Nt(e, i, r, a, o.minimum, o.maximum, o.defalut, l) * h;
1788
+ }
1789
+ function ui(s, t, e, i, r) {
1790
+ let a = s.x;
1791
+ return i && (a *= -1), a;
1792
+ }
1793
+ function di(s, t, e, i, r) {
1794
+ let a = s.y;
1795
+ return i && (a *= -1), a;
1796
+ }
1797
+ function ci(s, t, e, i, r) {
1798
+ let a;
1799
+ return e >= 2 ? r = t[e - 1].position.substract(t[e - 2].position) : r = r.multiplyByScaler(-1), a = S.directionToRadian(r, s), i && (a *= -1), a;
1800
+ }
1801
+ function mi(s, t) {
1802
+ return Math.abs(Math.max(s, t) - Math.min(s, t));
1803
+ }
1804
+ function gi(s, t) {
1805
+ return Math.min(s, t) + mi(s, t) / 2;
1806
+ }
1807
+ function pi(s, t) {
1808
+ return s.x;
1809
+ }
1810
+ function _i(s, t) {
1811
+ return s.y;
1812
+ }
1813
+ function fi(s, t) {
1814
+ return t;
1815
+ }
1816
+ function yi(s, t, e, i, r, a, n, o) {
1817
+ let l, h, u, c, d = new y(0, 0), _ = new y(0, 0), p = new y(0, 0), x = new y(0, 0);
1818
+ s[0].position = new y(e.x, e.y), l = S.degreesToRadian(i), c = S.radianToDirection(l), c.normalize();
1819
+ for (let g = 1; g < t; ++g)
1820
+ s[g].force = c.multiplyByScaler(s[g].acceleration).add(r), s[g].lastPosition = new y(s[g].position.x, s[g].position.y), h = s[g].delay * n * 30, d = s[g].position.substract(s[g - 1].position), u = S.directionToRadian(s[g].lastGravity, c) / o, d.x = S.cos(u) * d.x - d.y * S.sin(u), d.y = S.sin(u) * d.x + d.y * S.cos(u), s[g].position = s[g - 1].position.add(d), _ = s[g].velocity.multiplyByScaler(h), p = s[g].force.multiplyByScaler(h).multiplyByScaler(h), s[g].position = s[g].position.add(_).add(p), x = s[g].position.substract(s[g - 1].position), x.normalize(), s[g].position = s[g - 1].position.add(x.multiplyByScaler(s[g].radius)), S.abs(s[g].position.x) < a && (s[g].position.x = 0), h != 0 && (s[g].velocity = s[g].position.substract(s[g].lastPosition), s[g].velocity = s[g].velocity.divisionByScalar(h), s[g].velocity = s[g].velocity.multiplyByScaler(s[g].mobility)), s[g].force = new y(0, 0), s[g].lastGravity = new y(c.x, c.y);
1821
+ }
1822
+ function vi(s, t, e, i, r) {
1823
+ let a, n, o;
1824
+ a = r.getScale(r.translationScale, r.angleScale), n = i * a, n < t ? (n < r.valueBelowMinimum && (r.valueBelowMinimum = n), n = t) : n > e && (n > r.valueExceededMaximum && (r.valueExceededMaximum = n), n = e), o = r.weight / ge, o >= 1 || (n = s[0] * (1 - o) + n * o), s[0] = n;
1825
+ }
1826
+ function Nt(s, t, e, i, r, a, n, o) {
1827
+ let l = 0;
1828
+ const h = S.max(e, t);
1829
+ h < s && (s = h);
1830
+ const u = S.min(e, t);
1831
+ u > s && (s = u);
1832
+ const c = S.min(r, a), d = S.max(r, a), _ = n, p = gi(u, h), x = s - p;
1833
+ switch (Math.sign(x)) {
1834
+ case 1: {
1835
+ const g = d - _, m = h - p;
1836
+ m != 0 && (l = x * (g / m), l += _);
1837
+ break;
1838
+ }
1839
+ case -1: {
1840
+ const g = c - _, m = u - p;
1841
+ m != 0 && (l = x * (g / m), l += _);
1842
+ break;
1843
+ }
1844
+ case 0: {
1845
+ l = _;
1846
+ break;
1847
+ }
1848
+ }
1849
+ return o ? l : l * -1;
1850
+ }
1851
+ class wt {
1852
+ constructor(t = 0, e = 0, i = 0, r = 0) {
1853
+ this.x = t, this.y = e, this.width = i, this.height = r;
1854
+ }
1855
+ getCenterX() {
1856
+ return this.x + 0.5 * this.width;
1857
+ }
1858
+ getCenterY() {
1859
+ return this.y + 0.5 * this.height;
1860
+ }
1861
+ getRight() {
1862
+ return this.x + this.width;
1863
+ }
1864
+ getBottom() {
1865
+ return this.y + this.height;
1866
+ }
1867
+ setRect(t) {
1868
+ this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height;
1869
+ }
1870
+ expand(t, e) {
1871
+ this.x -= t, this.y -= e, this.width += t * 2, this.height += e * 2;
1872
+ }
1873
+ }
1874
+ const Mt = 4, xi = 10;
1875
+ let W, ot, It;
1876
+ class Ct {
1877
+ getChannelFlagAsColor(t) {
1878
+ return this._channelColors[t];
1879
+ }
1880
+ getMaskRenderTexture() {
1881
+ let t = 0;
1882
+ if (this._maskTexture && this._maskTexture.texture != 0 && (this._maskTexture.frameNo = this._currentFrameNo, t = this._maskTexture.texture), t == 0) {
1883
+ const e = this._clippingMaskBufferSize;
1884
+ this._colorBuffer = this.gl.createTexture(), this.gl.bindTexture(this.gl.TEXTURE_2D, this._colorBuffer), this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, e, e, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, null), this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE), this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE), this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.LINEAR), this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.LINEAR), this.gl.bindTexture(this.gl.TEXTURE_2D, null), t = this.gl.createFramebuffer(), this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, t), this.gl.framebufferTexture2D(this.gl.FRAMEBUFFER, this.gl.COLOR_ATTACHMENT0, this.gl.TEXTURE_2D, this._colorBuffer, 0), this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, It), this._maskTexture = new Pi(this._currentFrameNo, t);
1885
+ }
1886
+ return t;
1887
+ }
1888
+ setGL(t) {
1889
+ this.gl = t;
1890
+ }
1891
+ calcClippedDrawTotalBounds(t, e) {
1892
+ let i = Number.MAX_VALUE, r = Number.MAX_VALUE, a = Number.MIN_VALUE, n = Number.MIN_VALUE;
1893
+ const o = e._clippedDrawableIndexList.length;
1894
+ for (let l = 0; l < o; l++) {
1895
+ const h = e._clippedDrawableIndexList[l], u = t.getDrawableVertexCount(h), c = t.getDrawableVertices(h);
1896
+ let d = Number.MAX_VALUE, _ = Number.MAX_VALUE, p = Number.MIN_VALUE, x = Number.MIN_VALUE;
1897
+ const g = u * xt.vertexStep;
1898
+ for (let m = xt.vertexOffset; m < g; m += xt.vertexStep) {
1899
+ const f = c[m], v = c[m + 1];
1900
+ f < d && (d = f), f > p && (p = f), v < _ && (_ = v), v > x && (x = v);
1901
+ }
1902
+ if (d != Number.MAX_VALUE)
1903
+ if (d < i && (i = d), _ < r && (r = _), p > a && (a = p), x > n && (n = x), i == Number.MAX_VALUE)
1904
+ e._allClippedDrawRect.x = 0, e._allClippedDrawRect.y = 0, e._allClippedDrawRect.width = 0, e._allClippedDrawRect.height = 0, e._isUsing = !1;
1905
+ else {
1906
+ e._isUsing = !0;
1907
+ const m = a - i, f = n - r;
1908
+ e._allClippedDrawRect.x = i, e._allClippedDrawRect.y = r, e._allClippedDrawRect.width = m, e._allClippedDrawRect.height = f;
1909
+ }
1910
+ }
1911
+ }
1912
+ constructor() {
1913
+ this._maskRenderTexture = null, this._colorBuffer = null, this._currentFrameNo = 0, this._clippingMaskBufferSize = 256, this._clippingContextListForMask = [], this._clippingContextListForDraw = [], this._channelColors = [], this._tmpBoundsOnModel = new wt(), this._tmpMatrix = new R(), this._tmpMatrixForMask = new R(), this._tmpMatrixForDraw = new R();
1914
+ let t = new at();
1915
+ t.R = 1, t.G = 0, t.B = 0, t.A = 0, this._channelColors.push(t), t = new at(), t.R = 0, t.G = 1, t.B = 0, t.A = 0, this._channelColors.push(t), t = new at(), t.R = 0, t.G = 0, t.B = 1, t.A = 0, this._channelColors.push(t), t = new at(), t.R = 0, t.G = 0, t.B = 0, t.A = 1, this._channelColors.push(t);
1916
+ }
1917
+ release() {
1918
+ var t, e, i;
1919
+ const r = this;
1920
+ for (let a = 0; a < this._clippingContextListForMask.length; a++)
1921
+ this._clippingContextListForMask[a] && ((t = this._clippingContextListForMask[a]) == null || t.release());
1922
+ r._clippingContextListForMask = void 0, r._clippingContextListForDraw = void 0, this._maskTexture && ((e = this.gl) == null || e.deleteFramebuffer(this._maskTexture.texture), r._maskTexture = void 0), r._channelColors = void 0, (i = this.gl) == null || i.deleteTexture(this._colorBuffer), this._colorBuffer = null;
1923
+ }
1924
+ initialize(t, e, i, r) {
1925
+ for (let a = 0; a < e; a++) {
1926
+ if (r[a] <= 0) {
1927
+ this._clippingContextListForDraw.push(null);
1928
+ continue;
1929
+ }
1930
+ let n = this.findSameClip(i[a], r[a]);
1931
+ n == null && (n = new Mi(this, i[a], r[a]), this._clippingContextListForMask.push(n)), n.addClippedDrawable(a), this._clippingContextListForDraw.push(n);
1932
+ }
1933
+ }
1934
+ setupClippingContext(t, e) {
1935
+ this._currentFrameNo++;
1936
+ let i = 0;
1937
+ for (let r = 0; r < this._clippingContextListForMask.length; r++) {
1938
+ const a = this._clippingContextListForMask[r];
1939
+ this.calcClippedDrawTotalBounds(t, a), a._isUsing && i++;
1940
+ }
1941
+ if (i > 0) {
1942
+ this.gl.viewport(0, 0, this._clippingMaskBufferSize, this._clippingMaskBufferSize), this._maskRenderTexture = this.getMaskRenderTexture(), e.getMvpMatrix(), e.preDraw(), this.setupLayoutBounds(i), this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, this._maskRenderTexture), this.gl.clearColor(1, 1, 1, 1), this.gl.clear(this.gl.COLOR_BUFFER_BIT);
1943
+ for (let r = 0; r < this._clippingContextListForMask.length; r++) {
1944
+ const a = this._clippingContextListForMask[r], n = a._allClippedDrawRect, o = a._layoutBounds, l = 0.05;
1945
+ this._tmpBoundsOnModel.setRect(n), this._tmpBoundsOnModel.expand(n.width * l, n.height * l);
1946
+ const h = o.width / this._tmpBoundsOnModel.width, u = o.height / this._tmpBoundsOnModel.height;
1947
+ this._tmpMatrix.loadIdentity(), this._tmpMatrix.translateRelative(-1, -1), this._tmpMatrix.scaleRelative(2, 2), this._tmpMatrix.translateRelative(o.x, o.y), this._tmpMatrix.scaleRelative(h, u), this._tmpMatrix.translateRelative(-this._tmpBoundsOnModel.x, -this._tmpBoundsOnModel.y), this._tmpMatrixForMask.setMatrix(this._tmpMatrix.getArray()), this._tmpMatrix.loadIdentity(), this._tmpMatrix.translateRelative(o.x, o.y), this._tmpMatrix.scaleRelative(h, u), this._tmpMatrix.translateRelative(-this._tmpBoundsOnModel.x, -this._tmpBoundsOnModel.y), this._tmpMatrixForDraw.setMatrix(this._tmpMatrix.getArray()), a._matrixForMask.setMatrix(this._tmpMatrixForMask.getArray()), a._matrixForDraw.setMatrix(this._tmpMatrixForDraw.getArray());
1948
+ const c = a._clippingIdCount;
1949
+ for (let d = 0; d < c; d++) {
1950
+ const _ = a._clippingIdList[d];
1951
+ t.getDrawableDynamicFlagVertexPositionsDidChange(_) && (e.setIsCulling(t.getDrawableCulling(_) != !1), e.setClippingContextBufferForMask(a), e.drawMesh(t.getDrawableTextureIndices(_), t.getDrawableVertexIndexCount(_), t.getDrawableVertexCount(_), t.getDrawableVertexIndices(_), t.getDrawableVertices(_), t.getDrawableVertexUvs(_), t.getDrawableOpacity(_), z.CubismBlendMode_Normal, !1));
1952
+ }
1953
+ }
1954
+ this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, It), e.setClippingContextBufferForMask(null), this.gl.viewport(ot[0], ot[1], ot[2], ot[3]);
1955
+ }
1956
+ }
1957
+ findSameClip(t, e) {
1958
+ for (let i = 0; i < this._clippingContextListForMask.length; i++) {
1959
+ const r = this._clippingContextListForMask[i], a = r._clippingIdCount;
1960
+ if (a != e)
1961
+ continue;
1962
+ let n = 0;
1963
+ for (let o = 0; o < a; o++) {
1964
+ const l = r._clippingIdList[o];
1965
+ for (let h = 0; h < a; h++)
1966
+ if (t[h] == l) {
1967
+ n++;
1968
+ break;
1969
+ }
1970
+ }
1971
+ if (n == a)
1972
+ return r;
1973
+ }
1974
+ return null;
1975
+ }
1976
+ setupLayoutBounds(t) {
1977
+ let e = t / Mt, i = t % Mt;
1978
+ e = ~~e, i = ~~i;
1979
+ let r = 0;
1980
+ for (let a = 0; a < Mt; a++) {
1981
+ const n = e + (a < i ? 1 : 0);
1982
+ if (n != 0)
1983
+ if (n == 1) {
1984
+ const o = this._clippingContextListForMask[r++];
1985
+ o._layoutChannelNo = a, o._layoutBounds.x = 0, o._layoutBounds.y = 0, o._layoutBounds.width = 1, o._layoutBounds.height = 1;
1986
+ } else if (n == 2)
1987
+ for (let o = 0; o < n; o++) {
1988
+ let l = o % 2;
1989
+ l = ~~l;
1990
+ const h = this._clippingContextListForMask[r++];
1991
+ h._layoutChannelNo = a, h._layoutBounds.x = l * 0.5, h._layoutBounds.y = 0, h._layoutBounds.width = 0.5, h._layoutBounds.height = 1;
1992
+ }
1993
+ else if (n <= 4)
1994
+ for (let o = 0; o < n; o++) {
1995
+ let l = o % 2, h = o / 2;
1996
+ l = ~~l, h = ~~h;
1997
+ const u = this._clippingContextListForMask[r++];
1998
+ u._layoutChannelNo = a, u._layoutBounds.x = l * 0.5, u._layoutBounds.y = h * 0.5, u._layoutBounds.width = 0.5, u._layoutBounds.height = 0.5;
1999
+ }
2000
+ else if (n <= 9)
2001
+ for (let o = 0; o < n; o++) {
2002
+ let l = o % 3, h = o / 3;
2003
+ l = ~~l, h = ~~h;
2004
+ const u = this._clippingContextListForMask[r++];
2005
+ u._layoutChannelNo = a, u._layoutBounds.x = l / 3, u._layoutBounds.y = h / 3, u._layoutBounds.width = 1 / 3, u._layoutBounds.height = 1 / 3;
2006
+ }
2007
+ else if (ut.supportMoreMaskDivisions && n <= 16)
2008
+ for (let o = 0; o < n; o++) {
2009
+ let l = o % 4, h = o / 4;
2010
+ l = ~~l, h = ~~h;
2011
+ const u = this._clippingContextListForMask[r++];
2012
+ u._layoutChannelNo = a, u._layoutBounds.x = l / 4, u._layoutBounds.y = h / 4, u._layoutBounds.width = 1 / 4, u._layoutBounds.height = 1 / 4;
2013
+ }
2014
+ else
2015
+ tt("not supported mask count : {0}", n);
2016
+ }
2017
+ }
2018
+ getColorBuffer() {
2019
+ return this._colorBuffer;
2020
+ }
2021
+ getClippingContextListForDraw() {
2022
+ return this._clippingContextListForDraw;
2023
+ }
2024
+ setClippingMaskBufferSize(t) {
2025
+ this._clippingMaskBufferSize = t;
2026
+ }
2027
+ getClippingMaskBufferSize() {
2028
+ return this._clippingMaskBufferSize;
2029
+ }
2030
+ }
2031
+ class Pi {
2032
+ constructor(t, e) {
2033
+ this.frameNo = t, this.texture = e;
2034
+ }
2035
+ }
2036
+ class Mi {
2037
+ constructor(t, e, i) {
2038
+ this._isUsing = !1, this._owner = t, this._clippingIdList = e, this._clippingIdCount = i, this._allClippedDrawRect = new wt(), this._layoutBounds = new wt(), this._clippedDrawableIndexList = [], this._matrixForMask = new R(), this._matrixForDraw = new R();
2039
+ }
2040
+ release() {
2041
+ const t = this;
2042
+ t._layoutBounds = void 0, t._allClippedDrawRect = void 0, t._clippedDrawableIndexList = void 0;
2043
+ }
2044
+ addClippedDrawable(t) {
2045
+ this._clippedDrawableIndexList.push(t);
2046
+ }
2047
+ getClippingManager() {
2048
+ return this._owner;
2049
+ }
2050
+ setGl(t) {
2051
+ this._owner.setGL(t);
2052
+ }
2053
+ }
2054
+ class et {
2055
+ static getInstance() {
2056
+ return W == null && (W = new et()), W;
2057
+ }
2058
+ static deleteInstance() {
2059
+ W && (W.release(), W = void 0);
2060
+ }
2061
+ constructor() {
2062
+ this._shaderSets = [];
2063
+ }
2064
+ release() {
2065
+ this.releaseShaderProgram();
2066
+ }
2067
+ setupShaderProgram(t, e, i, r, a, n, o, l, h, u, c, d, _) {
2068
+ c || tt("NoPremultipliedAlpha is not allowed"), this._shaderSets.length == 0 && this.generateShaders();
2069
+ let p, x, g, m;
2070
+ const f = t.getClippingContextBufferForMask();
2071
+ if (f != null) {
2072
+ const v = this._shaderSets[lt.ShaderNames_SetupMask];
2073
+ this.gl.useProgram(v.shaderProgram), this.gl.activeTexture(this.gl.TEXTURE0), this.gl.bindTexture(this.gl.TEXTURE_2D, e), this.gl.uniform1i(v.samplerTexture0Location, 0), o.vertex == null && (o.vertex = this.gl.createBuffer()), this.gl.bindBuffer(this.gl.ARRAY_BUFFER, o.vertex), this.gl.bufferData(this.gl.ARRAY_BUFFER, r, this.gl.DYNAMIC_DRAW), this.gl.enableVertexAttribArray(v.attributePositionLocation), this.gl.vertexAttribPointer(v.attributePositionLocation, 2, this.gl.FLOAT, !1, 0, 0), o.uv == null && (o.uv = this.gl.createBuffer()), this.gl.bindBuffer(this.gl.ARRAY_BUFFER, o.uv), this.gl.bufferData(this.gl.ARRAY_BUFFER, n, this.gl.DYNAMIC_DRAW), this.gl.enableVertexAttribArray(v.attributeTexCoordLocation), this.gl.vertexAttribPointer(v.attributeTexCoordLocation, 2, this.gl.FLOAT, !1, 0, 0);
2074
+ const P = f._layoutChannelNo, I = f.getClippingManager().getChannelFlagAsColor(P);
2075
+ this.gl.uniform4f(v.uniformChannelFlagLocation, I.R, I.G, I.B, I.A), this.gl.uniformMatrix4fv(v.uniformClipMatrixLocation, !1, f._matrixForMask.getArray());
2076
+ const M = f._layoutBounds;
2077
+ this.gl.uniform4f(v.uniformBaseColorLocation, M.x * 2 - 1, M.y * 2 - 1, M.getRight() * 2 - 1, M.getBottom() * 2 - 1), p = this.gl.ZERO, x = this.gl.ONE_MINUS_SRC_COLOR, g = this.gl.ZERO, m = this.gl.ONE_MINUS_SRC_ALPHA;
2078
+ } else {
2079
+ const v = t.getClippingContextBufferForDraw(), I = v != null ? _ ? 2 : 1 : 0;
2080
+ let M;
2081
+ switch (h) {
2082
+ case z.CubismBlendMode_Normal:
2083
+ default:
2084
+ M = this._shaderSets[lt.ShaderNames_NormalPremultipliedAlpha + I], p = this.gl.ONE, x = this.gl.ONE_MINUS_SRC_ALPHA, g = this.gl.ONE, m = this.gl.ONE_MINUS_SRC_ALPHA;
2085
+ break;
2086
+ case z.CubismBlendMode_Additive:
2087
+ M = this._shaderSets[lt.ShaderNames_AddPremultipliedAlpha + I], p = this.gl.ONE, x = this.gl.ONE, g = this.gl.ZERO, m = this.gl.ONE;
2088
+ break;
2089
+ case z.CubismBlendMode_Multiplicative:
2090
+ M = this._shaderSets[lt.ShaderNames_MultPremultipliedAlpha + I], p = this.gl.DST_COLOR, x = this.gl.ONE_MINUS_SRC_ALPHA, g = this.gl.ZERO, m = this.gl.ONE;
2091
+ break;
2092
+ }
2093
+ if (this.gl.useProgram(M.shaderProgram), o.vertex == null && (o.vertex = this.gl.createBuffer()), this.gl.bindBuffer(this.gl.ARRAY_BUFFER, o.vertex), this.gl.bufferData(this.gl.ARRAY_BUFFER, r, this.gl.DYNAMIC_DRAW), this.gl.enableVertexAttribArray(M.attributePositionLocation), this.gl.vertexAttribPointer(M.attributePositionLocation, 2, this.gl.FLOAT, !1, 0, 0), o.uv == null && (o.uv = this.gl.createBuffer()), this.gl.bindBuffer(this.gl.ARRAY_BUFFER, o.uv), this.gl.bufferData(this.gl.ARRAY_BUFFER, n, this.gl.DYNAMIC_DRAW), this.gl.enableVertexAttribArray(M.attributeTexCoordLocation), this.gl.vertexAttribPointer(M.attributeTexCoordLocation, 2, this.gl.FLOAT, !1, 0, 0), v != null) {
2094
+ this.gl.activeTexture(this.gl.TEXTURE1);
2095
+ const V = v.getClippingManager().getColorBuffer();
2096
+ this.gl.bindTexture(this.gl.TEXTURE_2D, V), this.gl.uniform1i(M.samplerTexture1Location, 1), this.gl.uniformMatrix4fv(M.uniformClipMatrixLocation, !1, v._matrixForDraw.getArray());
2097
+ const Xt = v._layoutChannelNo, N = v.getClippingManager().getChannelFlagAsColor(Xt);
2098
+ this.gl.uniform4f(M.uniformChannelFlagLocation, N.R, N.G, N.B, N.A);
2099
+ }
2100
+ this.gl.activeTexture(this.gl.TEXTURE0), this.gl.bindTexture(this.gl.TEXTURE_2D, e), this.gl.uniform1i(M.samplerTexture0Location, 0), this.gl.uniformMatrix4fv(M.uniformMatrixLocation, !1, d.getArray()), this.gl.uniform4f(M.uniformBaseColorLocation, u.R, u.G, u.B, u.A);
2101
+ }
2102
+ o.index == null && (o.index = this.gl.createBuffer()), this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, o.index), this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER, a, this.gl.DYNAMIC_DRAW), this.gl.blendFuncSeparate(p, x, g, m);
2103
+ }
2104
+ releaseShaderProgram() {
2105
+ for (let t = 0; t < this._shaderSets.length; t++)
2106
+ this.gl.deleteProgram(this._shaderSets[t].shaderProgram), this._shaderSets[t].shaderProgram = 0;
2107
+ this._shaderSets = [];
2108
+ }
2109
+ generateShaders() {
2110
+ for (let t = 0; t < xi; t++)
2111
+ this._shaderSets.push({});
2112
+ this._shaderSets[0].shaderProgram = this.loadShaderProgram(Ci, Si), this._shaderSets[1].shaderProgram = this.loadShaderProgram(bi, wi), this._shaderSets[2].shaderProgram = this.loadShaderProgram(Qt, Ii), this._shaderSets[3].shaderProgram = this.loadShaderProgram(Qt, Li), this._shaderSets[4].shaderProgram = this._shaderSets[1].shaderProgram, this._shaderSets[5].shaderProgram = this._shaderSets[2].shaderProgram, this._shaderSets[6].shaderProgram = this._shaderSets[3].shaderProgram, this._shaderSets[7].shaderProgram = this._shaderSets[1].shaderProgram, this._shaderSets[8].shaderProgram = this._shaderSets[2].shaderProgram, this._shaderSets[9].shaderProgram = this._shaderSets[3].shaderProgram, this._shaderSets[0].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[0].shaderProgram, "a_position"), this._shaderSets[0].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[0].shaderProgram, "a_texCoord"), this._shaderSets[0].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[0].shaderProgram, "s_texture0"), this._shaderSets[0].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[0].shaderProgram, "u_clipMatrix"), this._shaderSets[0].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[0].shaderProgram, "u_channelFlag"), this._shaderSets[0].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[0].shaderProgram, "u_baseColor"), this._shaderSets[1].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[1].shaderProgram, "a_position"), this._shaderSets[1].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[1].shaderProgram, "a_texCoord"), this._shaderSets[1].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[1].shaderProgram, "s_texture0"), this._shaderSets[1].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[1].shaderProgram, "u_matrix"), this._shaderSets[1].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[1].shaderProgram, "u_baseColor"), this._shaderSets[2].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[2].shaderProgram, "a_position"), this._shaderSets[2].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[2].shaderProgram, "a_texCoord"), this._shaderSets[2].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[2].shaderProgram, "s_texture0"), this._shaderSets[2].samplerTexture1Location = this.gl.getUniformLocation(this._shaderSets[2].shaderProgram, "s_texture1"), this._shaderSets[2].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[2].shaderProgram, "u_matrix"), this._shaderSets[2].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[2].shaderProgram, "u_clipMatrix"), this._shaderSets[2].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[2].shaderProgram, "u_channelFlag"), this._shaderSets[2].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[2].shaderProgram, "u_baseColor"), this._shaderSets[3].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[3].shaderProgram, "a_position"), this._shaderSets[3].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[3].shaderProgram, "a_texCoord"), this._shaderSets[3].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[3].shaderProgram, "s_texture0"), this._shaderSets[3].samplerTexture1Location = this.gl.getUniformLocation(this._shaderSets[3].shaderProgram, "s_texture1"), this._shaderSets[3].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[3].shaderProgram, "u_matrix"), this._shaderSets[3].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[3].shaderProgram, "u_clipMatrix"), this._shaderSets[3].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[3].shaderProgram, "u_channelFlag"), this._shaderSets[3].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[3].shaderProgram, "u_baseColor"), this._shaderSets[4].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[4].shaderProgram, "a_position"), this._shaderSets[4].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[4].shaderProgram, "a_texCoord"), this._shaderSets[4].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[4].shaderProgram, "s_texture0"), this._shaderSets[4].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[4].shaderProgram, "u_matrix"), this._shaderSets[4].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[4].shaderProgram, "u_baseColor"), this._shaderSets[5].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[5].shaderProgram, "a_position"), this._shaderSets[5].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[5].shaderProgram, "a_texCoord"), this._shaderSets[5].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[5].shaderProgram, "s_texture0"), this._shaderSets[5].samplerTexture1Location = this.gl.getUniformLocation(this._shaderSets[5].shaderProgram, "s_texture1"), this._shaderSets[5].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[5].shaderProgram, "u_matrix"), this._shaderSets[5].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[5].shaderProgram, "u_clipMatrix"), this._shaderSets[5].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[5].shaderProgram, "u_channelFlag"), this._shaderSets[5].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[5].shaderProgram, "u_baseColor"), this._shaderSets[6].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[6].shaderProgram, "a_position"), this._shaderSets[6].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[6].shaderProgram, "a_texCoord"), this._shaderSets[6].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[6].shaderProgram, "s_texture0"), this._shaderSets[6].samplerTexture1Location = this.gl.getUniformLocation(this._shaderSets[6].shaderProgram, "s_texture1"), this._shaderSets[6].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[6].shaderProgram, "u_matrix"), this._shaderSets[6].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[6].shaderProgram, "u_clipMatrix"), this._shaderSets[6].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[6].shaderProgram, "u_channelFlag"), this._shaderSets[6].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[6].shaderProgram, "u_baseColor"), this._shaderSets[7].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[7].shaderProgram, "a_position"), this._shaderSets[7].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[7].shaderProgram, "a_texCoord"), this._shaderSets[7].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[7].shaderProgram, "s_texture0"), this._shaderSets[7].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[7].shaderProgram, "u_matrix"), this._shaderSets[7].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[7].shaderProgram, "u_baseColor"), this._shaderSets[8].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[8].shaderProgram, "a_position"), this._shaderSets[8].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[8].shaderProgram, "a_texCoord"), this._shaderSets[8].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[8].shaderProgram, "s_texture0"), this._shaderSets[8].samplerTexture1Location = this.gl.getUniformLocation(this._shaderSets[8].shaderProgram, "s_texture1"), this._shaderSets[8].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[8].shaderProgram, "u_matrix"), this._shaderSets[8].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[8].shaderProgram, "u_clipMatrix"), this._shaderSets[8].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[8].shaderProgram, "u_channelFlag"), this._shaderSets[8].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[8].shaderProgram, "u_baseColor"), this._shaderSets[9].attributePositionLocation = this.gl.getAttribLocation(this._shaderSets[9].shaderProgram, "a_position"), this._shaderSets[9].attributeTexCoordLocation = this.gl.getAttribLocation(this._shaderSets[9].shaderProgram, "a_texCoord"), this._shaderSets[9].samplerTexture0Location = this.gl.getUniformLocation(this._shaderSets[9].shaderProgram, "s_texture0"), this._shaderSets[9].samplerTexture1Location = this.gl.getUniformLocation(this._shaderSets[9].shaderProgram, "s_texture1"), this._shaderSets[9].uniformMatrixLocation = this.gl.getUniformLocation(this._shaderSets[9].shaderProgram, "u_matrix"), this._shaderSets[9].uniformClipMatrixLocation = this.gl.getUniformLocation(this._shaderSets[9].shaderProgram, "u_clipMatrix"), this._shaderSets[9].uniformChannelFlagLocation = this.gl.getUniformLocation(this._shaderSets[9].shaderProgram, "u_channelFlag"), this._shaderSets[9].uniformBaseColorLocation = this.gl.getUniformLocation(this._shaderSets[9].shaderProgram, "u_baseColor");
2113
+ }
2114
+ loadShaderProgram(t, e) {
2115
+ let i = this.gl.createProgram(), r = this.compileShaderSource(this.gl.VERTEX_SHADER, t);
2116
+ if (!r)
2117
+ return tt("Vertex shader compile error!"), 0;
2118
+ let a = this.compileShaderSource(this.gl.FRAGMENT_SHADER, e);
2119
+ return a ? (this.gl.attachShader(i, r), this.gl.attachShader(i, a), this.gl.linkProgram(i), this.gl.getProgramParameter(i, this.gl.LINK_STATUS) ? (this.gl.deleteShader(r), this.gl.deleteShader(a), i) : (tt("Failed to link program: {0}", i), this.gl.deleteShader(r), this.gl.deleteShader(a), i && this.gl.deleteProgram(i), 0)) : (tt("Vertex shader compile error!"), 0);
2120
+ }
2121
+ compileShaderSource(t, e) {
2122
+ const i = e, r = this.gl.createShader(t);
2123
+ if (this.gl.shaderSource(r, i), this.gl.compileShader(r), !r) {
2124
+ const n = this.gl.getShaderInfoLog(r);
2125
+ tt("Shader compile log: {0} ", n);
2126
+ }
2127
+ return this.gl.getShaderParameter(r, this.gl.COMPILE_STATUS) ? r : (this.gl.deleteShader(r), null);
2128
+ }
2129
+ setGl(t) {
2130
+ this.gl = t;
2131
+ }
2132
+ }
2133
+ var lt = /* @__PURE__ */ ((s) => (s[s.ShaderNames_SetupMask = 0] = "ShaderNames_SetupMask", s[s.ShaderNames_NormalPremultipliedAlpha = 1] = "ShaderNames_NormalPremultipliedAlpha", s[s.ShaderNames_NormalMaskedPremultipliedAlpha = 2] = "ShaderNames_NormalMaskedPremultipliedAlpha", s[s.ShaderNames_NomralMaskedInvertedPremultipliedAlpha = 3] = "ShaderNames_NomralMaskedInvertedPremultipliedAlpha", s[s.ShaderNames_AddPremultipliedAlpha = 4] = "ShaderNames_AddPremultipliedAlpha", s[s.ShaderNames_AddMaskedPremultipliedAlpha = 5] = "ShaderNames_AddMaskedPremultipliedAlpha", s[s.ShaderNames_AddMaskedPremultipliedAlphaInverted = 6] = "ShaderNames_AddMaskedPremultipliedAlphaInverted", s[s.ShaderNames_MultPremultipliedAlpha = 7] = "ShaderNames_MultPremultipliedAlpha", s[s.ShaderNames_MultMaskedPremultipliedAlpha = 8] = "ShaderNames_MultMaskedPremultipliedAlpha", s[s.ShaderNames_MultMaskedPremultipliedAlphaInverted = 9] = "ShaderNames_MultMaskedPremultipliedAlphaInverted", s))(lt || {});
2134
+ const Ci = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_myPos;uniform mat4 u_clipMatrix;void main(){ gl_Position = u_clipMatrix * a_position; v_myPos = u_clipMatrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = 1.0 - v_texCoord.y;}", Si = "precision mediump float;varying vec2 v_texCoord;varying vec4 v_myPos;uniform vec4 u_baseColor;uniform vec4 u_channelFlag;uniform sampler2D s_texture0;void main(){ float isInside = step(u_baseColor.x, v_myPos.x/v_myPos.w) * step(u_baseColor.y, v_myPos.y/v_myPos.w) * step(v_myPos.x/v_myPos.w, u_baseColor.z) * step(v_myPos.y/v_myPos.w, u_baseColor.w); gl_FragColor = u_channelFlag * texture2D(s_texture0, v_texCoord).a * isInside;}", bi = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;uniform mat4 u_matrix;void main(){ gl_Position = u_matrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = 1.0 - v_texCoord.y;}", Qt = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_clipPos;uniform mat4 u_matrix;uniform mat4 u_clipMatrix;void main(){ gl_Position = u_matrix * a_position; v_clipPos = u_clipMatrix * a_position; v_texCoord = a_texCoord; v_texCoord.y = 1.0 - v_texCoord.y;}", wi = "precision mediump float;varying vec2 v_texCoord;uniform vec4 u_baseColor;uniform sampler2D s_texture0;void main(){ gl_FragColor = texture2D(s_texture0 , v_texCoord) * u_baseColor;}", Ii = "precision mediump float;varying vec2 v_texCoord;varying vec4 v_clipPos;uniform vec4 u_baseColor;uniform vec4 u_channelFlag;uniform sampler2D s_texture0;uniform sampler2D s_texture1;void main(){ vec4 col_formask = texture2D(s_texture0 , v_texCoord) * u_baseColor; vec4 clipMask = (1.0 - texture2D(s_texture1, v_clipPos.xy / v_clipPos.w)) * u_channelFlag; float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a; col_formask = col_formask * maskVal; gl_FragColor = col_formask;}", Li = "precision mediump float;varying vec2 v_texCoord;varying vec4 v_clipPos;uniform sampler2D s_texture0;uniform sampler2D s_texture1;uniform vec4 u_channelFlag;uniform vec4 u_baseColor;void main(){vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor;vec4 clipMask = (1.0 - texture2D(s_texture1, v_clipPos.xy / v_clipPos.w)) * u_channelFlag;float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a;col_formask = col_formask * (1.0 - maskVal);gl_FragColor = col_formask;}";
2135
+ class pe extends At {
2136
+ constructor() {
2137
+ super(), this._clippingContextBufferForMask = null, this._clippingContextBufferForDraw = null, this._clippingManager = new Ct(), this.firstDraw = !0, this._textures = {}, this._sortedDrawableIndexList = [], this._bufferData = {
2138
+ vertex: null,
2139
+ uv: null,
2140
+ index: null
2141
+ };
2142
+ }
2143
+ initialize(t) {
2144
+ t.isUsingMasking() && (this._clippingManager = new Ct(), this._clippingManager.initialize(t, t.getDrawableCount(), t.getDrawableMasks(), t.getDrawableMaskCounts()));
2145
+ for (let e = t.getDrawableCount() - 1; e >= 0; e--)
2146
+ this._sortedDrawableIndexList[e] = 0;
2147
+ super.initialize(t);
2148
+ }
2149
+ bindTexture(t, e) {
2150
+ this._textures[t] = e;
2151
+ }
2152
+ getBindedTextures() {
2153
+ return this._textures;
2154
+ }
2155
+ setClippingMaskBufferSize(t) {
2156
+ this._clippingManager.release(), this._clippingManager = new Ct(), this._clippingManager.setClippingMaskBufferSize(t), this._clippingManager.initialize(this.getModel(), this.getModel().getDrawableCount(), this.getModel().getDrawableMasks(), this.getModel().getDrawableMaskCounts());
2157
+ }
2158
+ getClippingMaskBufferSize() {
2159
+ return this._clippingManager.getClippingMaskBufferSize();
2160
+ }
2161
+ release() {
2162
+ var t, e, i;
2163
+ const r = this;
2164
+ this._clippingManager.release(), r._clippingManager = void 0, (t = this.gl) == null || t.deleteBuffer(this._bufferData.vertex), this._bufferData.vertex = null, (e = this.gl) == null || e.deleteBuffer(this._bufferData.uv), this._bufferData.uv = null, (i = this.gl) == null || i.deleteBuffer(this._bufferData.index), this._bufferData.index = null, r._bufferData = void 0, r._textures = void 0;
2165
+ }
2166
+ doDrawModel() {
2167
+ this.preDraw(), this._clippingManager != null && this._clippingManager.setupClippingContext(this.getModel(), this);
2168
+ const t = this.getModel().getDrawableCount(), e = this.getModel().getDrawableRenderOrders();
2169
+ for (let i = 0; i < t; ++i) {
2170
+ const r = e[i];
2171
+ this._sortedDrawableIndexList[r] = i;
2172
+ }
2173
+ for (let i = 0; i < t; ++i) {
2174
+ const r = this._sortedDrawableIndexList[i];
2175
+ this.getModel().getDrawableDynamicFlagIsVisible(r) && (this.setClippingContextBufferForDraw(this._clippingManager != null ? this._clippingManager.getClippingContextListForDraw()[r] : null), this.setIsCulling(this.getModel().getDrawableCulling(r)), this.drawMesh(this.getModel().getDrawableTextureIndices(r), this.getModel().getDrawableVertexIndexCount(r), this.getModel().getDrawableVertexCount(r), this.getModel().getDrawableVertexIndices(r), this.getModel().getDrawableVertices(r), this.getModel().getDrawableVertexUvs(r), this.getModel().getDrawableOpacity(r), this.getModel().getDrawableBlendMode(r), this.getModel().getDrawableInvertedMaskBit(r)));
2176
+ }
2177
+ }
2178
+ drawMesh(t, e, i, r, a, n, o, l, h) {
2179
+ this.isCulling() ? this.gl.enable(this.gl.CULL_FACE) : this.gl.disable(this.gl.CULL_FACE), this.gl.frontFace(this.gl.CCW);
2180
+ const u = this.getModelColor();
2181
+ this.getClippingContextBufferForMask() == null && (u.A *= o, this.isPremultipliedAlpha() && (u.R *= u.A, u.G *= u.A, u.B *= u.A));
2182
+ let c = null;
2183
+ this._textures[t] != null && (c = this._textures[t]), et.getInstance().setupShaderProgram(this, c, i, a, r, n, this._bufferData, o, l, u, this.isPremultipliedAlpha(), this.getMvpMatrix(), h), this.gl.drawElements(this.gl.TRIANGLES, e, this.gl.UNSIGNED_SHORT, 0), this.gl.useProgram(null), this.setClippingContextBufferForDraw(null), this.setClippingContextBufferForMask(null);
2184
+ }
2185
+ static doStaticRelease() {
2186
+ et.deleteInstance();
2187
+ }
2188
+ setRenderState(t, e) {
2189
+ It = t, ot = e;
2190
+ }
2191
+ preDraw() {
2192
+ this.firstDraw && (this.firstDraw = !1, this._anisortopy = this.gl.getExtension("EXT_texture_filter_anisotropic") || this.gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || this.gl.getExtension("MOZ_EXT_texture_filter_anisotropic")), this.gl.disable(this.gl.SCISSOR_TEST), this.gl.disable(this.gl.STENCIL_TEST), this.gl.disable(this.gl.DEPTH_TEST), this.gl.frontFace(this.gl.CW), this.gl.enable(this.gl.BLEND), this.gl.colorMask(!0, !0, !0, !0), this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null), this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, null);
2193
+ }
2194
+ setClippingContextBufferForMask(t) {
2195
+ this._clippingContextBufferForMask = t;
2196
+ }
2197
+ getClippingContextBufferForMask() {
2198
+ return this._clippingContextBufferForMask;
2199
+ }
2200
+ setClippingContextBufferForDraw(t) {
2201
+ this._clippingContextBufferForDraw = t;
2202
+ }
2203
+ getClippingContextBufferForDraw() {
2204
+ return this._clippingContextBufferForDraw;
2205
+ }
2206
+ startUp(t) {
2207
+ this.gl = t, this._clippingManager.setGL(t), et.getInstance().setGl(t);
2208
+ }
2209
+ }
2210
+ At.staticRelease = () => {
2211
+ pe.doStaticRelease();
2212
+ };
2213
+ class _e {
2214
+ constructor(t) {
2215
+ this.groups = t.Groups, this.hitAreas = t.HitAreas, this.layout = t.Layout, this.moc = t.FileReferences.Moc, this.expressions = t.FileReferences.Expressions, this.motions = t.FileReferences.Motions, this.textures = t.FileReferences.Textures, this.physics = t.FileReferences.Physics, this.pose = t.FileReferences.Pose;
2216
+ }
2217
+ getEyeBlinkParameters() {
2218
+ var t, e;
2219
+ return (e = (t = this.groups) == null ? void 0 : t.find((i) => i.Name === "EyeBlink")) == null ? void 0 : e.Ids;
2220
+ }
2221
+ getLipSyncParameters() {
2222
+ var t, e;
2223
+ return (e = (t = this.groups) == null ? void 0 : t.find((i) => i.Name === "LipSync")) == null ? void 0 : e.Ids;
2224
+ }
2225
+ }
2226
+ const hs = "HitArea", us = "Head", ds = "Body", cs = "Parts01Core", ms = "Parts01Arm_", gs = "Parts01ArmL_", ps = "Parts01ArmR_", Ti = "ParamAngleX", Ei = "ParamAngleY", Fi = "ParamAngleZ", _s = "ParamEyeLOpen", fs = "ParamEyeLSmile", ys = "ParamEyeROpen", vs = "ParamEyeRSmile", Di = "ParamEyeBallX", Ai = "ParamEyeBallY", xs = "ParamEyeBallForm", Ps = "ParamBrowLY", Ms = "ParamBrowRY", Cs = "ParamBrowLX", Ss = "ParamBrowRX", bs = "ParamBrowLAngle", ws = "ParamBrowRAngle", Is = "ParamBrowLForm", Ls = "ParamBrowRForm", Ts = "ParamMouthForm", Es = "ParamMouthOpenY", Fs = "ParamCheek", Bi = "ParamBodyAngleX", Ds = "ParamBodyAngleY", As = "ParamBodyAngleZ", Ri = "ParamBreath", Bs = "ParamArmLA", Rs = "ParamArmRA", Os = "ParamArmLB", ks = "ParamArmRB", Us = "ParamHandL", Vs = "ParamHandR", Ns = "ParamHairFront", Gs = "ParamHairSide", js = "ParamHairBack", zs = "ParamHairFluffy", Xs = "ParamShoulderY", Ys = "ParamBustX", Hs = "ParamBustY", Ws = "ParamBaseX", qs = "ParamBaseY", $s = "NONE:", te = 2, ee = 2;
2227
+ var F;
2228
+ ((s) => {
2229
+ s.LOG_LEVEL_VERBOSE = 0, s.LOG_LEVEL_WARNING = 1, s.LOG_LEVEL_ERROR = 2, s.LOG_LEVEL_NONE = 999, s.logLevel = s.LOG_LEVEL_WARNING, s.sound = !0, s.motionSync = !0, s.motionFadingDuration = 500, s.idleMotionFadingDuration = 2e3, s.expressionFadingDuration = 500, s.preserveExpressionOnMotion = !0, s.cubism4 = ut;
2230
+ })(F || (F = {}));
2231
+ const Js = "0.4.0", C = {
2232
+ log(s, ...t) {
2233
+ F.logLevel <= F.LOG_LEVEL_VERBOSE && console.log(`[${s}]`, ...t);
2234
+ },
2235
+ warn(s, ...t) {
2236
+ F.logLevel <= F.LOG_LEVEL_WARNING && console.warn(`[${s}]`, ...t);
2237
+ },
2238
+ error(s, ...t) {
2239
+ F.logLevel <= F.LOG_LEVEL_ERROR && console.error(`[${s}]`, ...t);
2240
+ }
2241
+ };
2242
+ function ie(s, t, e) {
2243
+ return s < t ? t : s > e ? e : s;
2244
+ }
2245
+ function Zs(s, t) {
2246
+ return Math.random() * (t - s) + s;
2247
+ }
2248
+ function Ks(s, t, e, i, r) {
2249
+ const a = t[i];
2250
+ a !== null && typeof a === s && (e[r] = a);
2251
+ }
2252
+ function Qs(s, t, e, i, r) {
2253
+ const a = t[i];
2254
+ Array.isArray(a) && (e[r] = a.filter((n) => n !== null && typeof n === s));
2255
+ }
2256
+ function fe(s, t) {
2257
+ t.forEach((e) => {
2258
+ Object.getOwnPropertyNames(e.prototype).forEach((i) => {
2259
+ i !== "constructor" && Object.defineProperty(s.prototype, i, Object.getOwnPropertyDescriptor(e.prototype, i));
2260
+ });
2261
+ });
2262
+ }
2263
+ function Oi(s) {
2264
+ let t = s.lastIndexOf("/");
2265
+ return t != -1 && (s = s.slice(0, t)), t = s.lastIndexOf("/"), t !== -1 && (s = s.slice(t + 1)), s;
2266
+ }
2267
+ function ki(s, t) {
2268
+ const e = s.indexOf(t);
2269
+ e !== -1 && s.splice(e, 1);
2270
+ }
2271
+ class ye extends Tt {
2272
+ constructor(t, e) {
2273
+ super(), this.expressions = [], this.reserveExpressionIndex = -1, this.destroyed = !1, this.settings = t, this.tag = `ExpressionManager(${t.name})`;
2274
+ }
2275
+ init() {
2276
+ this.defaultExpression = this.createExpression({}, void 0), this.currentExpression = this.defaultExpression, this.stopAllExpressions();
2277
+ }
2278
+ loadExpression(t) {
2279
+ return b(this, null, function* () {
2280
+ if (!this.definitions[t]) {
2281
+ C.warn(this.tag, `Undefined expression at [${t}]`);
2282
+ return;
2283
+ }
2284
+ if (this.expressions[t] === null) {
2285
+ C.warn(this.tag, `Cannot set expression at [${t}] because it's already failed in loading.`);
2286
+ return;
2287
+ }
2288
+ if (this.expressions[t])
2289
+ return this.expressions[t];
2290
+ const e = yield this._loadExpression(t);
2291
+ return this.expressions[t] = e, e;
2292
+ });
2293
+ }
2294
+ _loadExpression(t) {
2295
+ throw new Error("Not implemented.");
2296
+ }
2297
+ setRandomExpression() {
2298
+ return b(this, null, function* () {
2299
+ if (this.definitions.length) {
2300
+ const t = [];
2301
+ for (let e = 0; e < this.definitions.length; e++)
2302
+ this.expressions[e] !== null && this.expressions[e] !== this.currentExpression && e !== this.reserveExpressionIndex && t.push(e);
2303
+ if (t.length) {
2304
+ const e = Math.floor(Math.random() * t.length);
2305
+ return this.setExpression(e);
2306
+ }
2307
+ }
2308
+ return !1;
2309
+ });
2310
+ }
2311
+ resetExpression() {
2312
+ this._setExpression(this.defaultExpression);
2313
+ }
2314
+ restoreExpression() {
2315
+ this._setExpression(this.currentExpression);
2316
+ }
2317
+ setExpression(t) {
2318
+ return b(this, null, function* () {
2319
+ if (typeof t != "number" && (t = this.getExpressionIndex(t)), !(t > -1 && t < this.definitions.length) || t === this.expressions.indexOf(this.currentExpression))
2320
+ return !1;
2321
+ this.reserveExpressionIndex = t;
2322
+ const e = yield this.loadExpression(t);
2323
+ return !e || this.reserveExpressionIndex !== t ? !1 : (this.reserveExpressionIndex = -1, this.currentExpression = e, this._setExpression(e), !0);
2324
+ });
2325
+ }
2326
+ update(t, e) {
2327
+ return this.isFinished() ? !1 : this.updateParameters(t, e);
2328
+ }
2329
+ destroy() {
2330
+ this.destroyed = !0, this.emit("destroy");
2331
+ const t = this;
2332
+ t.definitions = void 0, t.expressions = void 0;
2333
+ }
2334
+ }
2335
+ const se = 0.01, Ui = 40 / 7.5, Vi = 1 / (0.15 * 1e3);
2336
+ class Ni {
2337
+ constructor() {
2338
+ this.targetX = 0, this.targetY = 0, this.x = 0, this.y = 0, this.vx = 0, this.vy = 0;
2339
+ }
2340
+ focus(t, e, i = !1) {
2341
+ this.targetX = ie(t, -1, 1), this.targetY = ie(e, -1, 1), i && (this.x = this.targetX, this.y = this.targetY);
2342
+ }
2343
+ update(t) {
2344
+ const e = this.targetX - this.x, i = this.targetY - this.y;
2345
+ if (Math.abs(e) < se && Math.abs(i) < se)
2346
+ return;
2347
+ const r = Math.sqrt(H(e, 2) + H(i, 2)), a = Ui / (1e3 / t);
2348
+ let n = a * (e / r) - this.vx, o = a * (i / r) - this.vy;
2349
+ const l = Math.sqrt(H(n, 2) + H(o, 2)), h = a * Vi * t;
2350
+ l > h && (n *= h / l, o *= h / l), this.vx += n, this.vy += o;
2351
+ const u = Math.sqrt(H(this.vx, 2) + H(this.vy, 2)), c = 0.5 * (Math.sqrt(H(h, 2) + 8 * h * r) - h);
2352
+ u > c && (this.vx *= c / u, this.vy *= c / u), this.x += this.vx, this.y += this.vy;
2353
+ }
2354
+ }
2355
+ class Gt {
2356
+ constructor(t) {
2357
+ this.json = t;
2358
+ let e = t.url;
2359
+ if (typeof e != "string")
2360
+ throw new TypeError("The `url` field in settings JSON must be defined as a string.");
2361
+ this.url = e, this.name = Oi(this.url);
2362
+ }
2363
+ resolveURL(t) {
2364
+ return Et.resolve(this.url, t);
2365
+ }
2366
+ replaceFiles(t) {
2367
+ this.moc = t(this.moc, "moc"), this.pose !== void 0 && (this.pose = t(this.pose, "pose")), this.physics !== void 0 && (this.physics = t(this.physics, "physics"));
2368
+ for (let e = 0; e < this.textures.length; e++)
2369
+ this.textures[e] = t(this.textures[e], `textures[${e}]`);
2370
+ }
2371
+ getDefinedFiles() {
2372
+ const t = [];
2373
+ return this.replaceFiles((e) => (t.push(e), e)), t;
2374
+ }
2375
+ validateFiles(t) {
2376
+ const e = (a, n) => {
2377
+ const o = this.resolveURL(a);
2378
+ if (!t.includes(o)) {
2379
+ if (n)
2380
+ throw new Error(`File "${a}" is defined in settings, but doesn't exist in given files`);
2381
+ return !1;
2382
+ }
2383
+ return !0;
2384
+ };
2385
+ return [this.moc, ...this.textures].forEach((a) => e(a, !0)), this.getDefinedFiles().filter((a) => e(a, !1));
2386
+ }
2387
+ }
2388
+ var Lt = /* @__PURE__ */ ((s) => (s[s.NONE = 0] = "NONE", s[s.IDLE = 1] = "IDLE", s[s.NORMAL = 2] = "NORMAL", s[s.FORCE = 3] = "FORCE", s))(Lt || {});
2389
+ class Gi {
2390
+ constructor() {
2391
+ this.debug = !1, this.currentPriority = 0, this.reservePriority = 0;
2392
+ }
2393
+ reserve(t, e, i) {
2394
+ if (i <= 0)
2395
+ return C.log(this.tag, "Cannot start a motion with MotionPriority.NONE."), !1;
2396
+ if (t === this.currentGroup && e === this.currentIndex)
2397
+ return C.log(this.tag, "Motion is already playing.", this.dump(t, e)), !1;
2398
+ if (t === this.reservedGroup && e === this.reservedIndex || t === this.reservedIdleGroup && e === this.reservedIdleIndex)
2399
+ return C.log(this.tag, "Motion is already reserved.", this.dump(t, e)), !1;
2400
+ if (i === 1) {
2401
+ if (this.currentPriority !== 0)
2402
+ return C.log(this.tag, "Cannot start idle motion because another motion is playing.", this.dump(t, e)), !1;
2403
+ if (this.reservedIdleGroup !== void 0)
2404
+ return C.log(this.tag, "Cannot start idle motion because another idle motion has reserved.", this.dump(t, e)), !1;
2405
+ this.setReservedIdle(t, e);
2406
+ } else {
2407
+ if (i < 3) {
2408
+ if (i <= this.currentPriority)
2409
+ return C.log(this.tag, "Cannot start motion because another motion is playing as an equivalent or higher priority.", this.dump(t, e)), !1;
2410
+ if (i <= this.reservePriority)
2411
+ return C.log(this.tag, "Cannot start motion because another motion has reserved as an equivalent or higher priority.", this.dump(t, e)), !1;
2412
+ }
2413
+ this.setReserved(t, e, i);
2414
+ }
2415
+ return !0;
2416
+ }
2417
+ start(t, e, i, r) {
2418
+ if (r === 1) {
2419
+ if (this.setReservedIdle(void 0, void 0), this.currentPriority !== 0)
2420
+ return C.log(this.tag, "Cannot start idle motion because another motion is playing.", this.dump(e, i)), !1;
2421
+ } else {
2422
+ if (e !== this.reservedGroup || i !== this.reservedIndex)
2423
+ return C.log(this.tag, "Cannot start motion because another motion has taken the place.", this.dump(e, i)), !1;
2424
+ this.setReserved(void 0, void 0, 0);
2425
+ }
2426
+ return t ? (this.setCurrent(e, i, r), !0) : !1;
2427
+ }
2428
+ complete() {
2429
+ this.setCurrent(void 0, void 0, 0);
2430
+ }
2431
+ setCurrent(t, e, i) {
2432
+ this.currentPriority = i, this.currentGroup = t, this.currentIndex = e;
2433
+ }
2434
+ setReserved(t, e, i) {
2435
+ this.reservePriority = i, this.reservedGroup = t, this.reservedIndex = e;
2436
+ }
2437
+ setReservedIdle(t, e) {
2438
+ this.reservedIdleGroup = t, this.reservedIdleIndex = e;
2439
+ }
2440
+ isActive(t, e) {
2441
+ return t === this.currentGroup && e === this.currentIndex || t === this.reservedGroup && e === this.reservedIndex || t === this.reservedIdleGroup && e === this.reservedIdleIndex;
2442
+ }
2443
+ reset() {
2444
+ this.setCurrent(void 0, void 0, 0), this.setReserved(void 0, void 0, 0), this.setReservedIdle(void 0, void 0);
2445
+ }
2446
+ shouldRequestIdleMotion() {
2447
+ return this.currentGroup === void 0 && this.reservedIdleGroup === void 0;
2448
+ }
2449
+ shouldOverrideExpression() {
2450
+ return !F.preserveExpressionOnMotion && this.currentPriority > 1;
2451
+ }
2452
+ dump(t, e) {
2453
+ if (this.debug) {
2454
+ const i = [
2455
+ "currentPriority",
2456
+ "reservePriority",
2457
+ "currentGroup",
2458
+ "currentIndex",
2459
+ "reservedGroup",
2460
+ "reservedIndex",
2461
+ "reservedIdleGroup",
2462
+ "reservedIdleIndex"
2463
+ ];
2464
+ return `
2465
+ <Requested> group = "${t}", index = ${e}
2466
+ ` + i.map((r) => "[" + r + "] " + this[r]).join(`
2467
+ `);
2468
+ }
2469
+ return "";
2470
+ }
2471
+ }
2472
+ const ji = "SoundManager", zi = 0.5;
2473
+ class Z {
2474
+ static get volume() {
2475
+ return this._volume;
2476
+ }
2477
+ static set volume(t) {
2478
+ this._volume = (t > 1 ? 1 : t < 0 ? 0 : t) || 0, this.audios.forEach((e) => e.volume = this._volume);
2479
+ }
2480
+ static add(t, e, i) {
2481
+ const r = new Audio(t);
2482
+ return r.volume = this._volume, r.preload = "auto", r.addEventListener("ended", () => {
2483
+ this.dispose(r), e?.();
2484
+ }), r.addEventListener("error", (a) => {
2485
+ this.dispose(r), C.warn(ji, `Error occurred on "${t}"`, a.error), i?.(a.error);
2486
+ }), this.audios.push(r), r;
2487
+ }
2488
+ static play(t) {
2489
+ return new Promise((e, i) => {
2490
+ var r;
2491
+ (r = t.play()) == null || r.catch((a) => {
2492
+ t.dispatchEvent(new ErrorEvent("error", { error: a })), i(a);
2493
+ }), t.readyState === t.HAVE_ENOUGH_DATA ? e() : t.addEventListener("canplaythrough", e);
2494
+ });
2495
+ }
2496
+ static dispose(t) {
2497
+ t.pause(), t.removeAttribute("src"), ki(this.audios, t);
2498
+ }
2499
+ static destroy() {
2500
+ for (let t = this.audios.length - 1; t >= 0; t--)
2501
+ this.dispose(this.audios[t]);
2502
+ }
2503
+ }
2504
+ Z.audios = [];
2505
+ Z._volume = zi;
2506
+ var Xi = /* @__PURE__ */ ((s) => (s.ALL = "ALL", s.IDLE = "IDLE", s.NONE = "NONE", s))(Xi || {});
2507
+ class jt extends Tt {
2508
+ constructor(t, e) {
2509
+ super(), this.motionGroups = {}, this.state = new Gi(), this.playing = !1, this.destroyed = !1, this.settings = t, this.tag = `MotionManager(${t.name})`, this.state.tag = this.tag;
2510
+ }
2511
+ init(t) {
2512
+ t?.idleMotionGroup && (this.groups.idle = t.idleMotionGroup), this.setupMotions(t), this.stopAllMotions();
2513
+ }
2514
+ setupMotions(t) {
2515
+ for (const i of Object.keys(this.definitions))
2516
+ this.motionGroups[i] = [];
2517
+ let e;
2518
+ switch (t?.motionPreload) {
2519
+ case "NONE":
2520
+ return;
2521
+ case "ALL":
2522
+ e = Object.keys(this.definitions);
2523
+ break;
2524
+ default:
2525
+ e = [this.groups.idle];
2526
+ break;
2527
+ }
2528
+ for (const i of e)
2529
+ if (this.definitions[i])
2530
+ for (let r = 0; r < this.definitions[i].length; r++)
2531
+ this.loadMotion(i, r).then();
2532
+ }
2533
+ loadMotion(t, e) {
2534
+ return b(this, null, function* () {
2535
+ var i;
2536
+ if (!((i = this.definitions[t]) != null && i[e])) {
2537
+ C.warn(this.tag, `Undefined motion at "${t}"[${e}]`);
2538
+ return;
2539
+ }
2540
+ if (this.motionGroups[t][e] === null) {
2541
+ C.warn(this.tag, `Cannot start motion at "${t}"[${e}] because it's already failed in loading.`);
2542
+ return;
2543
+ }
2544
+ if (this.motionGroups[t][e])
2545
+ return this.motionGroups[t][e];
2546
+ const r = yield this._loadMotion(t, e);
2547
+ if (!this.destroyed)
2548
+ return this.motionGroups[t][e] = r ?? null, r;
2549
+ });
2550
+ }
2551
+ _loadMotion(t, e) {
2552
+ throw new Error("Not implemented.");
2553
+ }
2554
+ startMotion(t, e) {
2555
+ return b(this, arguments, function* (i, r, a = Lt.NORMAL) {
2556
+ var n;
2557
+ if (!this.state.reserve(i, r, a))
2558
+ return !1;
2559
+ const o = (n = this.definitions[i]) == null ? void 0 : n[r];
2560
+ if (!o)
2561
+ return !1;
2562
+ this.currentAudio && Z.dispose(this.currentAudio);
2563
+ let l;
2564
+ if (F.sound) {
2565
+ const u = this.getSoundFile(o);
2566
+ if (u)
2567
+ try {
2568
+ l = Z.add(this.settings.resolveURL(u), () => this.currentAudio = void 0, () => this.currentAudio = void 0), this.currentAudio = l;
2569
+ } catch (c) {
2570
+ C.warn(this.tag, "Failed to create audio", u, c);
2571
+ }
2572
+ }
2573
+ const h = yield this.loadMotion(i, r);
2574
+ if (l) {
2575
+ const u = Z.play(l).catch((c) => C.warn(this.tag, "Failed to play audio", l.src, c));
2576
+ F.motionSync && (yield u);
2577
+ }
2578
+ return this.state.start(h, i, r, a) ? (C.log(this.tag, "Start motion:", this.getMotionName(o)), this.emit("motionStart", i, r, l), this.state.shouldOverrideExpression() && this.expressionManager && this.expressionManager.resetExpression(), this.playing = !0, this._startMotion(h), !0) : (l && (Z.dispose(l), this.currentAudio = void 0), !1);
2579
+ });
2580
+ }
2581
+ startRandomMotion(t, e) {
2582
+ return b(this, null, function* () {
2583
+ const i = this.definitions[t];
2584
+ if (i?.length) {
2585
+ const r = [];
2586
+ for (let a = 0; a < i.length; a++)
2587
+ this.motionGroups[t][a] !== null && !this.state.isActive(t, a) && r.push(a);
2588
+ if (r.length) {
2589
+ const a = Math.floor(Math.random() * r.length);
2590
+ return this.startMotion(t, r[a], e);
2591
+ }
2592
+ }
2593
+ return !1;
2594
+ });
2595
+ }
2596
+ stopAllMotions() {
2597
+ this._stopAllMotions(), this.state.reset(), this.currentAudio && (Z.dispose(this.currentAudio), this.currentAudio = void 0);
2598
+ }
2599
+ update(t, e) {
2600
+ var i;
2601
+ return this.isFinished() && (this.playing && (this.playing = !1, this.emit("motionFinish")), this.state.shouldOverrideExpression() && ((i = this.expressionManager) == null || i.restoreExpression()), this.state.complete(), this.state.shouldRequestIdleMotion() && this.startRandomMotion(this.groups.idle, Lt.IDLE)), this.updateParameters(t, e);
2602
+ }
2603
+ destroy() {
2604
+ var t;
2605
+ this.destroyed = !0, this.emit("destroy"), this.stopAllMotions(), (t = this.expressionManager) == null || t.destroy();
2606
+ const e = this;
2607
+ e.definitions = void 0, e.motionGroups = void 0;
2608
+ }
2609
+ }
2610
+ const Yi = { x: 0, y: 0, width: 0, height: 0 };
2611
+ class Hi extends Tt {
2612
+ constructor() {
2613
+ super(...arguments), this.focusController = new Ni(), this.originalWidth = 0, this.originalHeight = 0, this.width = 0, this.height = 0, this.localTransform = new pt(), this.drawingMatrix = new pt(), this.hitAreas = {}, this.textureFlipY = !1, this.viewport = [0, 0, 0, 0], this.destroyed = !1;
2614
+ }
2615
+ init() {
2616
+ this.setupLayout(), this.setupHitAreas();
2617
+ }
2618
+ setupLayout() {
2619
+ const t = this, e = this.getSize();
2620
+ t.originalWidth = e[0], t.originalHeight = e[1];
2621
+ const i = Object.assign({
2622
+ width: te,
2623
+ height: ee
2624
+ }, this.getLayout());
2625
+ this.localTransform.scale(i.width / te, i.height / ee), t.width = this.originalWidth * this.localTransform.a, t.height = this.originalHeight * this.localTransform.d;
2626
+ const r = i.x !== void 0 && i.x - i.width / 2 || i.centerX !== void 0 && i.centerX || i.left !== void 0 && i.left - i.width / 2 || i.right !== void 0 && i.right + i.width / 2 || 0, a = i.y !== void 0 && i.y - i.height / 2 || i.centerY !== void 0 && i.centerY || i.top !== void 0 && i.top - i.height / 2 || i.bottom !== void 0 && i.bottom + i.height / 2 || 0;
2627
+ this.localTransform.translate(this.width * r, -this.height * a);
2628
+ }
2629
+ setupHitAreas() {
2630
+ const t = this.getHitAreaDefs().filter((e) => e.index >= 0);
2631
+ for (const e of t)
2632
+ this.hitAreas[e.name] = e;
2633
+ }
2634
+ hitTest(t, e) {
2635
+ return Object.keys(this.hitAreas).filter((i) => this.isHit(i, t, e));
2636
+ }
2637
+ isHit(t, e, i) {
2638
+ if (!this.hitAreas[t])
2639
+ return !1;
2640
+ const r = this.hitAreas[t].index, a = this.getDrawableBounds(r, Yi);
2641
+ return a.x <= e && e <= a.x + a.width && a.y <= i && i <= a.y + a.height;
2642
+ }
2643
+ getDrawableBounds(t, e) {
2644
+ const i = this.getDrawableVertices(t);
2645
+ let r = i[0], a = i[0], n = i[1], o = i[1];
2646
+ for (let l = 0; l < i.length; l += 2) {
2647
+ const h = i[l], u = i[l + 1];
2648
+ r = Math.min(h, r), a = Math.max(h, a), n = Math.min(u, n), o = Math.max(u, o);
2649
+ }
2650
+ return e ?? (e = {}), e.x = r, e.y = n, e.width = a - r, e.height = o - n, e;
2651
+ }
2652
+ updateTransform(t) {
2653
+ this.drawingMatrix.copyFrom(t).append(this.localTransform);
2654
+ }
2655
+ update(t, e) {
2656
+ this.focusController.update(t);
2657
+ }
2658
+ destroy() {
2659
+ this.destroyed = !0, this.emit("destroy"), this.motionManager.destroy(), this.motionManager = void 0;
2660
+ }
2661
+ }
2662
+ const Wi = "XHRLoader";
2663
+ class re extends Error {
2664
+ constructor(t, e, i, r = !1) {
2665
+ super(t), this.url = e, this.status = i, this.aborted = r;
2666
+ }
2667
+ }
2668
+ const T = class {
2669
+ static createXHR(s, t, e, i, r) {
2670
+ const a = new XMLHttpRequest();
2671
+ if (T.allXhrSet.add(a), s) {
2672
+ let n = T.xhrMap.get(s);
2673
+ n ? n.add(a) : (n = /* @__PURE__ */ new Set([a]), T.xhrMap.set(s, n)), s.listeners("destroy").includes(T.cancelXHRs) || s.once("destroy", T.cancelXHRs);
2674
+ }
2675
+ return a.open("GET", t), a.responseType = e, a.onload = () => {
2676
+ (a.status === 200 || a.status === 0) && a.response ? i(a.response) : a.onerror();
2677
+ }, a.onerror = () => {
2678
+ C.warn(Wi, `Failed to load resource as ${a.responseType} (Status ${a.status}): ${t}`), r(new re("Network error.", t, a.status));
2679
+ }, a.onabort = () => r(new re("Aborted.", t, a.status, !0)), a.onloadend = () => {
2680
+ var n;
2681
+ T.allXhrSet.delete(a), s && ((n = T.xhrMap.get(s)) == null || n.delete(a));
2682
+ }, a;
2683
+ }
2684
+ static cancelXHRs() {
2685
+ var s;
2686
+ (s = T.xhrMap.get(this)) == null || s.forEach((t) => {
2687
+ t.abort(), T.allXhrSet.delete(t);
2688
+ }), T.xhrMap.delete(this);
2689
+ }
2690
+ static release() {
2691
+ T.allXhrSet.forEach((s) => s.abort()), T.allXhrSet.clear(), T.xhrMap = /* @__PURE__ */ new WeakMap();
2692
+ }
2693
+ };
2694
+ let ft = T;
2695
+ ft.xhrMap = /* @__PURE__ */ new WeakMap();
2696
+ ft.allXhrSet = /* @__PURE__ */ new Set();
2697
+ ft.loader = (s, t) => new Promise((e, i) => {
2698
+ T.createXHR(s.target, s.settings ? s.settings.resolveURL(s.url) : s.url, s.type, (a) => {
2699
+ s.result = a, e();
2700
+ }, i).send();
2701
+ });
2702
+ function ve(s, t) {
2703
+ let e = -1;
2704
+ return i(0);
2705
+ function i(r, a) {
2706
+ if (a)
2707
+ return Promise.reject(a);
2708
+ if (r <= e)
2709
+ return Promise.reject(new Error("next() called multiple times"));
2710
+ e = r;
2711
+ const n = s[r];
2712
+ if (!n)
2713
+ return Promise.resolve();
2714
+ try {
2715
+ return Promise.resolve(n(t, i.bind(null, r + 1)));
2716
+ } catch (o) {
2717
+ return Promise.reject(o);
2718
+ }
2719
+ }
2720
+ }
2721
+ class X {
2722
+ static load(t) {
2723
+ return ve(this.middlewares, t).then(() => t.result);
2724
+ }
2725
+ }
2726
+ X.middlewares = [ft.loader];
2727
+ function qi(s, t = {}) {
2728
+ var e;
2729
+ const i = { resourceOptions: { crossorigin: t.crossOrigin } };
2730
+ if (vt.fromURL)
2731
+ return vt.fromURL(s, i).catch((n) => {
2732
+ if (n instanceof Error)
2733
+ throw n;
2734
+ const o = new Error("Texture loading error");
2735
+ throw o.event = n, o;
2736
+ });
2737
+ i.resourceOptions.autoLoad = !1;
2738
+ const r = vt.from(s, i);
2739
+ if (r.baseTexture.valid)
2740
+ return Promise.resolve(r);
2741
+ const a = r.baseTexture.resource;
2742
+ return (e = a._live2d_load) != null || (a._live2d_load = new Promise((n, o) => {
2743
+ const l = (h) => {
2744
+ a.source.removeEventListener("error", l);
2745
+ const u = new Error("Texture loading error");
2746
+ u.event = h, o(u);
2747
+ };
2748
+ a.source.addEventListener("error", l), a.load().then(() => n(r)).catch(l);
2749
+ })), a._live2d_load;
2750
+ }
2751
+ const ae = "Live2DFactory", xe = (s, t) => b(void 0, null, function* () {
2752
+ if (typeof s.source == "string") {
2753
+ const e = yield X.load({
2754
+ url: s.source,
2755
+ type: "json",
2756
+ target: s.live2dModel
2757
+ });
2758
+ e.url = s.source, s.source = e, s.live2dModel.emit("settingsJSONLoaded", e);
2759
+ }
2760
+ return t();
2761
+ }), Pe = (s, t) => b(void 0, null, function* () {
2762
+ if (s.source instanceof Gt)
2763
+ return s.settings = s.source, t();
2764
+ if (typeof s.source == "object") {
2765
+ const e = w.findRuntime(s.source);
2766
+ if (e) {
2767
+ const i = e.createModelSettings(s.source);
2768
+ return s.settings = i, s.live2dModel.emit("settingsLoaded", i), t();
2769
+ }
2770
+ }
2771
+ throw new TypeError("Unknown settings format.");
2772
+ }), Me = (s, t) => {
2773
+ if (s.settings) {
2774
+ const e = w.findRuntime(s.settings);
2775
+ if (e)
2776
+ return e.ready().then(t);
2777
+ }
2778
+ return t();
2779
+ }, Ce = (s, t) => b(void 0, null, function* () {
2780
+ yield t();
2781
+ const e = s.internalModel;
2782
+ if (e) {
2783
+ const i = s.settings, r = w.findRuntime(i);
2784
+ if (r) {
2785
+ const a = [];
2786
+ i.pose && a.push(X.load({
2787
+ settings: i,
2788
+ url: i.pose,
2789
+ type: "json",
2790
+ target: e
2791
+ }).then((n) => {
2792
+ e.pose = r.createPose(e.coreModel, n), s.live2dModel.emit("poseLoaded", e.pose);
2793
+ }).catch((n) => {
2794
+ s.live2dModel.emit("poseLoadError", n), C.warn(ae, "Failed to load pose.", n);
2795
+ })), i.physics && a.push(X.load({
2796
+ settings: i,
2797
+ url: i.physics,
2798
+ type: "json",
2799
+ target: e
2800
+ }).then((n) => {
2801
+ e.physics = r.createPhysics(e.coreModel, n), s.live2dModel.emit("physicsLoaded", e.physics);
2802
+ }).catch((n) => {
2803
+ s.live2dModel.emit("physicsLoadError", n), C.warn(ae, "Failed to load physics.", n);
2804
+ })), a.length && (yield Promise.all(a));
2805
+ }
2806
+ }
2807
+ }), Se = (s, t) => b(void 0, null, function* () {
2808
+ if (s.settings) {
2809
+ const e = s.live2dModel, i = s.settings.textures.map((r) => {
2810
+ const a = s.settings.resolveURL(r);
2811
+ return qi(a, { crossOrigin: s.options.crossOrigin });
2812
+ });
2813
+ if (yield t(), s.internalModel)
2814
+ e.internalModel = s.internalModel, e.emit("modelLoaded", s.internalModel);
2815
+ else
2816
+ throw new TypeError("Missing internal model.");
2817
+ e.textures = yield Promise.all(i), e.emit("textureLoaded", e.textures);
2818
+ } else
2819
+ throw new TypeError("Missing settings.");
2820
+ }), be = (s, t) => b(void 0, null, function* () {
2821
+ const e = s.settings;
2822
+ if (e instanceof Gt) {
2823
+ const i = w.findRuntime(e);
2824
+ if (!i)
2825
+ throw new TypeError("Unknown model settings.");
2826
+ const r = yield X.load({
2827
+ settings: e,
2828
+ url: e.moc,
2829
+ type: "arraybuffer",
2830
+ target: s.live2dModel
2831
+ });
2832
+ if (!i.isValidMoc(r))
2833
+ throw new Error("Invalid moc data");
2834
+ const a = i.createCoreModel(r);
2835
+ return s.internalModel = i.createInternalModel(a, e, s.options), t();
2836
+ }
2837
+ throw new TypeError("Missing settings.");
2838
+ }), L = class {
2839
+ static registerRuntime(s) {
2840
+ L.runtimes.push(s), L.runtimes.sort((t, e) => e.version - t.version);
2841
+ }
2842
+ static findRuntime(s) {
2843
+ for (const t of L.runtimes)
2844
+ if (t.test(s))
2845
+ return t;
2846
+ }
2847
+ static setupLive2DModel(s, t, e) {
2848
+ return b(this, null, function* () {
2849
+ const i = new Promise((n) => s.once("textureLoaded", n)), r = new Promise((n) => s.once("modelLoaded", n)), a = Promise.all([i, r]).then(() => s.emit("ready"));
2850
+ yield ve(L.live2DModelMiddlewares, {
2851
+ live2dModel: s,
2852
+ source: t,
2853
+ options: e || {}
2854
+ }), yield a, s.emit("load");
2855
+ });
2856
+ }
2857
+ static loadMotion(s, t, e) {
2858
+ var i, r;
2859
+ const a = (n) => s.emit("motionLoadError", t, e, n);
2860
+ try {
2861
+ const n = (i = s.definitions[t]) == null ? void 0 : i[e];
2862
+ if (!n)
2863
+ return Promise.resolve(void 0);
2864
+ s.listeners("destroy").includes(L.releaseTasks) || s.once("destroy", L.releaseTasks);
2865
+ let o = L.motionTasksMap.get(s);
2866
+ o || (o = {}, L.motionTasksMap.set(s, o));
2867
+ let l = o[t];
2868
+ l || (l = [], o[t] = l);
2869
+ const h = s.getMotionFile(n);
2870
+ return (r = l[e]) != null || (l[e] = X.load({
2871
+ url: h,
2872
+ settings: s.settings,
2873
+ type: s.motionDataType,
2874
+ target: s
2875
+ }).then((u) => {
2876
+ var c;
2877
+ const d = (c = L.motionTasksMap.get(s)) == null ? void 0 : c[t];
2878
+ d && delete d[e];
2879
+ const _ = s.createMotion(u, t, n);
2880
+ return s.emit("motionLoaded", t, e, _), _;
2881
+ }).catch((u) => {
2882
+ C.warn(s.tag, `Failed to load motion: ${h}
2883
+ `, u), a(u);
2884
+ })), l[e];
2885
+ } catch (n) {
2886
+ C.warn(s.tag, `Failed to load motion at "${t}"[${e}]
2887
+ `, n), a(n);
2888
+ }
2889
+ return Promise.resolve(void 0);
2890
+ }
2891
+ static loadExpression(s, t) {
2892
+ var e;
2893
+ const i = (r) => s.emit("expressionLoadError", t, r);
2894
+ try {
2895
+ const r = s.definitions[t];
2896
+ if (!r)
2897
+ return Promise.resolve(void 0);
2898
+ s.listeners("destroy").includes(L.releaseTasks) || s.once("destroy", L.releaseTasks);
2899
+ let a = L.expressionTasksMap.get(s);
2900
+ a || (a = [], L.expressionTasksMap.set(s, a));
2901
+ const n = s.getExpressionFile(r);
2902
+ return (e = a[t]) != null || (a[t] = X.load({
2903
+ url: n,
2904
+ settings: s.settings,
2905
+ type: "json",
2906
+ target: s
2907
+ }).then((o) => {
2908
+ const l = L.expressionTasksMap.get(s);
2909
+ l && delete l[t];
2910
+ const h = s.createExpression(o, r);
2911
+ return s.emit("expressionLoaded", t, h), h;
2912
+ }).catch((o) => {
2913
+ C.warn(s.tag, `Failed to load expression: ${n}
2914
+ `, o), i(o);
2915
+ })), a[t];
2916
+ } catch (r) {
2917
+ C.warn(s.tag, `Failed to load expression at [${t}]
2918
+ `, r), i(r);
2919
+ }
2920
+ return Promise.resolve(void 0);
2921
+ }
2922
+ static releaseTasks() {
2923
+ this instanceof jt ? L.motionTasksMap.delete(this) : L.expressionTasksMap.delete(this);
2924
+ }
2925
+ };
2926
+ let w = L;
2927
+ w.runtimes = [];
2928
+ w.urlToJSON = xe;
2929
+ w.jsonToSettings = Pe;
2930
+ w.waitUntilReady = Me;
2931
+ w.setupOptionals = Ce;
2932
+ w.setupEssentials = Se;
2933
+ w.createInternalModel = be;
2934
+ w.live2DModelMiddlewares = [
2935
+ xe,
2936
+ Pe,
2937
+ Me,
2938
+ Ce,
2939
+ Se,
2940
+ be
2941
+ ];
2942
+ w.motionTasksMap = /* @__PURE__ */ new WeakMap();
2943
+ w.expressionTasksMap = /* @__PURE__ */ new WeakMap();
2944
+ jt.prototype._loadMotion = function(s, t) {
2945
+ return w.loadMotion(this, s, t);
2946
+ };
2947
+ ye.prototype._loadExpression = function(s) {
2948
+ return w.loadExpression(this, s);
2949
+ };
2950
+ class $i {
2951
+ constructor() {
2952
+ this._autoInteract = !1;
2953
+ }
2954
+ get autoInteract() {
2955
+ return this._autoInteract;
2956
+ }
2957
+ set autoInteract(t) {
2958
+ t !== this._autoInteract && (t ? this.on("pointertap", ne, this) : this.off("pointertap", ne, this), this._autoInteract = t);
2959
+ }
2960
+ registerInteraction(t) {
2961
+ t !== this.interactionManager && (this.unregisterInteraction(), this._autoInteract && t && (this.interactionManager = t, t.on("pointermove", oe, this)));
2962
+ }
2963
+ unregisterInteraction() {
2964
+ var t;
2965
+ this.interactionManager && ((t = this.interactionManager) == null || t.off("pointermove", oe, this), this.interactionManager = void 0);
2966
+ }
2967
+ }
2968
+ function ne(s) {
2969
+ this.tap(s.data.global.x, s.data.global.y);
2970
+ }
2971
+ function oe(s) {
2972
+ this.focus(s.data.global.x, s.data.global.y);
2973
+ }
2974
+ class Ji extends Ee {
2975
+ }
2976
+ const D = new Te(), Zi = new pt();
2977
+ let G;
2978
+ class Ki extends Ie {
2979
+ constructor(t) {
2980
+ super(), this.tag = "Live2DModel(uninitialized)", this.textures = [], this.transform = new Ji(), this.anchor = new Le(this.onAnchorChange, this, 0, 0), this.glContextID = -1, this.elapsedTime = performance.now(), this.deltaTime = 0, this._autoUpdate = !1, this.once("modelLoaded", () => this.init(t));
2981
+ }
2982
+ static from(t, e) {
2983
+ const i = new this(e);
2984
+ return w.setupLive2DModel(i, t, e).then(() => i);
2985
+ }
2986
+ static fromSync(t, e) {
2987
+ const i = new this(e);
2988
+ return w.setupLive2DModel(i, t, e).then(e?.onLoad).catch(e?.onError), i;
2989
+ }
2990
+ static registerTicker(t) {
2991
+ G = t;
2992
+ }
2993
+ get autoUpdate() {
2994
+ return this._autoUpdate;
2995
+ }
2996
+ set autoUpdate(t) {
2997
+ var e;
2998
+ G || (G = (e = window.PIXI) == null ? void 0 : e.Ticker), t ? this._destroyed || (G ? (G.shared.add(this.onTickerUpdate, this), this._autoUpdate = !0) : C.warn(this.tag, "No Ticker registered, please call Live2DModel.registerTicker(Ticker).")) : (G?.shared.remove(this.onTickerUpdate, this), this._autoUpdate = !1);
2999
+ }
3000
+ init(t) {
3001
+ this.tag = `Live2DModel(${this.internalModel.settings.name})`;
3002
+ const e = Object.assign({
3003
+ autoUpdate: !0,
3004
+ autoInteract: !0
3005
+ }, t);
3006
+ e.autoInteract && (this.interactive = !0), this.autoInteract = e.autoInteract, this.autoUpdate = e.autoUpdate;
3007
+ }
3008
+ onAnchorChange() {
3009
+ this.pivot.set(this.anchor.x * this.internalModel.width, this.anchor.y * this.internalModel.height);
3010
+ }
3011
+ motion(t, e, i) {
3012
+ return e === void 0 ? this.internalModel.motionManager.startRandomMotion(t, i) : this.internalModel.motionManager.startMotion(t, e, i);
3013
+ }
3014
+ expression(t) {
3015
+ return this.internalModel.motionManager.expressionManager ? t === void 0 ? this.internalModel.motionManager.expressionManager.setRandomExpression() : this.internalModel.motionManager.expressionManager.setExpression(t) : Promise.resolve(!1);
3016
+ }
3017
+ focus(t, e, i = !1) {
3018
+ D.x = t, D.y = e, this.toModelPosition(D, D, !0);
3019
+ let r = D.x / this.internalModel.originalWidth * 2 - 1, a = D.y / this.internalModel.originalHeight * 2 - 1, n = Math.atan2(a, r);
3020
+ this.internalModel.focusController.focus(Math.cos(n), -Math.sin(n), i);
3021
+ }
3022
+ tap(t, e) {
3023
+ const i = this.hitTest(t, e);
3024
+ i.length && (C.log(this.tag, "Hit", i), this.emit("hit", i));
3025
+ }
3026
+ hitTest(t, e) {
3027
+ return D.x = t, D.y = e, this.toModelPosition(D, D), this.internalModel.hitTest(D.x, D.y);
3028
+ }
3029
+ toModelPosition(t, e = t.clone(), i) {
3030
+ return i || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.transform.worldTransform.applyInverse(t, e), this.internalModel.localTransform.applyInverse(e, e), e;
3031
+ }
3032
+ containsPoint(t) {
3033
+ return this.getBounds(!0).contains(t.x, t.y);
3034
+ }
3035
+ _calculateBounds() {
3036
+ this._bounds.addFrame(this.transform, 0, 0, this.internalModel.width, this.internalModel.height);
3037
+ }
3038
+ onTickerUpdate() {
3039
+ this.update(G.shared.deltaMS);
3040
+ }
3041
+ update(t) {
3042
+ this.deltaTime += t, this.elapsedTime += t;
3043
+ }
3044
+ _render(t) {
3045
+ this.registerInteraction(t.plugins.interaction), t.batch.reset(), t.geometry.reset(), t.shader.reset(), t.state.reset();
3046
+ let e = !1;
3047
+ this.glContextID !== t.CONTEXT_UID && (this.glContextID = t.CONTEXT_UID, this.internalModel.updateWebGLContext(t.gl, this.glContextID), e = !0);
3048
+ for (let a = 0; a < this.textures.length; a++) {
3049
+ const n = this.textures[a];
3050
+ n.valid && ((e || !n.baseTexture._glTextures[this.glContextID]) && (t.gl.pixelStorei(WebGLRenderingContext.UNPACK_FLIP_Y_WEBGL, this.internalModel.textureFlipY), t.texture.bind(n.baseTexture, 0)), this.internalModel.bindTexture(a, n.baseTexture._glTextures[this.glContextID].texture), n.baseTexture.touched = t.textureGC.count);
3051
+ }
3052
+ const i = t.framebuffer.viewport;
3053
+ this.internalModel.viewport = [i.x, i.y, i.width, i.height], this.deltaTime && (this.internalModel.update(this.deltaTime, this.elapsedTime), this.deltaTime = 0);
3054
+ const r = Zi.copyFrom(t.globalUniforms.uniforms.projectionMatrix).append(this.worldTransform);
3055
+ this.internalModel.updateTransform(r), this.internalModel.draw(t.gl), t.state.reset(), t.texture.reset();
3056
+ }
3057
+ destroy(t) {
3058
+ this.emit("destroy"), this.autoUpdate = !1, this.unregisterInteraction(), t?.texture && this.textures.forEach((e) => e.destroy(t.baseTexture)), this.internalModel.destroy(), super.destroy(t);
3059
+ }
3060
+ }
3061
+ fe(Ki, [$i]);
3062
+ const U = class {
3063
+ static resolveURL(s, t) {
3064
+ var e;
3065
+ const i = (e = U.filesMap[s]) == null ? void 0 : e[t];
3066
+ if (i === void 0)
3067
+ throw new Error("Cannot find this file from uploaded files: " + t);
3068
+ return i;
3069
+ }
3070
+ static upload(s, t) {
3071
+ return b(this, null, function* () {
3072
+ const e = {};
3073
+ for (const i of t.getDefinedFiles()) {
3074
+ const r = decodeURI(Et.resolve(t.url, i)), a = s.find((n) => n.webkitRelativePath === r);
3075
+ a && (e[i] = URL.createObjectURL(a));
3076
+ }
3077
+ U.filesMap[t._objectURL] = e;
3078
+ });
3079
+ }
3080
+ static createSettings(s) {
3081
+ return b(this, null, function* () {
3082
+ const t = s.find((n) => n.name.endsWith("model.json") || n.name.endsWith("model3.json"));
3083
+ if (!t)
3084
+ throw new TypeError("Settings file not found");
3085
+ const e = yield U.readText(t), i = JSON.parse(e);
3086
+ i.url = t.webkitRelativePath;
3087
+ const r = w.findRuntime(i);
3088
+ if (!r)
3089
+ throw new Error("Unknown settings JSON");
3090
+ const a = r.createModelSettings(i);
3091
+ return a._objectURL = URL.createObjectURL(t), a;
3092
+ });
3093
+ }
3094
+ static readText(s) {
3095
+ return b(this, null, function* () {
3096
+ return new Promise((t, e) => {
3097
+ const i = new FileReader();
3098
+ i.onload = () => t(i.result), i.onerror = e, i.readAsText(s, "utf8");
3099
+ });
3100
+ });
3101
+ }
3102
+ };
3103
+ let zt = U;
3104
+ zt.filesMap = {};
3105
+ zt.factory = (s, t) => b(void 0, null, function* () {
3106
+ if (Array.isArray(s.source) && s.source[0] instanceof File) {
3107
+ const e = s.source;
3108
+ let i = e.settings;
3109
+ if (!i)
3110
+ i = yield U.createSettings(e);
3111
+ else if (!i._objectURL)
3112
+ throw new Error('"_objectURL" must be specified in ModelSettings');
3113
+ i.validateFiles(e.map((r) => encodeURI(r.webkitRelativePath))), yield U.upload(e, i), i.resolveURL = function(r) {
3114
+ return U.resolveURL(this._objectURL, r);
3115
+ }, s.source = i, s.live2dModel.once("modelLoaded", (r) => {
3116
+ r.once("destroy", function() {
3117
+ const a = this.settings._objectURL;
3118
+ if (URL.revokeObjectURL(a), U.filesMap[a])
3119
+ for (const n of Object.values(U.filesMap[a]))
3120
+ URL.revokeObjectURL(n);
3121
+ delete U.filesMap[a];
3122
+ });
3123
+ });
3124
+ }
3125
+ return t();
3126
+ });
3127
+ w.live2DModelMiddlewares.unshift(zt.factory);
3128
+ const E = class {
3129
+ static unzip(s, t) {
3130
+ return b(this, null, function* () {
3131
+ const e = yield E.getFilePaths(s), i = [];
3132
+ for (const a of t.getDefinedFiles()) {
3133
+ const n = decodeURI(Et.resolve(t.url, a));
3134
+ e.includes(n) && i.push(n);
3135
+ }
3136
+ const r = yield E.getFiles(s, i);
3137
+ for (let a = 0; a < r.length; a++) {
3138
+ const n = i[a], o = r[a];
3139
+ Object.defineProperty(o, "webkitRelativePath", {
3140
+ value: n
3141
+ });
3142
+ }
3143
+ return r;
3144
+ });
3145
+ }
3146
+ static createSettings(s) {
3147
+ return b(this, null, function* () {
3148
+ const e = (yield E.getFilePaths(s)).find((n) => n.endsWith("model.json") || n.endsWith("model3.json"));
3149
+ if (!e)
3150
+ throw new Error("Settings file not found");
3151
+ const i = yield E.readText(s, e);
3152
+ if (!i)
3153
+ throw new Error("Empty settings file: " + e);
3154
+ const r = JSON.parse(i);
3155
+ r.url = e;
3156
+ const a = w.findRuntime(r);
3157
+ if (!a)
3158
+ throw new Error("Unknown settings JSON");
3159
+ return a.createModelSettings(r);
3160
+ });
3161
+ }
3162
+ static zipReader(s, t) {
3163
+ return b(this, null, function* () {
3164
+ throw new Error("Not implemented");
3165
+ });
3166
+ }
3167
+ static getFilePaths(s) {
3168
+ return b(this, null, function* () {
3169
+ throw new Error("Not implemented");
3170
+ });
3171
+ }
3172
+ static getFiles(s, t) {
3173
+ return b(this, null, function* () {
3174
+ throw new Error("Not implemented");
3175
+ });
3176
+ }
3177
+ static readText(s, t) {
3178
+ return b(this, null, function* () {
3179
+ throw new Error("Not implemented");
3180
+ });
3181
+ }
3182
+ static releaseReader(s) {
3183
+ }
3184
+ };
3185
+ let yt = E;
3186
+ yt.ZIP_PROTOCOL = "zip://";
3187
+ yt.uid = 0;
3188
+ yt.factory = (s, t) => b(void 0, null, function* () {
3189
+ const e = s.source;
3190
+ let i, r, a;
3191
+ if (typeof e == "string" && (e.endsWith(".zip") || e.startsWith(E.ZIP_PROTOCOL)) ? (e.startsWith(E.ZIP_PROTOCOL) ? i = e.slice(E.ZIP_PROTOCOL.length) : i = e, r = yield X.load({
3192
+ url: i,
3193
+ type: "blob",
3194
+ target: s.live2dModel
3195
+ })) : Array.isArray(e) && e.length === 1 && e[0] instanceof File && e[0].name.endsWith(".zip") && (r = e[0], i = URL.createObjectURL(r), a = e.settings), r) {
3196
+ if (!r.size)
3197
+ throw new Error("Empty zip file");
3198
+ const n = yield E.zipReader(r, i);
3199
+ a || (a = yield E.createSettings(n)), a._objectURL = E.ZIP_PROTOCOL + E.uid + "/" + a.url;
3200
+ const o = yield E.unzip(n, a);
3201
+ o.settings = a, s.source = o, i.startsWith("blob:") && s.live2dModel.once("modelLoaded", (l) => {
3202
+ l.once("destroy", function() {
3203
+ URL.revokeObjectURL(i);
3204
+ });
3205
+ }), E.releaseReader(n);
3206
+ }
3207
+ return t();
3208
+ });
3209
+ w.live2DModelMiddlewares.unshift(yt.factory);
3210
+ if (!window.Live2DCubismCore)
3211
+ throw new Error("Could not find Cubism 4 runtime. This plugin requires live2dcubismcore.js to be loaded.");
3212
+ class Qi extends ye {
3213
+ constructor(t, e) {
3214
+ var i;
3215
+ super(t, e), this.queueManager = new Ut(), this.definitions = (i = t.expressions) != null ? i : [], this.init();
3216
+ }
3217
+ isFinished() {
3218
+ return this.queueManager.isFinished();
3219
+ }
3220
+ getExpressionIndex(t) {
3221
+ return this.definitions.findIndex((e) => e.Name === t);
3222
+ }
3223
+ getExpressionFile(t) {
3224
+ return t.File;
3225
+ }
3226
+ createExpression(t, e) {
3227
+ return Rt.create(t);
3228
+ }
3229
+ _setExpression(t) {
3230
+ return this.queueManager.startMotion(t, !1, performance.now());
3231
+ }
3232
+ stopAllExpressions() {
3233
+ this.queueManager.stopAllMotions();
3234
+ }
3235
+ updateParameters(t, e) {
3236
+ return this.queueManager.doUpdateMotion(t, e);
3237
+ }
3238
+ }
3239
+ class it extends Gt {
3240
+ constructor(t) {
3241
+ if (super(t), !it.isValidJSON(t))
3242
+ throw new TypeError("Invalid JSON.");
3243
+ Object.assign(this, new _e(t));
3244
+ }
3245
+ static isValidJSON(t) {
3246
+ var e;
3247
+ return !!t?.FileReferences && typeof t.FileReferences.Moc == "string" && ((e = t.FileReferences.Textures) == null ? void 0 : e.length) > 0 && t.FileReferences.Textures.every((i) => typeof i == "string");
3248
+ }
3249
+ replaceFiles(t) {
3250
+ if (super.replaceFiles(t), this.motions)
3251
+ for (const [e, i] of Object.entries(this.motions))
3252
+ for (let r = 0; r < i.length; r++)
3253
+ i[r].File = t(i[r].File, `motions.${e}[${r}].File`), i[r].Sound !== void 0 && (i[r].Sound = t(i[r].Sound, `motions.${e}[${r}].Sound`));
3254
+ if (this.expressions)
3255
+ for (let e = 0; e < this.expressions.length; e++)
3256
+ this.expressions[e].File = t(this.expressions[e].File, `expressions[${e}].File`);
3257
+ }
3258
+ }
3259
+ fe(it, [_e]);
3260
+ class ts extends jt {
3261
+ constructor(t, e) {
3262
+ var i;
3263
+ super(t, e), this.groups = { idle: "Idle" }, this.motionDataType = "json", this.queueManager = new Ut(), this.definitions = (i = t.motions) != null ? i : {}, this.eyeBlinkIds = t.getEyeBlinkParameters() || [], this.lipSyncIds = t.getLipSyncParameters() || [], this.init(e);
3264
+ }
3265
+ init(t) {
3266
+ super.init(t), this.settings.expressions && (this.expressionManager = new Qi(this.settings, t)), this.queueManager.setEventCallback((e, i, r) => {
3267
+ this.emit("motion:" + i);
3268
+ });
3269
+ }
3270
+ isFinished() {
3271
+ return this.queueManager.isFinished();
3272
+ }
3273
+ _startMotion(t, e) {
3274
+ return t.setFinishedMotionHandler(e), this.queueManager.stopAllMotions(), this.queueManager.startMotion(t, !1, performance.now());
3275
+ }
3276
+ _stopAllMotions() {
3277
+ this.queueManager.stopAllMotions();
3278
+ }
3279
+ createMotion(t, e, i) {
3280
+ const r = kt.create(t), a = new me(t), n = (e === this.groups.idle ? F.idleMotionFadingDuration : F.motionFadingDuration) / 1e3;
3281
+ return a.getMotionFadeInTime() === void 0 && r.setFadeInTime(i.FadeInTime > 0 ? i.FadeInTime : n), a.getMotionFadeOutTime() === void 0 && r.setFadeOutTime(i.FadeOutTime > 0 ? i.FadeOutTime : n), r.setEffectIds(this.eyeBlinkIds, this.lipSyncIds), r;
3282
+ }
3283
+ getMotionFile(t) {
3284
+ return t.File;
3285
+ }
3286
+ getMotionName(t) {
3287
+ return t.File;
3288
+ }
3289
+ getSoundFile(t) {
3290
+ return t.Sound;
3291
+ }
3292
+ updateParameters(t, e) {
3293
+ return this.queueManager.doUpdateMotion(t, e);
3294
+ }
3295
+ destroy() {
3296
+ super.destroy(), this.queueManager.release(), this.queueManager = void 0;
3297
+ }
3298
+ }
3299
+ const le = new R();
3300
+ class es extends Hi {
3301
+ constructor(t, e, i) {
3302
+ super(), this.lipSync = !0, this.breath = Ft.create(), this.renderer = new pe(), this.idParamAngleX = Ti, this.idParamAngleY = Ei, this.idParamAngleZ = Fi, this.idParamEyeBallX = Di, this.idParamEyeBallY = Ai, this.idParamBodyAngleX = Bi, this.idParamBreath = Ri, this.pixelsPerUnit = 1, this.centeringTransform = new pt(), this.coreModel = t, this.settings = e, this.motionManager = new ts(e, i), this.init();
3303
+ }
3304
+ init() {
3305
+ var t;
3306
+ super.init(), ((t = this.settings.getEyeBlinkParameters()) == null ? void 0 : t.length) > 0 && (this.eyeBlink = ue.create(this.settings)), this.breath.setParameters([
3307
+ new st(this.idParamAngleX, 0, 15, 6.5345, 0.5),
3308
+ new st(this.idParamAngleY, 0, 8, 3.5345, 0.5),
3309
+ new st(this.idParamAngleZ, 0, 10, 5.5345, 0.5),
3310
+ new st(this.idParamBodyAngleX, 0, 4, 15.5345, 0.5),
3311
+ new st(this.idParamBreath, 0, 0.5, 3.2345, 0.5)
3312
+ ]), this.renderer.initialize(this.coreModel), this.renderer.setIsPremultipliedAlpha(!0);
3313
+ }
3314
+ getSize() {
3315
+ return [this.coreModel.getModel().canvasinfo.CanvasWidth, this.coreModel.getModel().canvasinfo.CanvasHeight];
3316
+ }
3317
+ getLayout() {
3318
+ const t = {};
3319
+ if (this.settings.layout)
3320
+ for (const e of Object.keys(this.settings.layout)) {
3321
+ const i = e.charAt(0).toLowerCase() + e.slice(1);
3322
+ t[i] = this.settings.layout[e];
3323
+ }
3324
+ return t;
3325
+ }
3326
+ setupLayout() {
3327
+ super.setupLayout(), this.pixelsPerUnit = this.coreModel.getModel().canvasinfo.PixelsPerUnit, this.centeringTransform.scale(this.pixelsPerUnit, this.pixelsPerUnit).translate(this.originalWidth / 2, this.originalHeight / 2);
3328
+ }
3329
+ updateWebGLContext(t, e) {
3330
+ this.renderer.firstDraw = !0, this.renderer._bufferData = {
3331
+ vertex: null,
3332
+ uv: null,
3333
+ index: null
3334
+ }, this.renderer.startUp(t), this.renderer._clippingManager._currentFrameNo = e, this.renderer._clippingManager._maskTexture = void 0, et.getInstance()._shaderSets = [];
3335
+ }
3336
+ bindTexture(t, e) {
3337
+ this.renderer.bindTexture(t, e);
3338
+ }
3339
+ getHitAreaDefs() {
3340
+ var t, e;
3341
+ return (e = (t = this.settings.hitAreas) == null ? void 0 : t.map((i) => ({
3342
+ id: i.Id,
3343
+ name: i.Name,
3344
+ index: this.coreModel.getDrawableIndex(i.Id)
3345
+ }))) != null ? e : [];
3346
+ }
3347
+ getDrawableIDs() {
3348
+ return this.coreModel.getDrawableIds();
3349
+ }
3350
+ getDrawableIndex(t) {
3351
+ return this.coreModel.getDrawableIndex(t);
3352
+ }
3353
+ getDrawableVertices(t) {
3354
+ if (typeof t == "string" && (t = this.coreModel.getDrawableIndex(t), t === -1))
3355
+ throw new TypeError("Unable to find drawable ID: " + t);
3356
+ const e = this.coreModel.getDrawableVertices(t).slice();
3357
+ for (let i = 0; i < e.length; i += 2)
3358
+ e[i] = e[i] * this.pixelsPerUnit + this.originalWidth / 2, e[i + 1] = -e[i + 1] * this.pixelsPerUnit + this.originalHeight / 2;
3359
+ return e;
3360
+ }
3361
+ updateTransform(t) {
3362
+ this.drawingMatrix.copyFrom(this.centeringTransform).prepend(this.localTransform).prepend(t);
3363
+ }
3364
+ update(t, e) {
3365
+ var i, r, a, n;
3366
+ super.update(t, e), t /= 1e3, e /= 1e3;
3367
+ const o = this.coreModel;
3368
+ this.emit("beforeMotionUpdate");
3369
+ const l = this.motionManager.update(this.coreModel, e);
3370
+ this.emit("afterMotionUpdate"), o.saveParameters(), (i = this.motionManager.expressionManager) == null || i.update(o, e), l || (r = this.eyeBlink) == null || r.updateParameters(o, t), this.updateFocus(), this.updateNaturalMovements(t * 1e3, e * 1e3), (a = this.physics) == null || a.evaluate(o, t), (n = this.pose) == null || n.updateParameters(o, t), this.emit("beforeModelUpdate"), o.update(), o.loadParameters();
3371
+ }
3372
+ updateFocus() {
3373
+ this.coreModel.addParameterValueById(this.idParamEyeBallX, this.focusController.x), this.coreModel.addParameterValueById(this.idParamEyeBallY, this.focusController.y), this.coreModel.addParameterValueById(this.idParamAngleX, this.focusController.x * 30), this.coreModel.addParameterValueById(this.idParamAngleY, this.focusController.y * 30), this.coreModel.addParameterValueById(this.idParamAngleZ, this.focusController.x * this.focusController.y * -30), this.coreModel.addParameterValueById(this.idParamBodyAngleX, this.focusController.x * 10);
3374
+ }
3375
+ updateNaturalMovements(t, e) {
3376
+ var i;
3377
+ (i = this.breath) == null || i.updateParameters(this.coreModel, t / 1e3);
3378
+ }
3379
+ draw(t) {
3380
+ const e = this.drawingMatrix, i = le.getArray();
3381
+ i[0] = e.a, i[1] = e.b, i[4] = -e.c, i[5] = -e.d, i[12] = e.tx, i[13] = e.ty, this.renderer.setMvpMatrix(le), this.renderer.setRenderState(t.getParameter(t.FRAMEBUFFER_BINDING), this.viewport), this.renderer.drawModel();
3382
+ }
3383
+ destroy() {
3384
+ super.destroy(), this.renderer.release(), this.coreModel.release(), this.renderer = void 0, this.coreModel = void 0;
3385
+ }
3386
+ }
3387
+ let mt, he = 20;
3388
+ function is() {
3389
+ return ht.isStarted() ? Promise.resolve() : (mt ?? (mt = new Promise((s, t) => {
3390
+ function e() {
3391
+ try {
3392
+ ss(), s();
3393
+ } catch (i) {
3394
+ if (he--, he < 0) {
3395
+ const r = new Error("Failed to start up Cubism 4 framework.");
3396
+ r.cause = i, t(r);
3397
+ return;
3398
+ }
3399
+ C.log("Cubism4", "Startup failed, retrying 10ms later..."), setTimeout(e, 10);
3400
+ }
3401
+ }
3402
+ e();
3403
+ })), mt);
3404
+ }
3405
+ function ss(s) {
3406
+ s = Object.assign({
3407
+ logFunction: console.log,
3408
+ loggingLevel: Y.LogLevel_Verbose
3409
+ }, s), ht.startUp(s), ht.initialize();
3410
+ }
3411
+ w.registerRuntime({
3412
+ version: 4,
3413
+ ready: is,
3414
+ test(s) {
3415
+ return s instanceof it || it.isValidJSON(s);
3416
+ },
3417
+ isValidMoc(s) {
3418
+ if (s.byteLength < 4)
3419
+ return !1;
3420
+ const t = new Int8Array(s, 0, 4);
3421
+ return String.fromCharCode(...t) === "MOC3";
3422
+ },
3423
+ createModelSettings(s) {
3424
+ return new it(s);
3425
+ },
3426
+ createCoreModel(s) {
3427
+ const t = Bt.create(s);
3428
+ try {
3429
+ const e = t.createModel();
3430
+ return e.__moc = t, e;
3431
+ } catch (e) {
3432
+ try {
3433
+ t.release();
3434
+ } catch {
3435
+ }
3436
+ throw e;
3437
+ }
3438
+ },
3439
+ createInternalModel(s, t, e) {
3440
+ const i = new es(s, t, e), r = s;
3441
+ return r.__moc && (i.__moc = r.__moc, delete r.__moc, i.once("destroy", rs)), i;
3442
+ },
3443
+ createPhysics(s, t) {
3444
+ return Vt.create(t);
3445
+ },
3446
+ createPose(s, t) {
3447
+ return Dt.create(t);
3448
+ }
3449
+ });
3450
+ function rs() {
3451
+ var s;
3452
+ (s = this.__moc) == null || s.release();
3453
+ }
3454
+ export {
3455
+ ce as ACubismMotion,
3456
+ st as BreathParameterData,
3457
+ ct as CSM_ASSERT,
3458
+ xt as Constant,
3459
+ Qi as Cubism4ExpressionManager,
3460
+ es as Cubism4InternalModel,
3461
+ it as Cubism4ModelSettings,
3462
+ ts as Cubism4MotionManager,
3463
+ z as CubismBlendMode,
3464
+ Ft as CubismBreath,
3465
+ Mi as CubismClippingContext,
3466
+ Ct as CubismClippingManager_WebGL,
3467
+ ut as CubismConfig,
3468
+ dt as CubismDebug,
3469
+ Rt as CubismExpressionMotion,
3470
+ ue as CubismEyeBlink,
3471
+ ht as CubismFramework,
3472
+ qt as CubismLogDebug,
3473
+ tt as CubismLogError,
3474
+ rt as CubismLogInfo,
3475
+ ns as CubismLogVerbose,
3476
+ nt as CubismLogWarning,
3477
+ S as CubismMath,
3478
+ R as CubismMatrix44,
3479
+ Bt as CubismMoc,
3480
+ De as CubismModel,
3481
+ _e as CubismModelSettingsJson,
3482
+ de as CubismModelUserData,
3483
+ Ae as CubismModelUserDataJson,
3484
+ kt as CubismMotion,
3485
+ Oe as CubismMotionCurve,
3486
+ $ as CubismMotionCurveTarget,
3487
+ Ue as CubismMotionData,
3488
+ ke as CubismMotionEvent,
3489
+ me as CubismMotionJson,
3490
+ os as CubismMotionManager,
3491
+ j as CubismMotionPoint,
3492
+ Je as CubismMotionQueueEntry,
3493
+ Ut as CubismMotionQueueManager,
3494
+ Re as CubismMotionSegment,
3495
+ k as CubismMotionSegmentType,
3496
+ Vt as CubismPhysics,
3497
+ ti as CubismPhysicsInput,
3498
+ si as CubismPhysicsJson,
3499
+ ei as CubismPhysicsOutput,
3500
+ Ke as CubismPhysicsParticle,
3501
+ ii as CubismPhysicsRig,
3502
+ J as CubismPhysicsSource,
3503
+ Qe as CubismPhysicsSubRig,
3504
+ bt as CubismPhysicsTargetType,
3505
+ Dt as CubismPose,
3506
+ Pi as CubismRenderTextureResource,
3507
+ At as CubismRenderer,
3508
+ pe as CubismRenderer_WebGL,
3509
+ et as CubismShader_WebGL,
3510
+ at as CubismTextureColor,
3511
+ y as CubismVector2,
3512
+ Ot as EvaluationOptionFlag,
3513
+ q as ExpressionBlendType,
3514
+ ye as ExpressionManager,
3515
+ A as EyeState,
3516
+ zt as FileLoader,
3517
+ Ni as FocusController,
3518
+ ds as HitAreaBody,
3519
+ us as HitAreaHead,
3520
+ hs as HitAreaPrefix,
3521
+ $i as InteractionMixin,
3522
+ Hi as InternalModel,
3523
+ Ze as InvalidMotionQueueEntryHandleValue,
3524
+ ee as LOGICAL_HEIGHT,
3525
+ te as LOGICAL_WIDTH,
3526
+ w as Live2DFactory,
3527
+ X as Live2DLoader,
3528
+ Ki as Live2DModel,
3529
+ Ji as Live2DTransform,
3530
+ Y as LogLevel,
3531
+ Gt as ModelSettings,
3532
+ jt as MotionManager,
3533
+ Xi as MotionPreloadStrategy,
3534
+ Lt as MotionPriority,
3535
+ Gi as MotionState,
3536
+ ni as Options,
3537
+ Ti as ParamAngleX,
3538
+ Ei as ParamAngleY,
3539
+ Fi as ParamAngleZ,
3540
+ Bs as ParamArmLA,
3541
+ Os as ParamArmLB,
3542
+ Rs as ParamArmRA,
3543
+ ks as ParamArmRB,
3544
+ Ws as ParamBaseX,
3545
+ qs as ParamBaseY,
3546
+ Bi as ParamBodyAngleX,
3547
+ Ds as ParamBodyAngleY,
3548
+ As as ParamBodyAngleZ,
3549
+ Ri as ParamBreath,
3550
+ bs as ParamBrowLAngle,
3551
+ Is as ParamBrowLForm,
3552
+ Cs as ParamBrowLX,
3553
+ Ps as ParamBrowLY,
3554
+ ws as ParamBrowRAngle,
3555
+ Ls as ParamBrowRForm,
3556
+ Ss as ParamBrowRX,
3557
+ Ms as ParamBrowRY,
3558
+ Ys as ParamBustX,
3559
+ Hs as ParamBustY,
3560
+ Fs as ParamCheek,
3561
+ xs as ParamEyeBallForm,
3562
+ Di as ParamEyeBallX,
3563
+ Ai as ParamEyeBallY,
3564
+ _s as ParamEyeLOpen,
3565
+ fs as ParamEyeLSmile,
3566
+ ys as ParamEyeROpen,
3567
+ vs as ParamEyeRSmile,
3568
+ js as ParamHairBack,
3569
+ zs as ParamHairFluffy,
3570
+ Ns as ParamHairFront,
3571
+ Gs as ParamHairSide,
3572
+ Us as ParamHandL,
3573
+ Vs as ParamHandR,
3574
+ Ts as ParamMouthForm,
3575
+ Es as ParamMouthOpenY,
3576
+ $s as ParamNONE,
3577
+ Xs as ParamShoulderY,
3578
+ _t as PartData,
3579
+ gs as PartsArmLPrefix,
3580
+ ms as PartsArmPrefix,
3581
+ ps as PartsArmRPrefix,
3582
+ cs as PartsIdCore,
3583
+ ls as PhysicsJsonEffectiveForces,
3584
+ lt as ShaderNames,
3585
+ Z as SoundManager,
3586
+ Js as VERSION,
3587
+ ft as XHRLoader,
3588
+ yt as ZipLoader,
3589
+ fe as applyMixins,
3590
+ ie as clamp,
3591
+ F as config,
3592
+ Qs as copyArray,
3593
+ Ks as copyProperty,
3594
+ wt as csmRect,
3595
+ is as cubism4Ready,
3596
+ Oi as folderName,
3597
+ Li as fragmentShaderSrcMaskInvertedPremultipliedAlpha,
3598
+ Ii as fragmentShaderSrcMaskPremultipliedAlpha,
3599
+ wi as fragmentShaderSrcPremultipliedAlpha,
3600
+ Si as fragmentShaderSrcsetupMask,
3601
+ C as logger,
3602
+ Zs as rand,
3603
+ ki as remove,
3604
+ ss as startUpCubism4,
3605
+ bi as vertexShaderSrc,
3606
+ Qt as vertexShaderSrcMasked,
3607
+ Ci as vertexShaderSrcSetupMask
3608
+ };