reze-engine 0.3.3 → 0.3.5
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.
- package/dist/ammo-loader.d.ts +0 -1
- package/dist/ammo-loader.d.ts.map +1 -1
- package/dist/ammo-loader.js +0 -3
- package/dist/engine.d.ts +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +2 -2
- package/dist/ik-solver.d.ts +1 -2
- package/dist/ik-solver.d.ts.map +1 -1
- package/dist/ik-solver.js +13 -37
- package/dist/math.d.ts +11 -1
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +39 -7
- package/dist/model.d.ts +0 -16
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +13 -52
- package/dist/player.d.ts +3 -25
- package/dist/player.d.ts.map +1 -1
- package/dist/player.js +4 -117
- package/package.json +1 -1
- package/src/ammo-loader.ts +0 -4
- package/src/engine.ts +2 -2
- package/src/ik-solver.ts +16 -55
- package/src/math.ts +47 -8
- package/src/model.ts +14 -57
- package/src/player.ts +4 -141
- package/src/bezier-interpolate.ts +0 -47
package/dist/ammo-loader.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ammo-loader.d.ts","sourceRoot":"","sources":["../src/ammo-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAKhD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAyBtD
|
|
1
|
+
{"version":3,"file":"ammo-loader.d.ts","sourceRoot":"","sources":["../src/ammo-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAKhD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAyBtD"}
|
package/dist/ammo-loader.js
CHANGED
package/dist/engine.d.ts
CHANGED
|
@@ -114,7 +114,7 @@ export declare class Engine {
|
|
|
114
114
|
private setupCamera;
|
|
115
115
|
private setupLighting;
|
|
116
116
|
private setAmbientColor;
|
|
117
|
-
loadAnimation(url: string
|
|
117
|
+
loadAnimation(url: string): Promise<void>;
|
|
118
118
|
playAnimation(): void;
|
|
119
119
|
stopAnimation(): void;
|
|
120
120
|
pauseAnimation(): void;
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js
CHANGED
|
@@ -1119,8 +1119,8 @@ export class Engine {
|
|
|
1119
1119
|
this.lightData[2] = color.z;
|
|
1120
1120
|
this.lightData[3] = 0.0; // Padding for vec3f alignment
|
|
1121
1121
|
}
|
|
1122
|
-
async loadAnimation(url
|
|
1123
|
-
await this.player.loadVmd(url
|
|
1122
|
+
async loadAnimation(url) {
|
|
1123
|
+
await this.player.loadVmd(url);
|
|
1124
1124
|
this.hasAnimation = true;
|
|
1125
1125
|
// Show first frame (time 0) immediately
|
|
1126
1126
|
if (this.currentModel) {
|
package/dist/ik-solver.d.ts
CHANGED
|
@@ -13,14 +13,13 @@ export declare class IKSolverSystem {
|
|
|
13
13
|
/**
|
|
14
14
|
* Solve all IK chains
|
|
15
15
|
*/
|
|
16
|
-
static solve(ikSolvers: IKSolver[], bones: Bone[], localRotations: Float32Array, localTranslations: Float32Array, worldMatrices: Float32Array, ikChainInfo: IKChainInfo[]
|
|
16
|
+
static solve(ikSolvers: IKSolver[], bones: Bone[], localRotations: Float32Array, localTranslations: Float32Array, worldMatrices: Float32Array, ikChainInfo: IKChainInfo[]): void;
|
|
17
17
|
private static solveIK;
|
|
18
18
|
private static solveChain;
|
|
19
19
|
private static limitAngle;
|
|
20
20
|
private static getWorldTranslation;
|
|
21
21
|
private static getParentWorldRotationMatrix;
|
|
22
22
|
private static transformNormal;
|
|
23
|
-
private static updateWorldMatrixWithIK;
|
|
24
23
|
private static updateWorldMatrix;
|
|
25
24
|
}
|
|
26
25
|
//# sourceMappingURL=ik-solver.d.ts.map
|
package/dist/ik-solver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ik-solver.d.ts","sourceRoot":"","sources":["../src/ik-solver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAU,QAAQ,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ik-solver.d.ts","sourceRoot":"","sources":["../src/ik-solver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAU,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAoE7D;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAS;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAExD;;OAEG;WACW,KAAK,CACjB,SAAS,EAAE,QAAQ,EAAE,EACrB,KAAK,EAAE,IAAI,EAAE,EACb,cAAc,EAAE,YAAY,EAC5B,iBAAiB,EAAE,YAAY,EAC/B,aAAa,EAAE,YAAY,EAC3B,WAAW,EAAE,WAAW,EAAE,GACzB,IAAI;IAMP,OAAO,CAAC,MAAM,CAAC,OAAO;IAgGtB,OAAO,CAAC,MAAM,CAAC,UAAU;IAoKzB,OAAO,CAAC,MAAM,CAAC,UAAU;IAYzB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAe3C,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAiDjC"}
|
package/dist/ik-solver.js
CHANGED
|
@@ -74,11 +74,8 @@ export class IKSolverSystem {
|
|
|
74
74
|
/**
|
|
75
75
|
* Solve all IK chains
|
|
76
76
|
*/
|
|
77
|
-
static solve(ikSolvers, bones, localRotations, localTranslations, worldMatrices, ikChainInfo
|
|
77
|
+
static solve(ikSolvers, bones, localRotations, localTranslations, worldMatrices, ikChainInfo) {
|
|
78
78
|
for (const solver of ikSolvers) {
|
|
79
|
-
if (usePhysics && solver.canSkipWhenPhysicsEnabled) {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
79
|
this.solveIK(solver, bones, localRotations, localTranslations, worldMatrices, ikChainInfo);
|
|
83
80
|
}
|
|
84
81
|
}
|
|
@@ -106,9 +103,9 @@ export class IKSolverSystem {
|
|
|
106
103
|
}
|
|
107
104
|
// Update chain bones and target bone world matrices (initial state, no IK yet)
|
|
108
105
|
for (let i = chains.length - 1; i >= 0; i--) {
|
|
109
|
-
this.updateWorldMatrix(chains[i].boneIndex, bones, localRotations, localTranslations, worldMatrices);
|
|
106
|
+
this.updateWorldMatrix(chains[i].boneIndex, bones, localRotations, localTranslations, worldMatrices, undefined);
|
|
110
107
|
}
|
|
111
|
-
this.updateWorldMatrix(targetBoneIndex, bones, localRotations, localTranslations, worldMatrices);
|
|
108
|
+
this.updateWorldMatrix(targetBoneIndex, bones, localRotations, localTranslations, worldMatrices, undefined);
|
|
112
109
|
// Re-read positions after initial update
|
|
113
110
|
const updatedIkPosition = this.getWorldTranslation(ikBoneIndex, worldMatrices);
|
|
114
111
|
const updatedTargetPosition = this.getWorldTranslation(targetBoneIndex, worldMatrices);
|
|
@@ -273,9 +270,9 @@ export class IKSolverSystem {
|
|
|
273
270
|
// Update world matrices for affected bones (using IK-modified rotations)
|
|
274
271
|
for (let i = chainIndex; i >= 0; i--) {
|
|
275
272
|
const link = solver.links[i];
|
|
276
|
-
this.
|
|
273
|
+
this.updateWorldMatrix(link.boneIndex, bones, localRotations, localTranslations, worldMatrices, ikChainInfo);
|
|
277
274
|
}
|
|
278
|
-
this.updateWorldMatrix(targetBoneIndex, bones, localRotations, localTranslations, worldMatrices);
|
|
275
|
+
this.updateWorldMatrix(targetBoneIndex, bones, localRotations, localTranslations, worldMatrices, undefined);
|
|
279
276
|
}
|
|
280
277
|
static limitAngle(angle, min, max, useAxis) {
|
|
281
278
|
if (angle < min) {
|
|
@@ -313,16 +310,19 @@ export class IKSolverSystem {
|
|
|
313
310
|
const m = matrix.values;
|
|
314
311
|
return new Vec3(m[0] * normal.x + m[4] * normal.y + m[8] * normal.z, m[1] * normal.x + m[5] * normal.y + m[9] * normal.z, m[2] * normal.x + m[6] * normal.y + m[10] * normal.z);
|
|
315
312
|
}
|
|
316
|
-
static
|
|
313
|
+
static updateWorldMatrix(boneIndex, bones, localRotations, localTranslations, worldMatrices, ikChainInfo) {
|
|
317
314
|
const bone = bones[boneIndex];
|
|
318
315
|
const qi = boneIndex * 4;
|
|
319
316
|
const ti = boneIndex * 3;
|
|
320
|
-
//
|
|
317
|
+
// Get local rotation
|
|
321
318
|
const localRot = new Quat(localRotations[qi], localRotations[qi + 1], localRotations[qi + 2], localRotations[qi + 3]);
|
|
322
|
-
|
|
319
|
+
// Apply IK rotation if available
|
|
323
320
|
let finalRot = localRot;
|
|
324
|
-
if (
|
|
325
|
-
|
|
321
|
+
if (ikChainInfo) {
|
|
322
|
+
const chainInfo = ikChainInfo[boneIndex];
|
|
323
|
+
if (chainInfo && chainInfo.ikRotation) {
|
|
324
|
+
finalRot = chainInfo.ikRotation.multiply(localRot).normalize();
|
|
325
|
+
}
|
|
326
326
|
}
|
|
327
327
|
const rotateM = Mat4.fromQuat(finalRot.x, finalRot.y, finalRot.z, finalRot.w);
|
|
328
328
|
const localTx = localTranslations[ti];
|
|
@@ -343,30 +343,6 @@ export class IKSolverSystem {
|
|
|
343
343
|
worldMatrices.subarray(worldOffset, worldOffset + 16).set(localM.values);
|
|
344
344
|
}
|
|
345
345
|
}
|
|
346
|
-
static updateWorldMatrix(boneIndex, bones, localRotations, localTranslations, worldMatrices) {
|
|
347
|
-
const bone = bones[boneIndex];
|
|
348
|
-
const qi = boneIndex * 4;
|
|
349
|
-
const ti = boneIndex * 3;
|
|
350
|
-
const localRot = new Quat(localRotations[qi], localRotations[qi + 1], localRotations[qi + 2], localRotations[qi + 3]);
|
|
351
|
-
const rotateM = Mat4.fromQuat(localRot.x, localRot.y, localRot.z, localRot.w);
|
|
352
|
-
const localTx = localTranslations[ti];
|
|
353
|
-
const localTy = localTranslations[ti + 1];
|
|
354
|
-
const localTz = localTranslations[ti + 2];
|
|
355
|
-
const localM = Mat4.identity()
|
|
356
|
-
.translateInPlace(bone.bindTranslation[0], bone.bindTranslation[1], bone.bindTranslation[2])
|
|
357
|
-
.multiply(rotateM)
|
|
358
|
-
.translateInPlace(localTx, localTy, localTz);
|
|
359
|
-
const worldOffset = boneIndex * 16;
|
|
360
|
-
if (bone.parentIndex >= 0) {
|
|
361
|
-
const parentOffset = bone.parentIndex * 16;
|
|
362
|
-
const parentMat = new Mat4(worldMatrices.subarray(parentOffset, parentOffset + 16));
|
|
363
|
-
const worldMat = parentMat.multiply(localM);
|
|
364
|
-
worldMatrices.subarray(worldOffset, worldOffset + 16).set(worldMat.values);
|
|
365
|
-
}
|
|
366
|
-
else {
|
|
367
|
-
worldMatrices.subarray(worldOffset, worldOffset + 16).set(localM.values);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
346
|
}
|
|
371
347
|
IKSolverSystem.EPSILON = 1.0e-8;
|
|
372
348
|
IKSolverSystem.THRESHOLD = (88 * Math.PI) / 180;
|
package/dist/math.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class Vec3 {
|
|
|
7
7
|
add(other: Vec3): Vec3;
|
|
8
8
|
subtract(other: Vec3): Vec3;
|
|
9
9
|
length(): number;
|
|
10
|
+
lengthSquared(): number;
|
|
10
11
|
normalize(): Vec3;
|
|
11
12
|
cross(other: Vec3): Vec3;
|
|
12
13
|
dot(other: Vec3): number;
|
|
@@ -26,7 +27,6 @@ export declare class Quat {
|
|
|
26
27
|
length(): number;
|
|
27
28
|
normalize(): Quat;
|
|
28
29
|
rotateVec(v: Vec3): Vec3;
|
|
29
|
-
rotate(v: Vec3): Vec3;
|
|
30
30
|
static fromTo(from: Vec3, to: Vec3): Quat;
|
|
31
31
|
static fromAxisAngle(axis: Vec3, angle: number): Quat;
|
|
32
32
|
toArray(): [number, number, number, number];
|
|
@@ -52,4 +52,14 @@ export declare class Mat4 {
|
|
|
52
52
|
translateInPlace(tx: number, ty: number, tz: number): this;
|
|
53
53
|
inverse(): Mat4;
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Bezier interpolation function
|
|
57
|
+
* @param x1 First control point X (0-127, normalized to 0-1)
|
|
58
|
+
* @param x2 Second control point X (0-127, normalized to 0-1)
|
|
59
|
+
* @param y1 First control point Y (0-127, normalized to 0-1)
|
|
60
|
+
* @param y2 Second control point Y (0-127, normalized to 0-1)
|
|
61
|
+
* @param t Interpolation parameter (0-1)
|
|
62
|
+
* @returns Interpolated value (0-1)
|
|
63
|
+
*/
|
|
64
|
+
export declare function bezierInterpolate(x1: number, x2: number, y1: number, y2: number, t: number): number;
|
|
55
65
|
//# sourceMappingURL=math.d.ts.map
|
package/dist/math.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AACA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,qBAAa,IAAI;IACf,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;gBAEG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAM3C,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAItB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI3B,MAAM,IAAI,MAAM;IAIhB,SAAS,IAAI,IAAI;IAMjB,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAQxB,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAIxB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,IAAI,IAAI;CAGd;AAED,qBAAa,IAAI;IACf,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;gBAEG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAOtD,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAItB,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAU3B,SAAS,IAAI,IAAI;IAKjB,MAAM,IAAI,MAAM;IAIhB,SAAS,IAAI,IAAI;IAOjB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;IAwBxB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
|
package/dist/math.js
CHANGED
|
@@ -17,6 +17,9 @@ export class Vec3 {
|
|
|
17
17
|
length() {
|
|
18
18
|
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
|
|
19
19
|
}
|
|
20
|
+
lengthSquared() {
|
|
21
|
+
return this.x * this.x + this.y * this.y + this.z * this.z;
|
|
22
|
+
}
|
|
20
23
|
normalize() {
|
|
21
24
|
const len = this.length();
|
|
22
25
|
if (len === 0)
|
|
@@ -78,13 +81,6 @@ export class Quat {
|
|
|
78
81
|
// result = v + q.w * t + cross(q.xyz, t)
|
|
79
82
|
return new Vec3(vx + qw * tx + (qy * tz - qz * ty), vy + qw * ty + (qz * tx - qx * tz), vz + qw * tz + (qx * ty - qy * tx));
|
|
80
83
|
}
|
|
81
|
-
// Rotate a vector by this quaternion (Babylon.js style naming)
|
|
82
|
-
rotate(v) {
|
|
83
|
-
const qv = new Vec3(this.x, this.y, this.z);
|
|
84
|
-
const uv = qv.cross(v);
|
|
85
|
-
const uuv = qv.cross(uv);
|
|
86
|
-
return v.add(uv.scale(2 * this.w)).add(uuv.scale(2));
|
|
87
|
-
}
|
|
88
84
|
// Static method: create quaternion that rotates from one direction to another
|
|
89
85
|
static fromTo(from, to) {
|
|
90
86
|
const dot = from.dot(to);
|
|
@@ -428,3 +424,39 @@ export class Mat4 {
|
|
|
428
424
|
return new Mat4(out);
|
|
429
425
|
}
|
|
430
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* Bezier interpolation function
|
|
429
|
+
* @param x1 First control point X (0-127, normalized to 0-1)
|
|
430
|
+
* @param x2 Second control point X (0-127, normalized to 0-1)
|
|
431
|
+
* @param y1 First control point Y (0-127, normalized to 0-1)
|
|
432
|
+
* @param y2 Second control point Y (0-127, normalized to 0-1)
|
|
433
|
+
* @param t Interpolation parameter (0-1)
|
|
434
|
+
* @returns Interpolated value (0-1)
|
|
435
|
+
*/
|
|
436
|
+
export function bezierInterpolate(x1, x2, y1, y2, t) {
|
|
437
|
+
// Clamp t to [0, 1]
|
|
438
|
+
t = Math.max(0, Math.min(1, t));
|
|
439
|
+
// Binary search for the t value that gives us the desired x
|
|
440
|
+
// We're solving for t in the Bezier curve: x(t) = 3*(1-t)^2*t*x1 + 3*(1-t)*t^2*x2 + t^3
|
|
441
|
+
let start = 0;
|
|
442
|
+
let end = 1;
|
|
443
|
+
let mid = 0.5;
|
|
444
|
+
// Iterate until we find the t value that gives us the desired x
|
|
445
|
+
for (let i = 0; i < 15; i++) {
|
|
446
|
+
// Evaluate Bezier curve at mid point
|
|
447
|
+
const x = 3 * (1 - mid) * (1 - mid) * mid * x1 + 3 * (1 - mid) * mid * mid * x2 + mid * mid * mid;
|
|
448
|
+
if (Math.abs(x - t) < 0.0001) {
|
|
449
|
+
break;
|
|
450
|
+
}
|
|
451
|
+
if (x < t) {
|
|
452
|
+
start = mid;
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
end = mid;
|
|
456
|
+
}
|
|
457
|
+
mid = (start + end) / 2;
|
|
458
|
+
}
|
|
459
|
+
// Now evaluate the y value at this t
|
|
460
|
+
const y = 3 * (1 - mid) * (1 - mid) * mid * y1 + 3 * (1 - mid) * mid * mid * y2 + mid * mid * mid;
|
|
461
|
+
return y;
|
|
462
|
+
}
|
package/dist/model.d.ts
CHANGED
|
@@ -42,20 +42,6 @@ export interface IKLink {
|
|
|
42
42
|
hasLimit: boolean;
|
|
43
43
|
minAngle?: Vec3;
|
|
44
44
|
maxAngle?: Vec3;
|
|
45
|
-
rotationOrder?: EulerRotationOrder;
|
|
46
|
-
solveAxis?: SolveAxis;
|
|
47
|
-
}
|
|
48
|
-
export declare enum EulerRotationOrder {
|
|
49
|
-
YXZ = 0,
|
|
50
|
-
ZYX = 1,
|
|
51
|
-
XZY = 2
|
|
52
|
-
}
|
|
53
|
-
export declare enum SolveAxis {
|
|
54
|
-
None = 0,
|
|
55
|
-
Fixed = 1,
|
|
56
|
-
X = 2,
|
|
57
|
-
Y = 3,
|
|
58
|
-
Z = 4
|
|
59
45
|
}
|
|
60
46
|
export interface IKSolver {
|
|
61
47
|
index: number;
|
|
@@ -64,7 +50,6 @@ export interface IKSolver {
|
|
|
64
50
|
iterationCount: number;
|
|
65
51
|
limitAngle: number;
|
|
66
52
|
links: IKLink[];
|
|
67
|
-
canSkipWhenPhysicsEnabled: boolean;
|
|
68
53
|
}
|
|
69
54
|
export interface IKChainInfo {
|
|
70
55
|
ikRotation: Quat;
|
|
@@ -101,7 +86,6 @@ export interface SkeletonRuntime {
|
|
|
101
86
|
localRotations: Float32Array;
|
|
102
87
|
localTranslations: Float32Array;
|
|
103
88
|
worldMatrices: Float32Array;
|
|
104
|
-
computedBones: boolean[];
|
|
105
89
|
ikChainInfo?: IKChainInfo[];
|
|
106
90
|
ikSolvers?: IKSolver[];
|
|
107
91
|
}
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAK5C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAGD,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,QAAQ,CAAC,EAAE,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
import { Mat4, Quat, Vec3, easeInOut } from "./math";
|
|
2
2
|
import { IKSolverSystem } from "./ik-solver";
|
|
3
3
|
const VERTEX_STRIDE = 8;
|
|
4
|
-
// Euler rotation order for angle constraints
|
|
5
|
-
export var EulerRotationOrder;
|
|
6
|
-
(function (EulerRotationOrder) {
|
|
7
|
-
EulerRotationOrder[EulerRotationOrder["YXZ"] = 0] = "YXZ";
|
|
8
|
-
EulerRotationOrder[EulerRotationOrder["ZYX"] = 1] = "ZYX";
|
|
9
|
-
EulerRotationOrder[EulerRotationOrder["XZY"] = 2] = "XZY";
|
|
10
|
-
})(EulerRotationOrder || (EulerRotationOrder = {}));
|
|
11
|
-
// Solve axis optimization
|
|
12
|
-
export var SolveAxis;
|
|
13
|
-
(function (SolveAxis) {
|
|
14
|
-
SolveAxis[SolveAxis["None"] = 0] = "None";
|
|
15
|
-
SolveAxis[SolveAxis["Fixed"] = 1] = "Fixed";
|
|
16
|
-
SolveAxis[SolveAxis["X"] = 2] = "X";
|
|
17
|
-
SolveAxis[SolveAxis["Y"] = 3] = "Y";
|
|
18
|
-
SolveAxis[SolveAxis["Z"] = 4] = "Z";
|
|
19
|
-
})(SolveAxis || (SolveAxis = {}));
|
|
20
4
|
export class Model {
|
|
21
5
|
constructor(vertexData, indexData, textures, materials, skeleton, skinning, morphing, rigidbodies = [], joints = []) {
|
|
22
6
|
this.textures = [];
|
|
@@ -59,7 +43,6 @@ export class Model {
|
|
|
59
43
|
acc[bone.name] = index;
|
|
60
44
|
return acc;
|
|
61
45
|
}, {}),
|
|
62
|
-
computedBones: new Array(boneCount).fill(false),
|
|
63
46
|
};
|
|
64
47
|
const rotations = this.runtimeSkeleton.localRotations;
|
|
65
48
|
for (let i = 0; i < this.skeleton.bones.length; i++) {
|
|
@@ -91,17 +74,6 @@ export class Model {
|
|
|
91
74
|
for (let i = 0; i < boneCount; i++) {
|
|
92
75
|
const bone = bones[i];
|
|
93
76
|
if (bone.ikTargetIndex !== undefined && bone.ikLinks && bone.ikLinks.length > 0) {
|
|
94
|
-
// Check if all links are affected by physics (for optimization)
|
|
95
|
-
let canSkipWhenPhysicsEnabled = true;
|
|
96
|
-
for (const link of bone.ikLinks) {
|
|
97
|
-
// For now, assume no bones are physics-controlled (can be enhanced later)
|
|
98
|
-
// If a bone has a rigidbody attached, it's physics-controlled
|
|
99
|
-
const hasPhysics = this.rigidbodies.some((rb) => rb.boneIndex === link.boneIndex);
|
|
100
|
-
if (!hasPhysics) {
|
|
101
|
-
canSkipWhenPhysicsEnabled = false;
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
77
|
const solver = {
|
|
106
78
|
index: solverIndex++,
|
|
107
79
|
ikBoneIndex: i,
|
|
@@ -109,7 +81,6 @@ export class Model {
|
|
|
109
81
|
iterationCount: bone.ikIteration ?? 1,
|
|
110
82
|
limitAngle: bone.ikLimitAngle ?? Math.PI,
|
|
111
83
|
links: bone.ikLinks,
|
|
112
|
-
canSkipWhenPhysicsEnabled,
|
|
113
84
|
};
|
|
114
85
|
ikSolvers.push(solver);
|
|
115
86
|
}
|
|
@@ -302,14 +273,10 @@ export class Model {
|
|
|
302
273
|
const startQuat = new Quat(state.startQuat[qi], state.startQuat[qi + 1], state.startQuat[qi + 2], state.startQuat[qi + 3]);
|
|
303
274
|
const targetQuat = new Quat(state.targetQuat[qi], state.targetQuat[qi + 1], state.targetQuat[qi + 2], state.targetQuat[qi + 3]);
|
|
304
275
|
const result = Quat.slerp(startQuat, targetQuat, e);
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
sx = cx;
|
|
310
|
-
sy = cy;
|
|
311
|
-
sz = cz;
|
|
312
|
-
sw = cw;
|
|
276
|
+
sx = result.x;
|
|
277
|
+
sy = result.y;
|
|
278
|
+
sz = result.z;
|
|
279
|
+
sw = result.w;
|
|
313
280
|
}
|
|
314
281
|
state.startQuat[qi] = sx;
|
|
315
282
|
state.startQuat[qi + 1] = sy;
|
|
@@ -434,9 +401,8 @@ export class Model {
|
|
|
434
401
|
// Animated change
|
|
435
402
|
const state = this.morphTweenState;
|
|
436
403
|
const now = performance.now();
|
|
437
|
-
const currentWeight = this.runtimeMorph.weights[idx];
|
|
438
404
|
// If already tweening, start from current interpolated value
|
|
439
|
-
let startWeight =
|
|
405
|
+
let startWeight = this.runtimeMorph.weights[idx];
|
|
440
406
|
if (state.active[idx] === 1) {
|
|
441
407
|
const startMs = state.startTimeMs[idx];
|
|
442
408
|
const prevDur = Math.max(1, state.durationMs[idx]);
|
|
@@ -517,11 +483,11 @@ export class Model {
|
|
|
517
483
|
if (hasActiveMorphTweens) {
|
|
518
484
|
this.applyMorphs();
|
|
519
485
|
}
|
|
520
|
-
// Compute initial world matrices (needed for IK solving)
|
|
486
|
+
// Compute initial world matrices (needed for IK solving to read bone positions)
|
|
521
487
|
this.computeWorldMatrices();
|
|
522
|
-
// Solve IK chains (modifies localRotations)
|
|
488
|
+
// Solve IK chains (modifies localRotations with final IK rotations)
|
|
523
489
|
this.solveIKChains();
|
|
524
|
-
// Recompute world matrices with IK rotations applied
|
|
490
|
+
// Recompute world matrices with final IK rotations applied to localRotations
|
|
525
491
|
this.computeWorldMatrices();
|
|
526
492
|
return hasActiveMorphTweens;
|
|
527
493
|
}
|
|
@@ -532,18 +498,18 @@ export class Model {
|
|
|
532
498
|
const ikChainInfo = this.runtimeSkeleton.ikChainInfo;
|
|
533
499
|
if (!ikChainInfo)
|
|
534
500
|
return;
|
|
535
|
-
IKSolverSystem.solve(ikSolvers, this.skeleton.bones, this.runtimeSkeleton.localRotations, this.runtimeSkeleton.localTranslations, this.runtimeSkeleton.worldMatrices, ikChainInfo
|
|
536
|
-
);
|
|
501
|
+
IKSolverSystem.solve(ikSolvers, this.skeleton.bones, this.runtimeSkeleton.localRotations, this.runtimeSkeleton.localTranslations, this.runtimeSkeleton.worldMatrices, ikChainInfo);
|
|
537
502
|
}
|
|
538
503
|
computeWorldMatrices() {
|
|
539
504
|
const bones = this.skeleton.bones;
|
|
540
505
|
const localRot = this.runtimeSkeleton.localRotations;
|
|
541
506
|
const localTrans = this.runtimeSkeleton.localTranslations;
|
|
542
507
|
const worldBuf = this.runtimeSkeleton.worldMatrices;
|
|
543
|
-
const computed = this.runtimeSkeleton.computedBones.fill(false);
|
|
544
508
|
const boneCount = bones.length;
|
|
545
509
|
if (boneCount === 0)
|
|
546
510
|
return;
|
|
511
|
+
// Local computed array (avoids instance field overhead)
|
|
512
|
+
const computed = new Array(boneCount).fill(false);
|
|
547
513
|
const computeWorld = (i) => {
|
|
548
514
|
if (computed[i])
|
|
549
515
|
return;
|
|
@@ -574,14 +540,9 @@ export class Model {
|
|
|
574
540
|
ay = -ay;
|
|
575
541
|
az = -az;
|
|
576
542
|
}
|
|
577
|
-
const identityQuat = new Quat(0, 0, 0, 1);
|
|
578
543
|
const appendQuat = new Quat(ax, ay, az, aw);
|
|
579
|
-
const result = Quat.slerp(
|
|
580
|
-
|
|
581
|
-
const ry = result.y;
|
|
582
|
-
const rz = result.z;
|
|
583
|
-
const rw = result.w;
|
|
584
|
-
rotateM = Mat4.fromQuat(rx, ry, rz, rw).multiply(rotateM);
|
|
544
|
+
const result = Quat.slerp(new Quat(0, 0, 0, 1), appendQuat, absRatio);
|
|
545
|
+
rotateM = Mat4.fromQuat(result.x, result.y, result.z, result.w).multiply(rotateM);
|
|
585
546
|
}
|
|
586
547
|
if (b.appendMove) {
|
|
587
548
|
const appendRatio = b.appendRatio ?? 1;
|
package/dist/player.d.ts
CHANGED
|
@@ -20,23 +20,17 @@ export declare class Player {
|
|
|
20
20
|
private startTime;
|
|
21
21
|
private pausedTime;
|
|
22
22
|
private pauseStartTime;
|
|
23
|
-
private audioElement?;
|
|
24
|
-
private audioUrl?;
|
|
25
|
-
private audioLoaded;
|
|
26
23
|
/**
|
|
27
|
-
* Load VMD animation file
|
|
24
|
+
* Load VMD animation file
|
|
28
25
|
*/
|
|
29
|
-
loadVmd(vmdUrl: string
|
|
30
|
-
/**
|
|
31
|
-
* Load audio file
|
|
32
|
-
*/
|
|
33
|
-
loadAudio(url: string): Promise<void>;
|
|
26
|
+
loadVmd(vmdUrl: string): Promise<void>;
|
|
34
27
|
/**
|
|
35
28
|
* Process frames into tracks
|
|
36
29
|
*/
|
|
37
30
|
private processFrames;
|
|
38
31
|
/**
|
|
39
32
|
* Start or resume playback
|
|
33
|
+
* Note: For iOS, this should be called synchronously from a user interaction event
|
|
40
34
|
*/
|
|
41
35
|
play(): void;
|
|
42
36
|
/**
|
|
@@ -80,21 +74,5 @@ export declare class Player {
|
|
|
80
74
|
* Check if paused
|
|
81
75
|
*/
|
|
82
76
|
isPausedState(): boolean;
|
|
83
|
-
/**
|
|
84
|
-
* Check if has audio
|
|
85
|
-
*/
|
|
86
|
-
hasAudio(): boolean;
|
|
87
|
-
/**
|
|
88
|
-
* Set audio volume (0.0 to 1.0)
|
|
89
|
-
*/
|
|
90
|
-
setVolume(volume: number): void;
|
|
91
|
-
/**
|
|
92
|
-
* Mute audio
|
|
93
|
-
*/
|
|
94
|
-
mute(): void;
|
|
95
|
-
/**
|
|
96
|
-
* Unmute audio
|
|
97
|
-
*/
|
|
98
|
-
unmute(): void;
|
|
99
77
|
}
|
|
100
78
|
//# sourceMappingURL=player.d.ts.map
|
package/dist/player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAqB,MAAM,QAAQ,CAAA;AAGtD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,MAAM;IAEjB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAwE;IAC1F,OAAO,CAAC,WAAW,CAA0E;IAC7F,OAAO,CAAC,QAAQ,CAAY;IAG5B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAY;IAG/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,cAAc,CAAY;IAElC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C;;OAEG;IACH,OAAO,CAAC,aAAa;IAwErB;;;OAGG;IACH,IAAI,IAAI,IAAI;IAiBZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWxB;;;OAGG;IACH,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAwBrD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IA+I1C;;OAEG;IACH,WAAW,IAAI,iBAAiB;IAQhC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,aAAa,IAAI,OAAO;CAGzB"}
|