@aura3d/animation 2.0.4 → 3.0.1

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.
Files changed (43) hide show
  1. package/dist/AnimationAction.d.ts.map +1 -1
  2. package/dist/AnimationAction.js +20 -2
  3. package/dist/AnimationAction.js.map +1 -1
  4. package/dist/AnimationLayer.d.ts +1 -0
  5. package/dist/AnimationLayer.d.ts.map +1 -1
  6. package/dist/AnimationLayer.js +24 -3
  7. package/dist/AnimationLayer.js.map +1 -1
  8. package/dist/AnimationMixer.d.ts +7 -1
  9. package/dist/AnimationMixer.d.ts.map +1 -1
  10. package/dist/AnimationMixer.js +105 -34
  11. package/dist/AnimationMixer.js.map +1 -1
  12. package/dist/AnimationTrack.d.ts.map +1 -1
  13. package/dist/AnimationTrack.js +13 -0
  14. package/dist/AnimationTrack.js.map +1 -1
  15. package/dist/FootIk.d.ts +19 -0
  16. package/dist/FootIk.d.ts.map +1 -1
  17. package/dist/FootIk.js +113 -7
  18. package/dist/FootIk.js.map +1 -1
  19. package/dist/HumanoidRetargeting.d.ts +35 -2
  20. package/dist/HumanoidRetargeting.d.ts.map +1 -1
  21. package/dist/HumanoidRetargeting.js +59 -9
  22. package/dist/HumanoidRetargeting.js.map +1 -1
  23. package/dist/LocomotionEvidence.d.ts +34 -0
  24. package/dist/LocomotionEvidence.d.ts.map +1 -0
  25. package/dist/LocomotionEvidence.js +48 -0
  26. package/dist/LocomotionEvidence.js.map +1 -0
  27. package/dist/LocomotionKit.d.ts +6 -0
  28. package/dist/LocomotionKit.d.ts.map +1 -1
  29. package/dist/LocomotionKit.js +6 -0
  30. package/dist/LocomotionKit.js.map +1 -1
  31. package/dist/RootMotion.d.ts +36 -0
  32. package/dist/RootMotion.d.ts.map +1 -1
  33. package/dist/RootMotion.js +58 -0
  34. package/dist/RootMotion.js.map +1 -1
  35. package/dist/SpringBones.d.ts +28 -0
  36. package/dist/SpringBones.d.ts.map +1 -1
  37. package/dist/SpringBones.js +24 -0
  38. package/dist/SpringBones.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -0
  42. package/dist/index.js.map +1 -1
  43. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationAction.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEF,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,IAAI,SAAK;IACT,MAAM,SAAK;IACX,SAAS,SAAK;IACd,QAAQ,EAAE,QAAQ,CAAY;IAC9B,OAAO,UAAS;IAChB,MAAM,UAAS;IACf,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,IAAI,EAAE,aAAa;IAI/B,IAAI,IAAI,IAAI;IAMZ,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAOZ,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ/B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQrC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKjC,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAc9C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE;IAoDhD,QAAQ,IAAI,uBAAuB;CAYpC"}
1
+ {"version":3,"file":"AnimationAction.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEF,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,IAAI,SAAK;IACT,MAAM,SAAK;IACX,SAAS,SAAK;IACd,QAAQ,EAAE,QAAQ,CAAY;IAC9B,OAAO,UAAS;IAChB,MAAM,UAAS;IACf,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,IAAI,EAAE,aAAa;IAI/B,IAAI,IAAI,IAAI;IAWZ,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAOZ,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ/B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQrC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKjC,KAAK,IAAI,IAAI;IAMb,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWxB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAc9C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE;IA0DhD,QAAQ,IAAI,uBAAuB;CAYpC"}
@@ -16,11 +16,20 @@ export class AnimationAction {
16
16
  this.clip = clip;
17
17
  }
18
18
  play() {
19
+ if (this.clip.duration === 0) {
20
+ console.warn(`AnimationAction.play: clip "${this.clip.name}" has zero duration; update will emit no samples or events.`);
21
+ }
22
+ else if (this.clip.tracks.length === 0) {
23
+ console.warn(`AnimationAction.play: clip "${this.clip.name}" has no tracks; update will emit events but apply no values.`);
24
+ }
19
25
  this.playing = true;
20
26
  this.paused = false;
21
27
  return this;
22
28
  }
23
29
  pause() {
30
+ if (!this.playing) {
31
+ console.warn(`AnimationAction.pause: action for clip "${this.clip.name}" is not playing; nothing to pause.`);
32
+ }
24
33
  this.paused = true;
25
34
  return this;
26
35
  }
@@ -55,7 +64,10 @@ export class AnimationAction {
55
64
  }
56
65
  seek(time) {
57
66
  if (!Number.isFinite(time) || time < 0) {
58
- throw new Error("AnimationAction seek time must be finite and non-negative.");
67
+ throw new Error("AnimationAction.seek: time must be finite and non-negative.");
68
+ }
69
+ if (this.clip.duration > 0 && time > this.clip.duration) {
70
+ console.warn(`AnimationAction.seek: time ${time} exceeds clip "${this.clip.name}" duration ${this.clip.duration}; clamped to the duration.`);
59
71
  }
60
72
  this.time = this.clip.duration > 0 ? Math.min(time, this.clip.duration) : 0;
61
73
  return this;
@@ -75,7 +87,13 @@ export class AnimationAction {
75
87
  }
76
88
  update(delta) {
77
89
  if (!Number.isFinite(delta) || delta < 0) {
78
- throw new Error("AnimationAction delta must be finite and non-negative.");
90
+ throw new Error("AnimationAction.update: delta must be finite and non-negative.");
91
+ }
92
+ if (!Number.isFinite(this.weight) || this.weight < 0) {
93
+ throw new Error("AnimationAction.update: weight must be finite and non-negative; call AnimationAction.setWeight with a valid value.");
94
+ }
95
+ if (!Number.isFinite(this.timeScale) || this.timeScale < 0) {
96
+ throw new Error("AnimationAction.update: timeScale must be finite and non-negative; call AnimationAction.setTimeScale with a valid value.");
79
97
  }
80
98
  if (this.fadeDuration > 0) {
81
99
  this.fadeElapsed = Math.min(this.fadeDuration, this.fadeElapsed + delta);
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationAction.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimationAction.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationAction.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export declare class AnimationLayer {
20
20
  private readonly baseWeights;
21
21
  constructor(name: string, weightOrOptions?: number | AnimationLayerOptions);
22
22
  add(action: AnimationAction): void;
23
+ setWeight(weight: number): void;
23
24
  applyWeight(): void;
24
25
  capturesTarget(target: string): boolean;
25
26
  snapshot(): AnimationLayerSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationLayer.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAM;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;gBAE1D,IAAI,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,qBAAyB;IAmB7E,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAOlC,WAAW,IAAI,IAAI;IAMnB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOvC,QAAQ,IAAI,sBAAsB;CASnC"}
1
+ {"version":3,"file":"AnimationLayer.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAM;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;gBAE1D,IAAI,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,qBAAyB;IAmB7E,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAYlC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO/B,WAAW,IAAI,IAAI;IAanB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUvC,QAAQ,IAAI,sBAAsB;CASnC"}
@@ -24,17 +24,38 @@ export class AnimationLayer {
24
24
  }
25
25
  }
26
26
  add(action) {
27
- if (!this.actions.includes(action)) {
28
- this.actions.push(action);
29
- this.baseWeights.set(action, action.weight);
27
+ if (!action || typeof action.setWeight !== "function") {
28
+ throw new Error(`AnimationLayer.add: action must be an AnimationAction (layer "${this.name}").`);
30
29
  }
30
+ if (this.actions.includes(action)) {
31
+ console.warn(`AnimationLayer.add: action for clip "${action.clip.name}" is already on layer "${this.name}"; ignoring the duplicate.`);
32
+ return;
33
+ }
34
+ this.actions.push(action);
35
+ this.baseWeights.set(action, action.weight);
36
+ }
37
+ setWeight(weight) {
38
+ if (!Number.isFinite(weight) || weight < 0) {
39
+ throw new Error("AnimationLayer.setWeight: weight must be finite and non-negative.");
40
+ }
41
+ this.weight = weight;
31
42
  }
32
43
  applyWeight() {
44
+ if (!Number.isFinite(this.weight) || this.weight < 0) {
45
+ throw new Error(`AnimationLayer.applyWeight: layer "${this.name}" weight is invalid; call AnimationLayer.setWeight with a finite non-negative value.`);
46
+ }
47
+ if (this.actions.length === 0) {
48
+ console.warn(`AnimationLayer.applyWeight: layer "${this.name}" has no actions; nothing to weight.`);
49
+ return;
50
+ }
33
51
  for (const action of this.actions) {
34
52
  action.setWeight((this.baseWeights.get(action) ?? action.weight) * this.weight);
35
53
  }
36
54
  }
37
55
  capturesTarget(target) {
56
+ if (typeof target !== "string" || target.length === 0) {
57
+ throw new Error("AnimationLayer.capturesTarget: target must be a non-empty string.");
58
+ }
38
59
  if (this.mask.length === 0) {
39
60
  return true;
40
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationLayer.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationLayer.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,cAAc;IAChB,IAAI,CAAS;IACtB,MAAM,CAAS;IACf,QAAQ,CAAU;IACT,IAAI,CAAoB;IACxB,OAAO,GAAsB,EAAE,CAAC;IACxB,WAAW,GAAG,IAAI,OAAO,EAA2B,CAAC;IAEtE,YAAY,IAAY,EAAE,kBAAkD,CAAC;QAC3E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,OAAO,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACpG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,MAAuB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,WAAW;QACT,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACxD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"AnimationLayer.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationLayer.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,cAAc;IAChB,IAAI,CAAS;IACtB,MAAM,CAAS;IACf,QAAQ,CAAU;IACT,IAAI,CAAoB;IACxB,OAAO,GAAsB,EAAE,CAAC;IACxB,WAAW,GAAG,IAAI,OAAO,EAA2B,CAAC;IAEtE,YAAY,IAAY,EAAE,kBAAkD,CAAC;QAC3E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,OAAO,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACpG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,MAAuB;QACzB,IAAI,CAAC,MAAM,IAAI,OAAQ,MAA0B,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,wCAAwC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAA0B,IAAI,CAAC,IAAI,4BAA4B,CAAC,CAAC;YACtI,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,IAAI,sFAAsF,CAAC,CAAC;QACzJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,IAAI,sCAAsC,CAAC,CAAC;YACpG,OAAO;QACT,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,QAAQ;QACN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACxD,CAAC;IACJ,CAAC;CACF"}
@@ -7,12 +7,16 @@ import { type RootMotionSample } from "./RootMotion.js";
7
7
  export type AnimationTarget = {
8
8
  setAnimationValue?: (target: string, value: AnimationValue) => void;
9
9
  applyRootMotion?: (sample: RootMotionSample) => void;
10
+ /** Authoritative movement sink. When supplied, the mixer never also writes position. */
11
+ consumeRootMotion?: (sample: RootMotionSample) => void;
10
12
  position?: [number, number, number];
11
13
  };
12
14
  export type AnimationMixerOptions = {
13
15
  readonly applyRootMotion?: boolean;
14
16
  readonly rootMotionTrack?: string;
15
17
  readonly rootMotionScale?: number;
18
+ /** Remove extracted displacement from the sampled local root pose. Opt in for actor locomotion. */
19
+ readonly consumeRootMotionTrack?: boolean;
16
20
  };
17
21
  export type AnimationMixerSnapshot = {
18
22
  readonly timeScale: number;
@@ -36,11 +40,13 @@ export declare class AnimationMixer {
36
40
  private applyErrors;
37
41
  private readonly eventListeners;
38
42
  private disposed;
43
+ private warnedEmptyUpdate;
39
44
  private inertialTransition;
40
45
  constructor(target?: AnimationTarget, options?: AnimationMixerOptions);
41
46
  play(clip: AnimationClip): AnimationAction;
42
47
  addAction(action: AnimationAction): void;
43
48
  addLayer(layer: AnimationLayer): void;
49
+ setTimeScale(timeScale: number): void;
44
50
  stopAll(): void;
45
51
  crossFade(from: AnimationAction, to: AnimationAction, duration: number): void;
46
52
  /**
@@ -57,8 +63,8 @@ export declare class AnimationMixer {
57
63
  snapshot(): AnimationMixerSnapshot;
58
64
  dispose(): void;
59
65
  private assertAlive;
66
+ private assertCrossFadePair;
60
67
  private advanceInertialTransition;
61
- private applyActionRootMotion;
62
68
  private layersForAction;
63
69
  }
64
70
  //# sourceMappingURL=AnimationMixer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationMixer.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnG,OAAO,EAAsC,KAAK,gBAAgB,EAAyB,MAAM,iBAAiB,CAAC;AAEnH,MAAM,MAAM,eAAe,GAAG;IAC5B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACpE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAMF,qBAAa,cAAc;IAWa,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV9D,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;IAC7C,SAAS,SAAK;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8C;IAC7E,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,kBAAkB,CAAgG;gBAE9G,MAAM,CAAC,EAAE,eAAe,EAAmB,OAAO,GAAE,qBAA0B;IAI1F,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe;IAO1C,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAOxC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAOrC,OAAO,IAAI,IAAI;IAOf,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO7E;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,EAAE,QAAQ,SAAoC,GAAG,IAAI;IASjH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE;IAiDhD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKpD,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAM9D,QAAQ,IAAI,sBAAsB;IAelC,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,eAAe;CAOxB"}
1
+ {"version":3,"file":"AnimationMixer.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export class AnimationMixer {
12
12
  applyErrors = [];
13
13
  eventListeners = new Set();
14
14
  disposed = false;
15
+ warnedEmptyUpdate = false;
15
16
  inertialTransition;
16
17
  constructor(target, options = {}) {
17
18
  this.options = options;
@@ -21,28 +22,58 @@ export class AnimationMixer {
21
22
  this.assertAlive();
22
23
  const action = new AnimationAction(clip).play();
23
24
  this.actions.push(action);
25
+ this.warnedEmptyUpdate = false;
24
26
  return action;
25
27
  }
26
28
  addAction(action) {
27
29
  this.assertAlive();
28
- if (!this.actions.includes(action)) {
29
- this.actions.push(action);
30
+ if (!(action instanceof AnimationAction)) {
31
+ throw new Error("AnimationMixer.addAction: action must be an AnimationAction.");
30
32
  }
33
+ if (this.actions.includes(action)) {
34
+ console.warn(`AnimationMixer.addAction: action for clip "${action.clip.name}" is already registered; ignoring the duplicate.`);
35
+ return;
36
+ }
37
+ this.actions.push(action);
38
+ this.warnedEmptyUpdate = false;
31
39
  }
32
40
  addLayer(layer) {
33
41
  this.assertAlive();
34
- if (!this.layers.includes(layer)) {
35
- this.layers.push(layer);
42
+ if (!layer || typeof layer.name !== "string") {
43
+ throw new Error("AnimationMixer.addLayer: layer must be an AnimationLayer.");
44
+ }
45
+ if (this.layers.includes(layer)) {
46
+ console.warn(`AnimationMixer.addLayer: layer "${layer.name}" is already registered; ignoring the duplicate.`);
47
+ return;
36
48
  }
49
+ this.layers.push(layer);
50
+ }
51
+ setTimeScale(timeScale) {
52
+ this.assertAlive();
53
+ if (!Number.isFinite(timeScale) || timeScale < 0) {
54
+ throw new Error("AnimationMixer.setTimeScale: timeScale must be finite and non-negative.");
55
+ }
56
+ this.timeScale = timeScale;
37
57
  }
38
58
  stopAll() {
39
59
  this.assertAlive();
60
+ if (this.actions.length === 0) {
61
+ console.warn("AnimationMixer.stopAll: no actions are registered; nothing to stop.");
62
+ return;
63
+ }
40
64
  for (const action of this.actions) {
41
65
  action.stop();
42
66
  }
43
67
  }
44
68
  crossFade(from, to, duration) {
45
69
  this.assertAlive();
70
+ this.assertCrossFadePair("AnimationMixer.crossFade", from, to);
71
+ if (!Number.isFinite(duration) || duration < 0) {
72
+ throw new Error("AnimationMixer.crossFade: duration must be finite and non-negative.");
73
+ }
74
+ if (!this.actions.includes(from)) {
75
+ console.warn(`AnimationMixer.crossFade: "from" action (clip "${from.clip.name}") is not registered on this mixer; its fade-out will not advance.`);
76
+ }
46
77
  from.fadeTo(0, duration);
47
78
  to.play().fadeTo(1, duration);
48
79
  this.addAction(to);
@@ -56,6 +87,13 @@ export class AnimationMixer {
56
87
  */
57
88
  inertialCrossFade(from, to, halfLife = DEFAULT_INERTIALIZATION_HALF_LIFE) {
58
89
  this.assertAlive();
90
+ this.assertCrossFadePair("AnimationMixer.inertialCrossFade", from, to);
91
+ if (!Number.isFinite(halfLife)) {
92
+ throw new Error("AnimationMixer.inertialCrossFade: halfLife must be finite.");
93
+ }
94
+ if (!this.actions.includes(from)) {
95
+ console.warn(`AnimationMixer.inertialCrossFade: "from" action (clip "${from.clip.name}") is not registered on this mixer; its fade-out will not advance.`);
96
+ }
59
97
  to.play();
60
98
  from.weight = 1;
61
99
  to.weight = 0;
@@ -65,13 +103,31 @@ export class AnimationMixer {
65
103
  update(delta) {
66
104
  this.assertAlive();
67
105
  if (!Number.isFinite(delta) || delta < 0) {
68
- throw new Error("AnimationMixer delta must be finite and non-negative.");
106
+ throw new Error("AnimationMixer.update: delta must be finite and non-negative.");
107
+ }
108
+ if (!Number.isFinite(this.timeScale) || this.timeScale < 0) {
109
+ throw new Error("AnimationMixer.update: timeScale must be finite and non-negative; call AnimationMixer.setTimeScale with a valid value.");
110
+ }
111
+ for (const layer of this.layers) {
112
+ if (!Number.isFinite(layer.weight) || layer.weight < 0) {
113
+ throw new Error(`AnimationMixer.update: layer "${layer.name}" weight is invalid; call AnimationLayer.setWeight with a finite non-negative value.`);
114
+ }
115
+ }
116
+ if (this.actions.length === 0) {
117
+ if (!this.warnedEmptyUpdate) {
118
+ this.warnedEmptyUpdate = true;
119
+ console.warn("AnimationMixer.update: no actions are registered; returning no events and applying no values.");
120
+ }
121
+ return [];
69
122
  }
70
123
  this.advanceInertialTransition(delta * this.timeScale);
71
124
  const events = [];
72
125
  const accumulators = new Map();
126
+ const motion = new Map();
127
+ let motionSample;
73
128
  for (const action of this.actions) {
74
129
  const previousTime = action.time;
130
+ const advancedTime = action.playing && !action.paused ? delta * this.timeScale * action.timeScale : 0;
75
131
  const actionEvents = action.update(delta * this.timeScale);
76
132
  if (actionEvents.length > 0) {
77
133
  events.push(...actionEvents);
@@ -79,9 +135,25 @@ export class AnimationMixer {
79
135
  if (!action.playing && action.weight <= 0) {
80
136
  continue;
81
137
  }
82
- this.applyActionRootMotion(action, previousTime);
138
+ const rootMotionTarget = this.options.rootMotionTrack ?? "root.position";
139
+ if (this.options.applyRootMotion && action.weight > 0 && action.clip.tracks.some(track => track.target === rootMotionTarget)) {
140
+ const sample = extractRootMotion(action.clip, {
141
+ fromTime: previousTime,
142
+ toTime: action.loopMode === "repeat" ? previousTime + advancedTime : action.time,
143
+ loop: action.loopMode === "repeat",
144
+ target: rootMotionTarget
145
+ });
146
+ motionSample = sample;
147
+ for (const layer of this.layersForAction(action)) {
148
+ if (layer.capturesTarget(rootMotionTarget)) {
149
+ blendInto(motion, rootMotionTarget, "vector3", sample.delta, action.weight * layer.weight, layer.additive);
150
+ }
151
+ }
152
+ }
83
153
  for (const track of action.clip.tracks) {
84
- const sample = track.sample(action.time);
154
+ const sample = this.options.applyRootMotion && this.options.consumeRootMotionTrack && track.target === rootMotionTarget
155
+ ? track.sample(0)
156
+ : track.sample(action.time);
85
157
  for (const layer of this.layersForAction(action)) {
86
158
  if (layer.capturesTarget(track.target)) {
87
159
  blendInto(accumulators, track.target, track.valueType, sample, action.weight * layer.weight, layer.additive);
@@ -89,6 +161,21 @@ export class AnimationMixer {
89
161
  }
90
162
  }
91
163
  }
164
+ if (motionSample) {
165
+ const accumulator = motion.get(motionSample.target);
166
+ if (accumulator) {
167
+ const delta = finalizeTargetBlend(accumulator);
168
+ const scale = this.options.rootMotionScale ?? 1;
169
+ if (!Number.isFinite(scale))
170
+ throw new Error("Root motion scale must be finite.");
171
+ const sample = { ...motionSample, delta: delta.map(value => value * scale) };
172
+ this.target?.applyRootMotion?.(sample);
173
+ if (this.target?.consumeRootMotion)
174
+ this.target.consumeRootMotion(sample);
175
+ else if (this.target?.position)
176
+ applyRootMotion(this.target, sample);
177
+ }
178
+ }
92
179
  this.values.clear();
93
180
  this.applyErrors = [];
94
181
  for (const [target, accumulator] of accumulators) {
@@ -117,6 +204,9 @@ export class AnimationMixer {
117
204
  }
118
205
  onEvent(listener) {
119
206
  this.assertAlive();
207
+ if (typeof listener !== "function") {
208
+ throw new Error("AnimationMixer.onEvent: listener must be a function.");
209
+ }
120
210
  this.eventListeners.add(listener);
121
211
  return () => this.eventListeners.delete(listener);
122
212
  }
@@ -148,6 +238,14 @@ export class AnimationMixer {
148
238
  throw new Error("AnimationMixer has been disposed.");
149
239
  }
150
240
  }
241
+ assertCrossFadePair(api, from, to) {
242
+ if (!(from instanceof AnimationAction) || !(to instanceof AnimationAction)) {
243
+ throw new Error(`${api}: "from" and "to" must both be AnimationAction instances.`);
244
+ }
245
+ if (from === to) {
246
+ throw new Error(`${api}: "from" and "to" must be different actions; crossfading an action into itself is a no-op.`);
247
+ }
248
+ }
151
249
  advanceInertialTransition(scaledDelta) {
152
250
  const transition = this.inertialTransition;
153
251
  if (!transition)
@@ -164,33 +262,6 @@ export class AnimationMixer {
164
262
  this.inertialTransition = undefined;
165
263
  }
166
264
  }
167
- applyActionRootMotion(action, previousTime) {
168
- if (!this.options.applyRootMotion || action.weight <= 0)
169
- return;
170
- const rootMotionTarget = this.options.rootMotionTrack ?? "root.position";
171
- if (!action.clip.tracks.some((track) => track.target === rootMotionTarget))
172
- return;
173
- const sample = extractRootMotion(action.clip, {
174
- fromTime: previousTime,
175
- toTime: action.time,
176
- loop: action.loopMode === "repeat",
177
- target: rootMotionTarget
178
- });
179
- const scaledSample = action.weight === 1
180
- ? sample
181
- : {
182
- ...sample,
183
- delta: [
184
- sample.delta[0] * action.weight,
185
- sample.delta[1] * action.weight,
186
- sample.delta[2] * action.weight
187
- ]
188
- };
189
- this.target?.applyRootMotion?.(scaledSample);
190
- if (this.target?.position) {
191
- applyRootMotion(this.target, scaledSample, this.options.rootMotionScale ?? 1);
192
- }
193
- }
194
265
  layersForAction(action) {
195
266
  if (this.layers.length === 0) {
196
267
  return UNMASKED_LAYERS;
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationMixer.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimationMixer.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationMixer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationTrack.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmH,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE7M,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzG,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;CACtD,CAAC;AAEF,qBAAa,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAWnD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;IA4BvB,MAAM,IAAI,wBAAwB,CAAC,CAAC,CAAC;IAQrC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;CAOvH"}
1
+ {"version":3,"file":"AnimationTrack.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmH,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE7M,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzG,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;CACtD,CAAC;AAEF,qBAAa,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAcnD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;IA4BvB,MAAM,IAAI,wBAAwB,CAAC,CAAC,CAAC;IAQrC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;CAOvH"}
@@ -8,6 +8,9 @@ export class AnimationTrack {
8
8
  if (descriptor.target.trim().length === 0) {
9
9
  throw new Error("AnimationTrack target cannot be empty.");
10
10
  }
11
+ if (!ANIMATION_TRACK_VALUE_TYPES.has(descriptor.valueType)) {
12
+ throw new Error(`AnimationTrack: unknown valueType "${String(descriptor.valueType)}" for target "${descriptor.target}".`);
13
+ }
11
14
  validateKeyframes(descriptor.keyframes);
12
15
  this.target = descriptor.target;
13
16
  this.valueType = descriptor.valueType;
@@ -113,8 +116,18 @@ function interpolate(type, a, b, t) {
113
116
  case "boolean":
114
117
  case "string":
115
118
  return t < 1 ? a : b;
119
+ default:
120
+ throw new Error(`AnimationTrack.sample: cannot interpolate unknown value type "${String(type)}".`);
116
121
  }
117
122
  }
123
+ const ANIMATION_TRACK_VALUE_TYPES = new Set([
124
+ "scalar",
125
+ "vector3",
126
+ "quaternion",
127
+ "number-array",
128
+ "boolean",
129
+ "string"
130
+ ]);
118
131
  function interpolateNumberArray(a, b, t) {
119
132
  if (a.length !== b.length) {
120
133
  throw new Error("number-array animation keyframes require matching lengths.");
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationTrack.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationTrack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimationTrack.js","sourceRoot":"","sources":["../../../../packages/animation/src/AnimationTrack.ts"],"names":[],"mappings":"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"}
package/dist/FootIk.d.ts CHANGED
@@ -27,6 +27,16 @@ export declare function createHeightFieldGround(heightAt: (x: number, z: number)
27
27
  height: number;
28
28
  normal?: Vec3;
29
29
  }): GroundRaycaster;
30
+ /**
31
+ * Moving-platform ground adapter (E2): wraps any base `GroundRaycaster` (terrain heightfield,
32
+ * physics raycaster, …) and adds the platform's current vertical offset under feet standing
33
+ * on it. `platformHeightAt` returns the platform top height at (x, z), or `undefined` when no
34
+ * platform is under the query point — in which case the base ground answer is used unchanged.
35
+ * The platform offset is also reported so callers can carry a locked foot with the platform.
36
+ */
37
+ export declare function createMovingPlatformGround(base: GroundRaycaster, platformHeightAt: (x: number, z: number) => number | undefined): GroundRaycaster & {
38
+ platformOffsetAt(x: number, z: number): number | undefined;
39
+ };
30
40
  /** One leg: the hip (root), knee (mid), ankle (end), and an optional pole/knee hint. */
31
41
  export interface FootLegInput {
32
42
  readonly side: "left" | "right";
@@ -34,6 +44,15 @@ export interface FootLegInput {
34
44
  readonly knee: Vec3;
35
45
  readonly ankle: Vec3;
36
46
  readonly pole?: Vec3;
47
+ /** Measured joint-to-sole offset for this leg; overrides the rig fallback. */
48
+ readonly ankleHeight?: number;
49
+ /** Authored contact phase. False always releases; true still requires a ground hit. */
50
+ readonly contact?: boolean;
51
+ /** Stable support identity plus its displacement since the preceding solve, in world units. */
52
+ readonly support?: {
53
+ readonly id: string;
54
+ readonly delta: Vec3;
55
+ };
37
56
  }
38
57
  export interface FootIkRigOptions {
39
58
  readonly legs: readonly FootLegInput[];