@aura3d/animation 3.0.1 → 4.0.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.
Files changed (175) hide show
  1. package/dist/AnimationController.d.ts +8 -0
  2. package/dist/AnimationController.d.ts.map +1 -1
  3. package/dist/AnimationController.js +93 -0
  4. package/dist/AnimationController.js.map +1 -1
  5. package/dist/AnimationMixer.d.ts.map +1 -1
  6. package/dist/AnimationMixer.js +11 -0
  7. package/dist/AnimationMixer.js.map +1 -1
  8. package/dist/FootIk.d.ts +41 -0
  9. package/dist/FootIk.d.ts.map +1 -1
  10. package/dist/FootIk.js +202 -0
  11. package/dist/FootIk.js.map +1 -1
  12. package/dist/IK.d.ts +26 -0
  13. package/dist/IK.d.ts.map +1 -1
  14. package/dist/IK.js +515 -0
  15. package/dist/IK.js.map +1 -1
  16. package/dist/Keyframe.d.ts.map +1 -1
  17. package/dist/Keyframe.js +13 -12
  18. package/dist/Keyframe.js.map +1 -1
  19. package/dist/SpringBones.d.ts +80 -0
  20. package/dist/SpringBones.d.ts.map +1 -1
  21. package/dist/SpringBones.js +593 -49
  22. package/dist/SpringBones.js.map +1 -1
  23. package/dist/browser-index.d.ts +1 -1
  24. package/dist/browser-index.d.ts.map +1 -1
  25. package/dist/browser-index.js +1 -1
  26. package/dist/browser-index.js.map +1 -1
  27. package/dist/contracts/index.d.ts +2 -0
  28. package/dist/contracts/index.d.ts.map +1 -0
  29. package/dist/contracts/index.js +7 -0
  30. package/dist/contracts/index.js.map +1 -0
  31. package/dist/contracts/pose.d.ts +25 -0
  32. package/dist/contracts/pose.d.ts.map +1 -0
  33. package/dist/contracts/pose.js +41 -0
  34. package/dist/contracts/pose.js.map +1 -0
  35. package/dist/experimental/CrowdAnimation.d.ts +13 -0
  36. package/dist/experimental/CrowdAnimation.d.ts.map +1 -0
  37. package/dist/experimental/CrowdAnimation.js +14 -0
  38. package/dist/experimental/CrowdAnimation.js.map +1 -0
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/lanes/index.d.ts +17 -0
  44. package/dist/lanes/index.d.ts.map +1 -0
  45. package/dist/lanes/index.js +17 -0
  46. package/dist/lanes/index.js.map +1 -0
  47. package/dist/lanes/prd01.d.ts +6 -0
  48. package/dist/lanes/prd01.d.ts.map +1 -0
  49. package/dist/lanes/prd01.js +6 -0
  50. package/dist/lanes/prd01.js.map +1 -0
  51. package/dist/lanes/prd02.d.ts +6 -0
  52. package/dist/lanes/prd02.d.ts.map +1 -0
  53. package/dist/lanes/prd02.js +6 -0
  54. package/dist/lanes/prd02.js.map +1 -0
  55. package/dist/lanes/prd03.d.ts +6 -0
  56. package/dist/lanes/prd03.d.ts.map +1 -0
  57. package/dist/lanes/prd03.js +6 -0
  58. package/dist/lanes/prd03.js.map +1 -0
  59. package/dist/lanes/prd04.d.ts +6 -0
  60. package/dist/lanes/prd04.d.ts.map +1 -0
  61. package/dist/lanes/prd04.js +6 -0
  62. package/dist/lanes/prd04.js.map +1 -0
  63. package/dist/lanes/prd05.d.ts +6 -0
  64. package/dist/lanes/prd05.d.ts.map +1 -0
  65. package/dist/lanes/prd05.js +6 -0
  66. package/dist/lanes/prd05.js.map +1 -0
  67. package/dist/lanes/prd06.d.ts +37 -0
  68. package/dist/lanes/prd06.d.ts.map +1 -0
  69. package/dist/lanes/prd06.js +26 -0
  70. package/dist/lanes/prd06.js.map +1 -0
  71. package/dist/lanes/prd07.d.ts +6 -0
  72. package/dist/lanes/prd07.d.ts.map +1 -0
  73. package/dist/lanes/prd07.js +6 -0
  74. package/dist/lanes/prd07.js.map +1 -0
  75. package/dist/lanes/prd08.d.ts +6 -0
  76. package/dist/lanes/prd08.d.ts.map +1 -0
  77. package/dist/lanes/prd08.js +6 -0
  78. package/dist/lanes/prd08.js.map +1 -0
  79. package/dist/lanes/prd09.d.ts +6 -0
  80. package/dist/lanes/prd09.d.ts.map +1 -0
  81. package/dist/lanes/prd09.js +6 -0
  82. package/dist/lanes/prd09.js.map +1 -0
  83. package/dist/lanes/prd10.d.ts +6 -0
  84. package/dist/lanes/prd10.d.ts.map +1 -0
  85. package/dist/lanes/prd10.js +6 -0
  86. package/dist/lanes/prd10.js.map +1 -0
  87. package/dist/lanes/prd11.d.ts +6 -0
  88. package/dist/lanes/prd11.d.ts.map +1 -0
  89. package/dist/lanes/prd11.js +6 -0
  90. package/dist/lanes/prd11.js.map +1 -0
  91. package/dist/lanes/prd12.d.ts +6 -0
  92. package/dist/lanes/prd12.d.ts.map +1 -0
  93. package/dist/lanes/prd12.js +6 -0
  94. package/dist/lanes/prd12.js.map +1 -0
  95. package/dist/lanes/prd13.d.ts +6 -0
  96. package/dist/lanes/prd13.d.ts.map +1 -0
  97. package/dist/lanes/prd13.js +6 -0
  98. package/dist/lanes/prd13.js.map +1 -0
  99. package/dist/lanes/prd14.d.ts +6 -0
  100. package/dist/lanes/prd14.d.ts.map +1 -0
  101. package/dist/lanes/prd14.js +6 -0
  102. package/dist/lanes/prd14.js.map +1 -0
  103. package/dist/lanes/prd15.d.ts +6 -0
  104. package/dist/lanes/prd15.d.ts.map +1 -0
  105. package/dist/lanes/prd15.js +6 -0
  106. package/dist/lanes/prd15.js.map +1 -0
  107. package/dist/pose/BoneMask.d.ts +39 -0
  108. package/dist/pose/BoneMask.d.ts.map +1 -0
  109. package/dist/pose/BoneMask.js +160 -0
  110. package/dist/pose/BoneMask.js.map +1 -0
  111. package/dist/pose/CcdIkConstraint.d.ts +38 -0
  112. package/dist/pose/CcdIkConstraint.d.ts.map +1 -0
  113. package/dist/pose/CcdIkConstraint.js +198 -0
  114. package/dist/pose/CcdIkConstraint.js.map +1 -0
  115. package/dist/pose/CompiledClip.d.ts +48 -0
  116. package/dist/pose/CompiledClip.d.ts.map +1 -0
  117. package/dist/pose/CompiledClip.js +209 -0
  118. package/dist/pose/CompiledClip.js.map +1 -0
  119. package/dist/pose/LookAtConstraint.d.ts +48 -0
  120. package/dist/pose/LookAtConstraint.d.ts.map +1 -0
  121. package/dist/pose/LookAtConstraint.js +251 -0
  122. package/dist/pose/LookAtConstraint.js.map +1 -0
  123. package/dist/pose/MotionMetrics.d.ts +136 -0
  124. package/dist/pose/MotionMetrics.d.ts.map +1 -0
  125. package/dist/pose/MotionMetrics.js +253 -0
  126. package/dist/pose/MotionMetrics.js.map +1 -0
  127. package/dist/pose/PoseBuffer.d.ts +23 -0
  128. package/dist/pose/PoseBuffer.d.ts.map +1 -0
  129. package/dist/pose/PoseBuffer.js +48 -0
  130. package/dist/pose/PoseBuffer.js.map +1 -0
  131. package/dist/pose/PoseInertializer.d.ts +38 -0
  132. package/dist/pose/PoseInertializer.d.ts.map +1 -0
  133. package/dist/pose/PoseInertializer.js +208 -0
  134. package/dist/pose/PoseInertializer.js.map +1 -0
  135. package/dist/pose/PoseMixer.d.ts +256 -0
  136. package/dist/pose/PoseMixer.d.ts.map +1 -0
  137. package/dist/pose/PoseMixer.js +848 -0
  138. package/dist/pose/PoseMixer.js.map +1 -0
  139. package/dist/pose/Retarget.d.ts +77 -0
  140. package/dist/pose/Retarget.d.ts.map +1 -0
  141. package/dist/pose/Retarget.js +378 -0
  142. package/dist/pose/Retarget.js.map +1 -0
  143. package/dist/pose/RetargetCache.d.ts +21 -0
  144. package/dist/pose/RetargetCache.d.ts.map +1 -0
  145. package/dist/pose/RetargetCache.js +102 -0
  146. package/dist/pose/RetargetCache.js.map +1 -0
  147. package/dist/pose/RetargetWorker.d.ts +21 -0
  148. package/dist/pose/RetargetWorker.d.ts.map +1 -0
  149. package/dist/pose/RetargetWorker.js +56 -0
  150. package/dist/pose/RetargetWorker.js.map +1 -0
  151. package/dist/pose/SkeletonBinding.d.ts +55 -0
  152. package/dist/pose/SkeletonBinding.d.ts.map +1 -0
  153. package/dist/pose/SkeletonBinding.js +62 -0
  154. package/dist/pose/SkeletonBinding.js.map +1 -0
  155. package/dist/pose/blendKernels.d.ts +32 -0
  156. package/dist/pose/blendKernels.d.ts.map +1 -0
  157. package/dist/pose/blendKernels.js +101 -0
  158. package/dist/pose/blendKernels.js.map +1 -0
  159. package/dist/pose/makeClipAdditive.d.ts +22 -0
  160. package/dist/pose/makeClipAdditive.d.ts.map +1 -0
  161. package/dist/pose/makeClipAdditive.js +101 -0
  162. package/dist/pose/makeClipAdditive.js.map +1 -0
  163. package/dist/pose/poseMixerFlags.d.ts +18 -0
  164. package/dist/pose/poseMixerFlags.d.ts.map +1 -0
  165. package/dist/pose/poseMixerFlags.js +30 -0
  166. package/dist/pose/poseMixerFlags.js.map +1 -0
  167. package/dist/pose/quatFlat.d.ts +16 -0
  168. package/dist/pose/quatFlat.d.ts.map +1 -0
  169. package/dist/pose/quatFlat.js +88 -0
  170. package/dist/pose/quatFlat.js.map +1 -0
  171. package/dist/pose/retarget.worker.d.ts +25 -0
  172. package/dist/pose/retarget.worker.d.ts.map +1 -0
  173. package/dist/pose/retarget.worker.js +22 -0
  174. package/dist/pose/retarget.worker.js.map +1 -0
  175. package/package.json +14 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Keyframe.js","sourceRoot":"","sources":["../../../../packages/animation/src/Keyframe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Keyframe.js","sourceRoot":"","sources":["../../../../packages/animation/src/Keyframe.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { Quat, Vec3 } from "./Keyframe.js";
2
+ import type { PoseBuffer } from "./pose/PoseBuffer.js";
3
+ import type { SkeletonBinding } from "./pose/SkeletonBinding.js";
2
4
  export interface SpringCollider {
3
5
  readonly kind: "sphere" | "capsule";
4
6
  readonly center: Vec3;
@@ -19,6 +21,25 @@ export interface SpringChainOptions {
19
21
  readonly colliders?: readonly SpringCollider[];
20
22
  /** Integration substeps per `integrate` call (default 2) for stiffness stability. */
21
23
  readonly substeps?: number;
24
+ /**
25
+ * Velocity damping toward the parent particle, per second (default 0 — the
26
+ * legacy absolute-damping-only behaviour). The per-particle spring target
27
+ * moves with its simulated parent, which can pump energy into swing modes
28
+ * that absolute `damping` alone never dissipates (a persistent limit cycle);
29
+ * damping the parent-relative velocity drains exactly those modes while
30
+ * leaving rigid follow-through untouched. ~8 visibly settles a hair preset.
31
+ */
32
+ readonly relativeDamping?: number;
33
+ /**
34
+ * Frame the particles' inertia lives in (default `"model"`, the legacy
35
+ * behaviour). `"anchor"` simulates in the kinematic root's animated frame:
36
+ * each step first carries the particles and their velocities rigidly with
37
+ * the root's translation and rotation, so animation of the anchor bone
38
+ * itself never flings the chain — the spring reacts to gravity and to the
39
+ * animated pose *below* the anchor (the rest offsets), and settles relative
40
+ * to the animated parent. Omitted `rotation` means identity.
41
+ */
42
+ readonly space?: "model" | "anchor";
22
43
  /** Optional chain label (telemetry). */
23
44
  readonly name?: string;
24
45
  }
@@ -27,6 +48,14 @@ export interface SpringRootTransform {
27
48
  readonly position: Vec3;
28
49
  /** Optional rotation so the rest offsets follow the character's facing. */
29
50
  readonly rotation?: Quat;
51
+ /**
52
+ * Optional animated rest offsets, 3 floats per particle (index 0 ignored):
53
+ * each particle's rest position relative to its parent, already in the
54
+ * solver's frame. When set they replace the rotated bind offsets as the
55
+ * spring target and the segment length, so the chain settles onto the
56
+ * animated pose instead of the bind pose.
57
+ */
58
+ readonly offsets?: Float32Array;
30
59
  }
31
60
  export interface SpringChainTelemetry {
32
61
  readonly name: string;
@@ -47,6 +76,12 @@ export interface SpringChain {
47
76
  integrate(dt: number, rootTransform: SpringRootTransform): void;
48
77
  /** Current solved world positions (index 0 is the root). */
49
78
  positions(): readonly Vec3[];
79
+ /**
80
+ * §13 flat snapshot — writes the solved positions into `out` (3 floats per
81
+ * particle, same order as `positions()`); the per-frame bound path uses it
82
+ * instead of `positions()` so a step allocates nothing.
83
+ */
84
+ positionsFlat(out: Float32Array): Float32Array;
50
85
  /** Telemetry for tests/gates and matching the fixture oracle's invariants. */
51
86
  telemetry(): SpringChainTelemetry;
52
87
  /** Reset the chain to its rest pose at a root transform (zero velocity). */
@@ -85,4 +120,49 @@ export declare function createSpringChainFromPreset(preset: SpringBonePreset["na
85
120
  readonly substeps?: number;
86
121
  readonly gravityScale?: number;
87
122
  }): SpringChain;
123
+ /**
124
+ * Options for {@link bindSpringChainToSkeleton}.
125
+ */
126
+ export interface SpringBindOptions {
127
+ /**
128
+ * Fixed-step accumulator rate in Hz (default 60). `step(dt)` integrates the
129
+ * chain in whole `1/substepHz` increments; the remainder is carried into the
130
+ * next call so the solver never sees a variable timestep.
131
+ */
132
+ readonly substepHz?: number;
133
+ /**
134
+ * Maximum substeps consumed per `step` call (default 8). Excess accumulated
135
+ * time is dropped rather than integrated — a long hitched frame produces a
136
+ * one-frame catch-up instead of a spiral of expensive substeps.
137
+ */
138
+ readonly maxSubsteps?: number;
139
+ }
140
+ export interface BoundSpringChain {
141
+ /**
142
+ * Re-seed the chain at the pose's current bone world positions (kinematic
143
+ * root frame, rest offsets, zero velocity). Called lazily by the first
144
+ * `step`; call explicitly to re-bind after a teleport or pose reset.
145
+ */
146
+ initialize(pose: PoseBuffer): void;
147
+ /**
148
+ * Accumulate `dt`, integrate the chain in fixed `1/substepHz` increments at
149
+ * the kinematic root frame, then write local rotations into
150
+ * `pose.rotations` aiming each chain bone at its simulated child. Bones keep
151
+ * their FK positions; the tip bone (no simulated child) keeps its animated
152
+ * rotation.
153
+ */
154
+ step(pose: PoseBuffer, dt: number): void;
155
+ }
156
+ /**
157
+ * T4.1 (PRD-06 §7.1) — bind a {@link SpringChain} to a skeleton bone chain.
158
+ * `boneNames` lists the chain root first (the kinematic anchor, driven by
159
+ * animation) followed by the simulated bones. Unknown names throw — a
160
+ * misspelled chain is louder than a silently dead spring.
161
+ *
162
+ * Per `step`, the kinematic root frame is read from the pose, the fixed-step
163
+ * accumulator integrates at `substepHz`, and each bone with a simulated child
164
+ * gets a local rotation aiming its rest child-direction at the simulated
165
+ * segment direction. Positions stay FK-driven: the sim only bends the chain.
166
+ */
167
+ export declare function bindSpringChainToSkeleton(chain: SpringChain, skeleton: SkeletonBinding, boneNames: readonly string[], options?: SpringBindOptions): BoundSpringChain;
88
168
  //# sourceMappingURL=SpringBones.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpringBones.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/SpringBones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpringBones.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/SpringBones.ts"],"names":[],"mappings":"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"}