reze-engine 0.3.9 → 0.3.10
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/model.d.ts.map +1 -1
- package/dist/model.js +7 -7
- package/package.json +1 -1
- package/src/model.ts +7 -7
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,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mat4, Quat, Vec3,
|
|
1
|
+
import { Mat4, Quat, Vec3, bezierInterpolate } from "./math";
|
|
2
2
|
import { Physics } from "./physics";
|
|
3
3
|
import { IKSolverSystem } from "./ik-solver";
|
|
4
4
|
import { VMDLoader } from "./vmd-loader";
|
|
@@ -161,7 +161,7 @@ export class Model {
|
|
|
161
161
|
const startMs = state.rotStartTimeMs[i];
|
|
162
162
|
const durMs = Math.max(1, state.rotDurationMs[i]);
|
|
163
163
|
const t = Math.max(0, Math.min(1, (now - startMs) / durMs));
|
|
164
|
-
const e =
|
|
164
|
+
const e = t; // Linear interpolation
|
|
165
165
|
const qi = i * 4;
|
|
166
166
|
const startQuat = new Quat(state.rotStartQuat[qi], state.rotStartQuat[qi + 1], state.rotStartQuat[qi + 2], state.rotStartQuat[qi + 3]);
|
|
167
167
|
const targetQuat = new Quat(state.rotTargetQuat[qi], state.rotTargetQuat[qi + 1], state.rotTargetQuat[qi + 2], state.rotTargetQuat[qi + 3]);
|
|
@@ -182,7 +182,7 @@ export class Model {
|
|
|
182
182
|
const startMs = state.transStartTimeMs[i];
|
|
183
183
|
const durMs = Math.max(1, state.transDurationMs[i]);
|
|
184
184
|
const t = Math.max(0, Math.min(1, (now - startMs) / durMs));
|
|
185
|
-
const e =
|
|
185
|
+
const e = t; // Linear interpolation
|
|
186
186
|
const ti = i * 3;
|
|
187
187
|
translations[ti] = state.transStartVec[ti] + (state.transTargetVec[ti] - state.transStartVec[ti]) * e;
|
|
188
188
|
translations[ti + 1] =
|
|
@@ -202,7 +202,7 @@ export class Model {
|
|
|
202
202
|
const startMs = state.morphStartTimeMs[i];
|
|
203
203
|
const durMs = Math.max(1, state.morphDurationMs[i]);
|
|
204
204
|
const t = Math.max(0, Math.min(1, (now - startMs) / durMs));
|
|
205
|
-
const e =
|
|
205
|
+
const e = t; // Linear interpolation
|
|
206
206
|
const oldWeight = weights[i];
|
|
207
207
|
weights[i] = state.morphStartWeight[i] + (state.morphTargetWeight[i] - state.morphStartWeight[i]) * e;
|
|
208
208
|
// Check if weight actually changed (accounting for floating point precision)
|
|
@@ -280,7 +280,7 @@ export class Model {
|
|
|
280
280
|
const startMs = state.rotStartTimeMs[idx];
|
|
281
281
|
const prevDur = Math.max(1, state.rotDurationMs[idx]);
|
|
282
282
|
const t = Math.max(0, Math.min(1, (now - startMs) / prevDur));
|
|
283
|
-
const e =
|
|
283
|
+
const e = t; // Linear interpolation
|
|
284
284
|
const startQuat = new Quat(state.rotStartQuat[qi], state.rotStartQuat[qi + 1], state.rotStartQuat[qi + 2], state.rotStartQuat[qi + 3]);
|
|
285
285
|
const targetQuat = new Quat(state.rotTargetQuat[qi], state.rotTargetQuat[qi + 1], state.rotTargetQuat[qi + 2], state.rotTargetQuat[qi + 3]);
|
|
286
286
|
const result = Quat.slerp(startQuat, targetQuat, e);
|
|
@@ -371,7 +371,7 @@ export class Model {
|
|
|
371
371
|
const startMs = state.transStartTimeMs[idx];
|
|
372
372
|
const prevDur = Math.max(1, state.transDurationMs[idx]);
|
|
373
373
|
const t = Math.max(0, Math.min(1, (now - startMs) / prevDur));
|
|
374
|
-
const e =
|
|
374
|
+
const e = t; // Linear interpolation
|
|
375
375
|
sx = state.transStartVec[ti] + (state.transTargetVec[ti] - state.transStartVec[ti]) * e;
|
|
376
376
|
sy = state.transStartVec[ti + 1] + (state.transTargetVec[ti + 1] - state.transStartVec[ti + 1]) * e;
|
|
377
377
|
sz = state.transStartVec[ti + 2] + (state.transTargetVec[ti + 2] - state.transStartVec[ti + 2]) * e;
|
|
@@ -434,7 +434,7 @@ export class Model {
|
|
|
434
434
|
const startMs = state.morphStartTimeMs[idx];
|
|
435
435
|
const prevDur = Math.max(1, state.morphDurationMs[idx]);
|
|
436
436
|
const t = Math.max(0, Math.min(1, (now - startMs) / prevDur));
|
|
437
|
-
const e =
|
|
437
|
+
const e = t; // Linear interpolation
|
|
438
438
|
startWeight = state.morphStartWeight[idx] + (state.morphTargetWeight[idx] - state.morphStartWeight[idx]) * e;
|
|
439
439
|
}
|
|
440
440
|
state.morphStartWeight[idx] = startWeight;
|
package/package.json
CHANGED
package/src/model.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mat4, Quat, Vec3,
|
|
1
|
+
import { Mat4, Quat, Vec3, bezierInterpolate } from "./math"
|
|
2
2
|
import { Rigidbody, Joint, Physics } from "./physics"
|
|
3
3
|
import { IKSolverSystem } from "./ik-solver"
|
|
4
4
|
import { VMDKeyFrame, VMDLoader, BoneFrame, MorphFrame } from "./vmd-loader"
|
|
@@ -358,7 +358,7 @@ export class Model {
|
|
|
358
358
|
const startMs = state.rotStartTimeMs[i]
|
|
359
359
|
const durMs = Math.max(1, state.rotDurationMs[i])
|
|
360
360
|
const t = Math.max(0, Math.min(1, (now - startMs) / durMs))
|
|
361
|
-
const e =
|
|
361
|
+
const e = t // Linear interpolation
|
|
362
362
|
|
|
363
363
|
const qi = i * 4
|
|
364
364
|
const startQuat = new Quat(
|
|
@@ -393,7 +393,7 @@ export class Model {
|
|
|
393
393
|
const startMs = state.transStartTimeMs[i]
|
|
394
394
|
const durMs = Math.max(1, state.transDurationMs[i])
|
|
395
395
|
const t = Math.max(0, Math.min(1, (now - startMs) / durMs))
|
|
396
|
-
const e =
|
|
396
|
+
const e = t // Linear interpolation
|
|
397
397
|
|
|
398
398
|
const ti = i * 3
|
|
399
399
|
translations[ti] = state.transStartVec[ti] + (state.transTargetVec[ti] - state.transStartVec[ti]) * e
|
|
@@ -416,7 +416,7 @@ export class Model {
|
|
|
416
416
|
const startMs = state.morphStartTimeMs[i]
|
|
417
417
|
const durMs = Math.max(1, state.morphDurationMs[i])
|
|
418
418
|
const t = Math.max(0, Math.min(1, (now - startMs) / durMs))
|
|
419
|
-
const e =
|
|
419
|
+
const e = t // Linear interpolation
|
|
420
420
|
|
|
421
421
|
const oldWeight = weights[i]
|
|
422
422
|
weights[i] = state.morphStartWeight[i] + (state.morphTargetWeight[i] - state.morphStartWeight[i]) * e
|
|
@@ -514,7 +514,7 @@ export class Model {
|
|
|
514
514
|
const startMs = state.rotStartTimeMs[idx]
|
|
515
515
|
const prevDur = Math.max(1, state.rotDurationMs[idx])
|
|
516
516
|
const t = Math.max(0, Math.min(1, (now - startMs) / prevDur))
|
|
517
|
-
const e =
|
|
517
|
+
const e = t // Linear interpolation
|
|
518
518
|
const startQuat = new Quat(
|
|
519
519
|
state.rotStartQuat[qi],
|
|
520
520
|
state.rotStartQuat[qi + 1],
|
|
@@ -632,7 +632,7 @@ export class Model {
|
|
|
632
632
|
const startMs = state.transStartTimeMs[idx]
|
|
633
633
|
const prevDur = Math.max(1, state.transDurationMs[idx])
|
|
634
634
|
const t = Math.max(0, Math.min(1, (now - startMs) / prevDur))
|
|
635
|
-
const e =
|
|
635
|
+
const e = t // Linear interpolation
|
|
636
636
|
sx = state.transStartVec[ti] + (state.transTargetVec[ti] - state.transStartVec[ti]) * e
|
|
637
637
|
sy = state.transStartVec[ti + 1] + (state.transTargetVec[ti + 1] - state.transStartVec[ti + 1]) * e
|
|
638
638
|
sz = state.transStartVec[ti + 2] + (state.transTargetVec[ti + 2] - state.transStartVec[ti + 2]) * e
|
|
@@ -707,7 +707,7 @@ export class Model {
|
|
|
707
707
|
const startMs = state.morphStartTimeMs[idx]
|
|
708
708
|
const prevDur = Math.max(1, state.morphDurationMs[idx])
|
|
709
709
|
const t = Math.max(0, Math.min(1, (now - startMs) / prevDur))
|
|
710
|
-
const e =
|
|
710
|
+
const e = t // Linear interpolation
|
|
711
711
|
startWeight = state.morphStartWeight[idx] + (state.morphTargetWeight[idx] - state.morphStartWeight[idx]) * e
|
|
712
712
|
}
|
|
713
713
|
|