reze-engine 0.8.3 → 0.9.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.
- package/README.md +3 -3
- package/dist/engine.d.ts +50 -38
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +400 -722
- package/dist/model.d.ts +1 -13
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +3 -28
- package/dist/pmx-loader.d.ts.map +1 -1
- package/dist/pmx-loader.js +0 -17
- package/package.json +2 -2
- package/src/engine.ts +470 -790
- package/src/model.ts +3 -38
- package/src/pmx-loader.ts +0 -21
package/dist/model.d.ts
CHANGED
|
@@ -20,9 +20,6 @@ export interface Material {
|
|
|
20
20
|
edgeColor: [number, number, number, number];
|
|
21
21
|
edgeSize: number;
|
|
22
22
|
vertexCount: number;
|
|
23
|
-
isEye?: boolean;
|
|
24
|
-
isFace?: boolean;
|
|
25
|
-
isHair?: boolean;
|
|
26
23
|
}
|
|
27
24
|
export interface Bone {
|
|
28
25
|
name: string;
|
|
@@ -95,10 +92,6 @@ export interface MorphRuntime {
|
|
|
95
92
|
weights: Float32Array;
|
|
96
93
|
}
|
|
97
94
|
export declare class Model {
|
|
98
|
-
private static _nextId;
|
|
99
|
-
private static nextDefaultName;
|
|
100
|
-
static loadFrom(path: string): Promise<Model>;
|
|
101
|
-
static loadFrom(name: string, path: string): Promise<Model>;
|
|
102
95
|
private _name;
|
|
103
96
|
get name(): string;
|
|
104
97
|
setName(value: string): void;
|
|
@@ -125,8 +118,6 @@ export declare class Model {
|
|
|
125
118
|
private boneTrackIndices;
|
|
126
119
|
private morphTrackIndices;
|
|
127
120
|
private lastAppliedClip;
|
|
128
|
-
private ikEnabled;
|
|
129
|
-
private physicsEnabled;
|
|
130
121
|
constructor(vertexData: Float32Array<ArrayBuffer>, indexData: Uint32Array<ArrayBuffer>, textures: Texture[], materials: Material[], skeleton: Skeleton, skinning: Skinning, morphing: Morphing, rigidbodies?: Rigidbody[], joints?: Joint[]);
|
|
131
122
|
private initializeRuntimeSkeleton;
|
|
132
123
|
private initializeIKRuntime;
|
|
@@ -157,9 +148,6 @@ export declare class Model {
|
|
|
157
148
|
loadAnimation(animationName: string, vmdUrl: string): Promise<void>;
|
|
158
149
|
resetAllBones(): void;
|
|
159
150
|
resetAllMorphs(): void;
|
|
160
|
-
setIKEnabled(enabled: boolean): void;
|
|
161
|
-
setPhysicsEnabled(enabled: boolean): void;
|
|
162
|
-
getPhysicsEnabled(): boolean;
|
|
163
151
|
getAnimationState(): AnimationState;
|
|
164
152
|
play(): void;
|
|
165
153
|
play(name: string): boolean;
|
|
@@ -180,7 +168,7 @@ export declare class Model {
|
|
|
180
168
|
private static upperBound;
|
|
181
169
|
private findKeyframeIndex;
|
|
182
170
|
private applyPoseFromClip;
|
|
183
|
-
update(deltaTime: number): boolean;
|
|
171
|
+
update(deltaTime: number, ikEnabled: boolean): boolean;
|
|
184
172
|
private solveIKChains;
|
|
185
173
|
private ikComputedSet;
|
|
186
174
|
private computeSingleBoneWorldMatrix;
|
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,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,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,23 +1,11 @@
|
|
|
1
1
|
import { Mat4, Quat, Vec3 } from "./math";
|
|
2
2
|
import { Engine } from "./engine";
|
|
3
|
-
import { PmxLoader } from "./pmx-loader";
|
|
4
3
|
import { IKSolverSystem } from "./ik-solver";
|
|
5
4
|
import { VMDLoader } from "./vmd-loader";
|
|
6
5
|
import { AnimationState, interpolateControlPoints, rawInterpolationToBoneInterpolation, } from "./animation";
|
|
7
6
|
const VMD_FPS = 30;
|
|
8
7
|
const VERTEX_STRIDE = 8;
|
|
9
8
|
export class Model {
|
|
10
|
-
static nextDefaultName() {
|
|
11
|
-
return "model_" + Model._nextId++;
|
|
12
|
-
}
|
|
13
|
-
static async loadFrom(nameOrPath, path) {
|
|
14
|
-
const name = path === undefined ? Model.nextDefaultName() : nameOrPath;
|
|
15
|
-
const pmxPath = path === undefined ? nameOrPath : path;
|
|
16
|
-
const model = await PmxLoader.load(pmxPath);
|
|
17
|
-
model.setName(name);
|
|
18
|
-
await Engine.getInstance().registerModel(model, pmxPath);
|
|
19
|
-
return model;
|
|
20
|
-
}
|
|
21
9
|
get name() {
|
|
22
10
|
return this._name;
|
|
23
11
|
}
|
|
@@ -41,9 +29,6 @@ export class Model {
|
|
|
41
29
|
this.boneTrackIndices = new Map();
|
|
42
30
|
this.morphTrackIndices = new Map();
|
|
43
31
|
this.lastAppliedClip = null;
|
|
44
|
-
// IK and Physics enable flags
|
|
45
|
-
this.ikEnabled = true;
|
|
46
|
-
this.physicsEnabled = true;
|
|
47
32
|
// Cached set to track which bones are being computed in current IK pass (to avoid infinite recursion)
|
|
48
33
|
this.ikComputedSet = new Set();
|
|
49
34
|
// Store base vertex data (original positions before morphing)
|
|
@@ -618,15 +603,6 @@ export class Model {
|
|
|
618
603
|
this.morphsDirty = true;
|
|
619
604
|
this.applyMorphs();
|
|
620
605
|
}
|
|
621
|
-
setIKEnabled(enabled) {
|
|
622
|
-
this.ikEnabled = enabled;
|
|
623
|
-
}
|
|
624
|
-
setPhysicsEnabled(enabled) {
|
|
625
|
-
this.physicsEnabled = enabled;
|
|
626
|
-
}
|
|
627
|
-
getPhysicsEnabled() {
|
|
628
|
-
return this.physicsEnabled;
|
|
629
|
-
}
|
|
630
606
|
getAnimationState() {
|
|
631
607
|
return this.animationState;
|
|
632
608
|
}
|
|
@@ -761,8 +737,8 @@ export class Model {
|
|
|
761
737
|
this.morphsDirty = true; // Mark as dirty when animation sets morph weights
|
|
762
738
|
}
|
|
763
739
|
}
|
|
764
|
-
// Returns true when morphs changed (vertex buffer may need upload)
|
|
765
|
-
update(deltaTime) {
|
|
740
|
+
// Returns true when morphs changed (vertex buffer may need upload). ikEnabled is driven by engine (same for all models).
|
|
741
|
+
update(deltaTime, ikEnabled) {
|
|
766
742
|
// Update tween time (in milliseconds)
|
|
767
743
|
this.tweenTimeMs += deltaTime * 1000;
|
|
768
744
|
// Update all active tweens (rotations, translations, morphs)
|
|
@@ -782,7 +758,7 @@ export class Model {
|
|
|
782
758
|
// Compute world matrices (needed for IK solving to read bone positions)
|
|
783
759
|
this.computeWorldMatrices();
|
|
784
760
|
// Solve IK chains (modifies localRotations with final IK rotations)
|
|
785
|
-
if (
|
|
761
|
+
if (ikEnabled) {
|
|
786
762
|
this.solveIKChains();
|
|
787
763
|
// Recompute world matrices with final IK rotations applied to localRotations
|
|
788
764
|
this.computeWorldMatrices();
|
|
@@ -983,4 +959,3 @@ export class Model {
|
|
|
983
959
|
computeWorld(i);
|
|
984
960
|
}
|
|
985
961
|
}
|
|
986
|
-
Model._nextId = 0;
|
package/dist/pmx-loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pmx-loader.d.ts","sourceRoot":"","sources":["../src/pmx-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAWN,MAAM,SAAS,CAAA;AAIhB,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO;WAIM,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAK9C,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,aAAa;IA+FrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"pmx-loader.d.ts","sourceRoot":"","sources":["../src/pmx-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAWN,MAAM,SAAS,CAAA;AAIhB,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO;WAIM,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAK9C,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,aAAa;IA+FrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,cAAc;IAoEtB,OAAO,CAAC,UAAU;IAsKlB,OAAO,CAAC,WAAW;IA+InB,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,gBAAgB;IAyFxB,OAAO,CAAC,WAAW;IAmGnB,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,OAAO;IAkLf,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,QAAQ;CAIjB"}
|
package/dist/pmx-loader.js
CHANGED
|
@@ -245,23 +245,6 @@ export class PmxLoader {
|
|
|
245
245
|
edgeSize,
|
|
246
246
|
vertexCount,
|
|
247
247
|
};
|
|
248
|
-
// Classify materials based on name
|
|
249
|
-
const materialName = name.toLowerCase();
|
|
250
|
-
// Classify eye materials
|
|
251
|
-
mat.isEye =
|
|
252
|
-
materialName.includes("目") || // Japanese "eye"
|
|
253
|
-
materialName.includes("瞳") || // Japanese "pupil"
|
|
254
|
-
materialName.includes("eye") ||
|
|
255
|
-
materialName.includes("pupil") ||
|
|
256
|
-
materialName.includes("iris") ||
|
|
257
|
-
materialName.includes("目白") ||
|
|
258
|
-
materialName.includes("眼") ||
|
|
259
|
-
materialName.includes("睛") ||
|
|
260
|
-
materialName.includes("眉");
|
|
261
|
-
// Classify face materials
|
|
262
|
-
mat.isFace = materialName.includes("face") || materialName.includes("脸");
|
|
263
|
-
// Classify hair materials
|
|
264
|
-
mat.isHair = materialName.includes("hair_f") || materialName.includes("头发");
|
|
265
248
|
this.materials.push(mat);
|
|
266
249
|
}
|
|
267
250
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reze-engine",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A WebGPU
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "A WebGPU game engine for MMD/PMX models",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"type": "module",
|