@aura3d/animation 4.7.13 → 5.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.
- package/dist/AnimationAction.d.ts +80 -1
- package/dist/AnimationAction.d.ts.map +1 -1
- package/dist/AnimationAction.js +450 -80
- package/dist/AnimationAction.js.map +1 -1
- package/dist/AnimationClip.d.ts.map +1 -1
- package/dist/AnimationClip.js.map +1 -1
- package/dist/AnimationClipEvents.d.ts.map +1 -1
- package/dist/AnimationClipEvents.js.map +1 -1
- package/dist/AnimationClipRegistry.d.ts.map +1 -1
- package/dist/AnimationClipRegistry.js.map +1 -1
- package/dist/AnimationController.d.ts.map +1 -1
- package/dist/AnimationController.js.map +1 -1
- package/dist/AnimationEvents.d.ts +23 -0
- package/dist/AnimationEvents.d.ts.map +1 -1
- package/dist/AnimationEvents.js +145 -36
- package/dist/AnimationEvents.js.map +1 -1
- package/dist/AnimationLayer.d.ts.map +1 -1
- package/dist/AnimationLayer.js.map +1 -1
- package/dist/AnimationMixer.d.ts +58 -3
- package/dist/AnimationMixer.d.ts.map +1 -1
- package/dist/AnimationMixer.js +366 -12
- package/dist/AnimationMixer.js.map +1 -1
- package/dist/AnimationObjectGroup.d.ts +36 -12
- package/dist/AnimationObjectGroup.d.ts.map +1 -1
- package/dist/AnimationObjectGroup.js +219 -208
- package/dist/AnimationObjectGroup.js.map +1 -1
- package/dist/AnimationStateGraph.d.ts.map +1 -1
- package/dist/AnimationStateGraph.js.map +1 -1
- package/dist/AnimationStateMachine.d.ts.map +1 -1
- package/dist/AnimationStateMachine.js.map +1 -1
- package/dist/AnimationTrack.d.ts +7 -1
- package/dist/AnimationTrack.d.ts.map +1 -1
- package/dist/AnimationTrack.js +87 -10
- package/dist/AnimationTrack.js.map +1 -1
- package/dist/AnimationUtils.d.ts +16 -14
- package/dist/AnimationUtils.d.ts.map +1 -1
- package/dist/AnimationUtils.js +148 -109
- package/dist/AnimationUtils.js.map +1 -1
- package/dist/BlendTree.d.ts.map +1 -1
- package/dist/BlendTree.js.map +1 -1
- package/dist/Bone.d.ts.map +1 -1
- package/dist/Bone.js.map +1 -1
- package/dist/ECSAnimationBridge.d.ts.map +1 -1
- package/dist/ECSAnimationBridge.js.map +1 -1
- package/dist/FighterAnimationAdapter.d.ts.map +1 -1
- package/dist/FighterAnimationAdapter.js.map +1 -1
- package/dist/FootIk.d.ts.map +1 -1
- package/dist/FootIk.js.map +1 -1
- package/dist/HumanoidBoneInference.d.ts.map +1 -1
- package/dist/HumanoidBoneInference.js.map +1 -1
- package/dist/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/HumanoidRetargeting.js.map +1 -1
- package/dist/IK.d.ts.map +1 -1
- package/dist/IK.js.map +1 -1
- package/dist/Inertialization.d.ts.map +1 -1
- package/dist/Inertialization.js.map +1 -1
- package/dist/Keyframe.d.ts +15 -1
- package/dist/Keyframe.d.ts.map +1 -1
- package/dist/Keyframe.js +34 -1
- package/dist/Keyframe.js.map +1 -1
- package/dist/LocomotionController.d.ts.map +1 -1
- package/dist/LocomotionController.js.map +1 -1
- package/dist/LocomotionEvidence.d.ts.map +1 -1
- package/dist/LocomotionEvidence.js.map +1 -1
- package/dist/LocomotionKit.d.ts.map +1 -1
- package/dist/LocomotionKit.js.map +1 -1
- package/dist/MotionQuality.d.ts.map +1 -1
- package/dist/MotionQuality.js.map +1 -1
- package/dist/PropertyBinding.d.ts +42 -22
- package/dist/PropertyBinding.d.ts.map +1 -1
- package/dist/PropertyBinding.js +390 -293
- package/dist/PropertyBinding.js.map +1 -1
- package/dist/RigQuality.d.ts.map +1 -1
- package/dist/RigQuality.js.map +1 -1
- package/dist/RootMotion.d.ts.map +1 -1
- package/dist/RootMotion.js.map +1 -1
- package/dist/SceneAnimationBridge.d.ts +7 -0
- package/dist/SceneAnimationBridge.d.ts.map +1 -1
- package/dist/SceneAnimationBridge.js +48 -3
- package/dist/SceneAnimationBridge.js.map +1 -1
- package/dist/Skeleton.d.ts.map +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Skinning.d.ts.map +1 -1
- package/dist/Skinning.js.map +1 -1
- package/dist/SpringBones.d.ts.map +1 -1
- package/dist/SpringBones.js.map +1 -1
- package/dist/browser-index.d.ts +1 -1
- package/dist/browser-index.d.ts.map +1 -1
- package/dist/browser-index.js +1 -1
- package/dist/browser-index.js.map +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/pose.d.ts.map +1 -1
- package/dist/contracts/pose.js.map +1 -1
- package/dist/experimental/CrowdAnimation.d.ts.map +1 -1
- package/dist/experimental/CrowdAnimation.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lanes/index.d.ts.map +1 -1
- package/dist/lanes/index.js.map +1 -1
- package/dist/lanes/prd01.d.ts.map +1 -1
- package/dist/lanes/prd01.js.map +1 -1
- package/dist/lanes/prd02.d.ts.map +1 -1
- package/dist/lanes/prd02.js.map +1 -1
- package/dist/lanes/prd03.d.ts.map +1 -1
- package/dist/lanes/prd03.js.map +1 -1
- package/dist/lanes/prd04.d.ts.map +1 -1
- package/dist/lanes/prd04.js.map +1 -1
- package/dist/lanes/prd05.d.ts.map +1 -1
- package/dist/lanes/prd05.js.map +1 -1
- package/dist/lanes/prd06.d.ts.map +1 -1
- package/dist/lanes/prd06.js.map +1 -1
- package/dist/lanes/prd07.d.ts.map +1 -1
- package/dist/lanes/prd07.js.map +1 -1
- package/dist/lanes/prd08.d.ts.map +1 -1
- package/dist/lanes/prd08.js.map +1 -1
- package/dist/lanes/prd09.d.ts.map +1 -1
- package/dist/lanes/prd09.js.map +1 -1
- package/dist/lanes/prd10.d.ts.map +1 -1
- package/dist/lanes/prd10.js.map +1 -1
- package/dist/lanes/prd11.d.ts.map +1 -1
- package/dist/lanes/prd11.js.map +1 -1
- package/dist/lanes/prd12.d.ts.map +1 -1
- package/dist/lanes/prd12.js.map +1 -1
- package/dist/lanes/prd13.d.ts.map +1 -1
- package/dist/lanes/prd13.js.map +1 -1
- package/dist/lanes/prd14.d.ts.map +1 -1
- package/dist/lanes/prd14.js.map +1 -1
- package/dist/lanes/prd15.d.ts.map +1 -1
- package/dist/lanes/prd15.js.map +1 -1
- package/dist/library/performanceStateGraph.d.ts.map +1 -1
- package/dist/library/performanceStateGraph.js.map +1 -1
- package/dist/library/standardHumanoidClips.d.ts.map +1 -1
- package/dist/library/standardHumanoidClips.js.map +1 -1
- package/dist/pose/BoneMask.d.ts.map +1 -1
- package/dist/pose/BoneMask.js.map +1 -1
- package/dist/pose/CcdIkConstraint.d.ts.map +1 -1
- package/dist/pose/CcdIkConstraint.js.map +1 -1
- package/dist/pose/CompiledClip.d.ts +15 -8
- package/dist/pose/CompiledClip.d.ts.map +1 -1
- package/dist/pose/CompiledClip.js +82 -50
- package/dist/pose/CompiledClip.js.map +1 -1
- package/dist/pose/LookAtConstraint.d.ts.map +1 -1
- package/dist/pose/LookAtConstraint.js.map +1 -1
- package/dist/pose/MotionMetrics.d.ts.map +1 -1
- package/dist/pose/MotionMetrics.js.map +1 -1
- package/dist/pose/PoseBuffer.d.ts.map +1 -1
- package/dist/pose/PoseBuffer.js.map +1 -1
- package/dist/pose/PoseInertializer.d.ts.map +1 -1
- package/dist/pose/PoseInertializer.js.map +1 -1
- package/dist/pose/PoseMixer.d.ts +196 -19
- package/dist/pose/PoseMixer.d.ts.map +1 -1
- package/dist/pose/PoseMixer.js +1209 -188
- package/dist/pose/PoseMixer.js.map +1 -1
- package/dist/pose/Retarget.d.ts +4 -3
- package/dist/pose/Retarget.d.ts.map +1 -1
- package/dist/pose/Retarget.js +32 -15
- package/dist/pose/Retarget.js.map +1 -1
- package/dist/pose/RetargetCache.d.ts +12 -6
- package/dist/pose/RetargetCache.d.ts.map +1 -1
- package/dist/pose/RetargetCache.js +253 -29
- package/dist/pose/RetargetCache.js.map +1 -1
- package/dist/pose/RetargetWorker.d.ts.map +1 -1
- package/dist/pose/RetargetWorker.js +5 -0
- package/dist/pose/RetargetWorker.js.map +1 -1
- package/dist/pose/SkeletonBinding.d.ts.map +1 -1
- package/dist/pose/SkeletonBinding.js.map +1 -1
- package/dist/pose/blendKernels.d.ts.map +1 -1
- package/dist/pose/blendKernels.js.map +1 -1
- package/dist/pose/makeClipAdditive.d.ts +7 -14
- package/dist/pose/makeClipAdditive.d.ts.map +1 -1
- package/dist/pose/makeClipAdditive.js +53 -85
- package/dist/pose/makeClipAdditive.js.map +1 -1
- package/dist/pose/poseMixerFlags.d.ts.map +1 -1
- package/dist/pose/poseMixerFlags.js.map +1 -1
- package/dist/pose/quatFlat.d.ts.map +1 -1
- package/dist/pose/quatFlat.js.map +1 -1
- package/dist/pose/retarget.worker.d.ts.map +1 -1
- package/dist/pose/retarget.worker.js.map +1 -1
- package/dist/threejs-compatibility/AnimationAction.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationAction.js.map +1 -1
- package/dist/threejs-compatibility/AnimationClip.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationClip.js.map +1 -1
- package/dist/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
- package/dist/threejs-compatibility/AnimationMixer.d.ts.map +1 -1
- package/dist/threejs-compatibility/AnimationMixer.js.map +1 -1
- package/dist/threejs-compatibility/MorphTargetMixer.d.ts.map +1 -1
- package/dist/threejs-compatibility/MorphTargetMixer.js.map +1 -1
- package/dist/threejs-compatibility/Skeleton.d.ts.map +1 -1
- package/dist/threejs-compatibility/Skeleton.js.map +1 -1
- package/dist/threejs-compatibility/SkinnedMesh.d.ts.map +1 -1
- package/dist/threejs-compatibility/SkinnedMesh.js.map +1 -1
- package/dist/threejs-compatibility/index.d.ts.map +1 -1
- package/dist/threejs-compatibility/index.js.map +1 -1
- package/package.json +2 -2
package/dist/AnimationMixer.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnimationAction } from "./AnimationAction.js";
|
|
2
|
+
import { AnimationLayer } from "./AnimationLayer.js";
|
|
2
3
|
import { cloneAnimationValue, normalizeQuat, slerpQuat } from "./Keyframe.js";
|
|
3
4
|
import { DEFAULT_INERTIALIZATION_HALF_LIFE, inertializedTransitionWeight } from "./Inertialization.js";
|
|
4
5
|
import { applyRootMotion, extractRootMotion } from "./RootMotion.js";
|
|
@@ -16,6 +17,7 @@ export class AnimationMixer {
|
|
|
16
17
|
playbackListeners = new Map();
|
|
17
18
|
disposed = false;
|
|
18
19
|
warnedEmptyUpdate = false;
|
|
20
|
+
updateDepth = 0;
|
|
19
21
|
inertialTransition;
|
|
20
22
|
constructor(target, options = {}) {
|
|
21
23
|
this.options = options;
|
|
@@ -79,7 +81,8 @@ export class AnimationMixer {
|
|
|
79
81
|
}
|
|
80
82
|
from.fadeTo(0, duration);
|
|
81
83
|
to.play().fadeTo(1, duration);
|
|
82
|
-
this.
|
|
84
|
+
if (!this.actions.includes(to))
|
|
85
|
+
this.addAction(to);
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
85
88
|
* Inertialized transition between two actions: instead of the linear weight ramp of
|
|
@@ -100,11 +103,21 @@ export class AnimationMixer {
|
|
|
100
103
|
to.play();
|
|
101
104
|
from.weight = 1;
|
|
102
105
|
to.weight = 0;
|
|
103
|
-
this.
|
|
106
|
+
if (!this.actions.includes(to))
|
|
107
|
+
this.addAction(to);
|
|
104
108
|
this.inertialTransition = { from, to, elapsed: 0, halfLife };
|
|
105
109
|
}
|
|
106
110
|
update(delta) {
|
|
107
111
|
this.assertAlive();
|
|
112
|
+
this.updateDepth++;
|
|
113
|
+
try {
|
|
114
|
+
return this.updateActions(delta);
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
this.updateDepth--;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
updateActions(delta) {
|
|
108
121
|
if (!Number.isFinite(delta)) {
|
|
109
122
|
throw new Error("AnimationMixer.update: delta must be finite.");
|
|
110
123
|
}
|
|
@@ -130,7 +143,7 @@ export class AnimationMixer {
|
|
|
130
143
|
let motionSample;
|
|
131
144
|
for (const action of this.actions) {
|
|
132
145
|
const previousTime = action.time;
|
|
133
|
-
const
|
|
146
|
+
const wasPlaying = action.playing;
|
|
134
147
|
const actionEvents = action.update(delta * this.timeScale);
|
|
135
148
|
if (actionEvents.length > 0) {
|
|
136
149
|
events.push(...actionEvents);
|
|
@@ -142,17 +155,29 @@ export class AnimationMixer {
|
|
|
142
155
|
if (signals.finishedDirection !== 0) {
|
|
143
156
|
this.dispatchPlaybackEvent({ type: "finished", action, direction: signals.finishedDirection });
|
|
144
157
|
}
|
|
145
|
-
if (
|
|
158
|
+
if (signals.eventOverflow > 0) {
|
|
159
|
+
this.dispatchPlaybackEvent({ type: "overflow", action, dropped: signals.eventOverflow });
|
|
160
|
+
}
|
|
161
|
+
if (!wasPlaying) {
|
|
146
162
|
continue;
|
|
147
163
|
}
|
|
148
164
|
const rootMotionTarget = this.options.rootMotionTrack ?? "root.position";
|
|
149
165
|
if (this.options.applyRootMotion && action.weight > 0 && action.clip.tracks.some(track => track.target === rootMotionTarget)) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
166
|
+
const looping = action.loopMode === "repeat" && action.clip.duration > 0;
|
|
167
|
+
const end = looping ? previousTime + action.lastPlaybackDelta : action.time;
|
|
168
|
+
const reverse = looping && end < previousTime;
|
|
169
|
+
const extracted = extractRootMotion(action.clip, {
|
|
170
|
+
fromTime: reverse ? end : previousTime,
|
|
171
|
+
toTime: reverse ? previousTime : end,
|
|
172
|
+
loop: looping,
|
|
154
173
|
target: rootMotionTarget
|
|
155
174
|
});
|
|
175
|
+
const sample = reverse ? {
|
|
176
|
+
...extracted,
|
|
177
|
+
fromTime: previousTime,
|
|
178
|
+
toTime: end,
|
|
179
|
+
delta: extracted.delta.map((value) => -value)
|
|
180
|
+
} : extracted;
|
|
156
181
|
motionSample = sample;
|
|
157
182
|
for (const layer of this.layersForAction(action)) {
|
|
158
183
|
if (layer.capturesTarget(rootMotionTarget)) {
|
|
@@ -160,6 +185,8 @@ export class AnimationMixer {
|
|
|
160
185
|
}
|
|
161
186
|
}
|
|
162
187
|
}
|
|
188
|
+
if (!action.playing)
|
|
189
|
+
continue;
|
|
163
190
|
for (const track of action.clip.tracks) {
|
|
164
191
|
const sample = this.options.applyRootMotion && this.options.consumeRootMotionTrack && track.target === rootMotionTarget
|
|
165
192
|
? track.sample(0)
|
|
@@ -228,8 +255,8 @@ export class AnimationMixer {
|
|
|
228
255
|
*/
|
|
229
256
|
addEventListener(type, listener) {
|
|
230
257
|
this.assertAlive();
|
|
231
|
-
if (type !== "finished" && type !== "loop") {
|
|
232
|
-
throw new Error(`AnimationMixer.addEventListener: unknown event type "${String(type)}"; expected "finished" or "
|
|
258
|
+
if (type !== "finished" && type !== "loop" && type !== "overflow") {
|
|
259
|
+
throw new Error(`AnimationMixer.addEventListener: unknown event type "${String(type)}"; expected "finished", "loop" or "overflow".`);
|
|
233
260
|
}
|
|
234
261
|
if (typeof listener !== "function") {
|
|
235
262
|
throw new Error(`AnimationMixer.addEventListener: listener for "${type}" must be a function.`);
|
|
@@ -264,7 +291,7 @@ export class AnimationMixer {
|
|
|
264
291
|
snapshot() {
|
|
265
292
|
const values = {};
|
|
266
293
|
for (const [target, value] of this.values) {
|
|
267
|
-
values
|
|
294
|
+
Object.defineProperty(values, target, { value: cloneAnimationValue(value), enumerable: true, writable: true, configurable: true });
|
|
268
295
|
}
|
|
269
296
|
return {
|
|
270
297
|
timeScale: this.timeScale,
|
|
@@ -275,6 +302,198 @@ export class AnimationMixer {
|
|
|
275
302
|
applyErrors: this.applyErrors.map((error) => ({ ...error }))
|
|
276
303
|
};
|
|
277
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Capture restorable mixer-owned state. Listeners are executable closures and
|
|
307
|
+
* must be unsubscribed before capture and explicitly reattached afterwards.
|
|
308
|
+
* Targets are external dependencies: pass `{ externalTarget: "rebind" }` to
|
|
309
|
+
* explicitly acknowledge that the target, its callbacks and scene/position
|
|
310
|
+
* will be restored by the adapter. Only its binding capabilities are recorded.
|
|
311
|
+
*/
|
|
312
|
+
serialize(options = {}) {
|
|
313
|
+
this.assertAlive();
|
|
314
|
+
if (this.updateDepth !== 0)
|
|
315
|
+
throw new Error("AnimationMixer.serialize: cannot capture during an update.");
|
|
316
|
+
const captureOptions = mixerRecord(options, "serialization options", ["externalTarget"], []);
|
|
317
|
+
if (captureOptions.externalTarget !== undefined && captureOptions.externalTarget !== "rebind") {
|
|
318
|
+
throw new Error("AnimationMixer.serialize: externalTarget must be 'rebind'.");
|
|
319
|
+
}
|
|
320
|
+
if (this.eventListeners.size || [...this.playbackListeners.values()].some(listeners => listeners.size > 0)) {
|
|
321
|
+
throw new Error("AnimationMixer.serialize: event callbacks/listeners cannot be serialized; unsubscribe and reattach them explicitly.");
|
|
322
|
+
}
|
|
323
|
+
if (this.target !== undefined && captureOptions.externalTarget !== "rebind") {
|
|
324
|
+
throw new Error("AnimationMixer.serialize: target and its callbacks are external; explicitly request externalTarget: 'rebind'.");
|
|
325
|
+
}
|
|
326
|
+
const layers = this.layers.map(layer => {
|
|
327
|
+
const baseWeights = mixerLayerWeights(layer);
|
|
328
|
+
return {
|
|
329
|
+
actionIndices: layer.actions.map(action => {
|
|
330
|
+
const index = this.actions.indexOf(action);
|
|
331
|
+
if (index < 0)
|
|
332
|
+
throw new Error("AnimationMixer.serialize: layer contains an unregistered action.");
|
|
333
|
+
return index;
|
|
334
|
+
}),
|
|
335
|
+
baseWeights: layer.actions.map(action => {
|
|
336
|
+
const weight = baseWeights.get(action);
|
|
337
|
+
if (weight === undefined || !Number.isFinite(weight) || weight < 0) {
|
|
338
|
+
throw new Error("AnimationMixer.serialize: layer base weight is invalid.");
|
|
339
|
+
}
|
|
340
|
+
return weight;
|
|
341
|
+
})
|
|
342
|
+
};
|
|
343
|
+
});
|
|
344
|
+
const transition = this.inertialTransition;
|
|
345
|
+
const inertialTransition = transition ? {
|
|
346
|
+
from: this.actions.indexOf(transition.from), to: this.actions.indexOf(transition.to),
|
|
347
|
+
elapsed: transition.elapsed, halfLife: transition.halfLife
|
|
348
|
+
} : null;
|
|
349
|
+
const snapshot = this.snapshot();
|
|
350
|
+
const serialized = {
|
|
351
|
+
...snapshot,
|
|
352
|
+
actions: this.actions.map(action => action.serialize()),
|
|
353
|
+
state: {
|
|
354
|
+
version: 1,
|
|
355
|
+
options: mixerOptions(this.options),
|
|
356
|
+
target: mixerTarget(this.target),
|
|
357
|
+
layers,
|
|
358
|
+
inertialTransition,
|
|
359
|
+
warnedEmptyUpdate: this.warnedEmptyUpdate
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
this.prepareRestore(serialized);
|
|
363
|
+
rejectMixerNegativeZero(serialized);
|
|
364
|
+
return serialized;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Restore into already registered actions and layers in their original order.
|
|
368
|
+
* The target, listener registrations and external scene state are not changed.
|
|
369
|
+
* Validation of every action and layer completes before anything is mutated.
|
|
370
|
+
*/
|
|
371
|
+
restore(snapshot) {
|
|
372
|
+
this.assertAlive();
|
|
373
|
+
if (this.updateDepth !== 0)
|
|
374
|
+
throw new Error("AnimationMixer.restore: cannot restore during an update.");
|
|
375
|
+
const plan = this.prepareRestore(snapshot);
|
|
376
|
+
for (let index = 0; index < this.actions.length; index++)
|
|
377
|
+
this.actions[index].restore(plan.actions[index]);
|
|
378
|
+
for (let index = 0; index < this.layers.length; index++) {
|
|
379
|
+
const layer = this.layers[index];
|
|
380
|
+
const state = plan.layers[index];
|
|
381
|
+
layer.weight = state.weight;
|
|
382
|
+
layer.additive = state.additive;
|
|
383
|
+
const baseWeights = mixerLayerWeights(layer);
|
|
384
|
+
for (let member = 0; member < state.indices.length; member++) {
|
|
385
|
+
baseWeights.set(this.actions[state.indices[member]], state.baseWeights[member]);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
this.timeScale = plan.timeScale;
|
|
389
|
+
this.values.clear();
|
|
390
|
+
for (const [target, value] of plan.values)
|
|
391
|
+
this.values.set(target, cloneAnimationValue(value));
|
|
392
|
+
this.applyErrors = plan.applyErrors.map(error => ({ ...error }));
|
|
393
|
+
this.inertialTransition = plan.transition ? {
|
|
394
|
+
from: this.actions[plan.transition.from], to: this.actions[plan.transition.to],
|
|
395
|
+
elapsed: plan.transition.elapsed, halfLife: plan.transition.halfLife
|
|
396
|
+
} : undefined;
|
|
397
|
+
this.warnedEmptyUpdate = plan.warnedEmptyUpdate;
|
|
398
|
+
return this;
|
|
399
|
+
}
|
|
400
|
+
prepareRestore(input) {
|
|
401
|
+
const keys = ["timeScale", "actionCount", "actions", "layers", "values", "applyErrors"];
|
|
402
|
+
const snapshot = mixerRecord(input, "snapshot", [...keys, "state"], keys);
|
|
403
|
+
const timeScale = mixerNumber(snapshot.timeScale, "timeScale");
|
|
404
|
+
const actionCount = mixerNumber(snapshot.actionCount, "actionCount", 0);
|
|
405
|
+
const actionInputs = mixerArray(snapshot.actions, "actions");
|
|
406
|
+
const layerInputs = mixerArray(snapshot.layers, "layers");
|
|
407
|
+
if (!Number.isSafeInteger(actionCount) || actionCount !== actionInputs.length || actionCount !== this.actions.length) {
|
|
408
|
+
throw new Error("AnimationMixer.restore: action count must match registered actions.");
|
|
409
|
+
}
|
|
410
|
+
if (layerInputs.length !== this.layers.length)
|
|
411
|
+
throw new Error("AnimationMixer.restore: layer count must match registered layers.");
|
|
412
|
+
const versioned = "state" in snapshot;
|
|
413
|
+
const actions = actionInputs.map((action, index) => {
|
|
414
|
+
if (versioned && (!action || typeof action !== "object" || !Object.prototype.hasOwnProperty.call(action, "state"))) {
|
|
415
|
+
throw new Error("AnimationMixer.restore: versioned mixer requires complete action state.");
|
|
416
|
+
}
|
|
417
|
+
// A temporary action validates and normalizes each snapshot before any
|
|
418
|
+
// registered action is changed, including legacy snapshots.
|
|
419
|
+
return new AnimationAction(this.actions[index].clip).restore(action).serialize();
|
|
420
|
+
});
|
|
421
|
+
let layerStates;
|
|
422
|
+
let transition = null;
|
|
423
|
+
let warnedEmptyUpdate = false;
|
|
424
|
+
if (versioned) {
|
|
425
|
+
const state = mixerRecord(snapshot.state, "state", ["version", "options", "target", "layers", "inertialTransition", "warnedEmptyUpdate"]);
|
|
426
|
+
if (state.version !== 1)
|
|
427
|
+
throw new Error("AnimationMixer.restore: unsupported state version.");
|
|
428
|
+
if (JSON.stringify(mixerReadOptions(state.options)) !== JSON.stringify(mixerOptions(this.options))) {
|
|
429
|
+
throw new Error("AnimationMixer.restore: mixer options do not match.");
|
|
430
|
+
}
|
|
431
|
+
if (JSON.stringify(mixerReadTarget(state.target)) !== JSON.stringify(mixerTarget(this.target))) {
|
|
432
|
+
throw new Error("AnimationMixer.restore: external target bindings do not match.");
|
|
433
|
+
}
|
|
434
|
+
layerStates = mixerArray(state.layers, "layer state");
|
|
435
|
+
if (layerStates.length !== layerInputs.length)
|
|
436
|
+
throw new Error("AnimationMixer.restore: inconsistent layer state.");
|
|
437
|
+
warnedEmptyUpdate = mixerBoolean(state.warnedEmptyUpdate, "warnedEmptyUpdate");
|
|
438
|
+
if (state.inertialTransition !== null) {
|
|
439
|
+
const record = mixerRecord(state.inertialTransition, "inertialTransition", ["from", "to", "elapsed", "halfLife"]);
|
|
440
|
+
const from = mixerIndex(record.from, actions.length, "transition from");
|
|
441
|
+
const to = mixerIndex(record.to, actions.length, "transition to");
|
|
442
|
+
if (from === to)
|
|
443
|
+
throw new Error("AnimationMixer.restore: transition actions must differ.");
|
|
444
|
+
transition = { from, to, elapsed: mixerNumber(record.elapsed, "transition elapsed", 0), halfLife: mixerNumber(record.halfLife, "transition halfLife") };
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
const layers = layerInputs.map((entry, index) => {
|
|
448
|
+
const record = mixerRecord(entry, "layer", ["name", "weight", "additive", "mask", "actions"]);
|
|
449
|
+
const layer = this.layers[index];
|
|
450
|
+
mixerLayerWeights(layer);
|
|
451
|
+
if (typeof record.name !== "string" || record.name !== layer.name)
|
|
452
|
+
throw new Error("AnimationMixer.restore: layer names do not match.");
|
|
453
|
+
const weight = mixerNumber(record.weight, "layer weight", 0);
|
|
454
|
+
const additive = mixerBoolean(record.additive, "layer additive");
|
|
455
|
+
const mask = mixerArray(record.mask, "layer mask");
|
|
456
|
+
const names = mixerArray(record.actions, "layer actions");
|
|
457
|
+
if (mask.some(value => typeof value !== "string" || value.length === 0) ||
|
|
458
|
+
mask.length !== layer.mask.length || mask.some((value, member) => value !== layer.mask[member]) ||
|
|
459
|
+
names.some(value => typeof value !== "string")) {
|
|
460
|
+
throw new Error("AnimationMixer.restore: layer mask or action names do not match.");
|
|
461
|
+
}
|
|
462
|
+
let indices;
|
|
463
|
+
let baseWeights;
|
|
464
|
+
if (layerStates) {
|
|
465
|
+
const savedLayer = mixerRecord(layerStates[index], "layer state", ["actionIndices", "baseWeights"]);
|
|
466
|
+
indices = mixerArray(savedLayer.actionIndices, "layer actionIndices").map(value => mixerIndex(value, actions.length, "layer action index"));
|
|
467
|
+
baseWeights = mixerArray(savedLayer.baseWeights, "layer baseWeights").map(value => mixerNumber(value, "layer base weight", 0));
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
// Old layer snapshots only contain names, so ambiguous names cannot be
|
|
471
|
+
// rebound safely. Their original private base weights were not saved.
|
|
472
|
+
indices = names.map(name => {
|
|
473
|
+
const matches = actions.flatMap((action, actionIndex) => action.clipName === name ? [actionIndex] : []);
|
|
474
|
+
if (matches.length !== 1)
|
|
475
|
+
throw new Error("AnimationMixer.restore: legacy layer action name is ambiguous.");
|
|
476
|
+
return matches[0];
|
|
477
|
+
});
|
|
478
|
+
baseWeights = indices.map(actionIndex => actions[actionIndex].weight);
|
|
479
|
+
}
|
|
480
|
+
if (indices.length !== names.length || baseWeights.length !== indices.length ||
|
|
481
|
+
new Set(indices).size !== indices.length || layer.actions.length !== indices.length ||
|
|
482
|
+
indices.some((actionIndex, member) => layer.actions[member] !== this.actions[actionIndex] || names[member] !== actions[actionIndex].clipName)) {
|
|
483
|
+
throw new Error("AnimationMixer.restore: layer action membership does not match.");
|
|
484
|
+
}
|
|
485
|
+
return { weight, additive, indices, baseWeights };
|
|
486
|
+
});
|
|
487
|
+
const valuesRecord = mixerRecord(snapshot.values, "values");
|
|
488
|
+
const values = Object.keys(valuesRecord).map(target => [target, mixerValue(valuesRecord[target], target)]);
|
|
489
|
+
const applyErrors = mixerArray(snapshot.applyErrors, "applyErrors").map(entry => {
|
|
490
|
+
const record = mixerRecord(entry, "apply error", ["target", "message"]);
|
|
491
|
+
if (typeof record.target !== "string" || typeof record.message !== "string")
|
|
492
|
+
throw new Error("AnimationMixer.restore: invalid apply error.");
|
|
493
|
+
return { target: record.target, message: record.message };
|
|
494
|
+
});
|
|
495
|
+
return { timeScale, actions, layers, values, applyErrors, transition, warnedEmptyUpdate };
|
|
496
|
+
}
|
|
278
497
|
dispose() {
|
|
279
498
|
this.actions.length = 0;
|
|
280
499
|
this.layers.length = 0;
|
|
@@ -302,7 +521,7 @@ export class AnimationMixer {
|
|
|
302
521
|
const transition = this.inertialTransition;
|
|
303
522
|
if (!transition)
|
|
304
523
|
return;
|
|
305
|
-
transition.elapsed += scaledDelta;
|
|
524
|
+
transition.elapsed += Math.abs(scaledDelta);
|
|
306
525
|
const fromWeight = inertializedTransitionWeight(transition.elapsed, transition.halfLife);
|
|
307
526
|
transition.from.weight = fromWeight;
|
|
308
527
|
transition.to.weight = 1 - fromWeight;
|
|
@@ -322,6 +541,141 @@ export class AnimationMixer {
|
|
|
322
541
|
return owningLayers.length > 0 ? owningLayers : UNMASKED_LAYERS;
|
|
323
542
|
}
|
|
324
543
|
}
|
|
544
|
+
function rejectMixerNegativeZero(value) {
|
|
545
|
+
if (typeof value === "number" && Object.is(value, -0)) {
|
|
546
|
+
throw new Error("AnimationMixer.serialize: negative zero cannot round-trip through JSON.");
|
|
547
|
+
}
|
|
548
|
+
if (value && typeof value === "object") {
|
|
549
|
+
for (const nested of Object.values(value))
|
|
550
|
+
rejectMixerNegativeZero(nested);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
function mixerRecord(value, label, allowed, required = allowed ?? []) {
|
|
554
|
+
if (!value || typeof value !== "object" || Array.isArray(value) ||
|
|
555
|
+
(Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null)) {
|
|
556
|
+
throw new Error(`AnimationMixer.restore: ${label} must be a plain object.`);
|
|
557
|
+
}
|
|
558
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
559
|
+
if (Object.getOwnPropertySymbols(value).length || Object.keys(descriptors).some(key => (allowed !== undefined && !allowed.includes(key)) || !("value" in descriptors[key]) || !descriptors[key].enumerable)) {
|
|
560
|
+
throw new Error(`AnimationMixer.restore: ${label} contains unsupported fields or callbacks.`);
|
|
561
|
+
}
|
|
562
|
+
if (required.some(key => !Object.prototype.hasOwnProperty.call(descriptors, key))) {
|
|
563
|
+
throw new Error(`AnimationMixer.restore: ${label} is missing required fields.`);
|
|
564
|
+
}
|
|
565
|
+
return value;
|
|
566
|
+
}
|
|
567
|
+
function mixerArray(value, label) {
|
|
568
|
+
if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype || Object.getOwnPropertySymbols(value).length) {
|
|
569
|
+
throw new Error(`AnimationMixer.restore: ${label} must be an array.`);
|
|
570
|
+
}
|
|
571
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
572
|
+
const keys = Object.keys(descriptors);
|
|
573
|
+
if (keys.length !== value.length + 1 || keys.some(key => key !== "length" && (!/^(0|[1-9]\d*)$/.test(key) || Number(key) >= value.length))) {
|
|
574
|
+
throw new Error(`AnimationMixer.restore: ${label} contains invalid array entries.`);
|
|
575
|
+
}
|
|
576
|
+
for (let index = 0; index < value.length; index++) {
|
|
577
|
+
const item = descriptors[String(index)];
|
|
578
|
+
if (!item || !("value" in item) || !item.enumerable)
|
|
579
|
+
throw new Error(`AnimationMixer.restore: ${label} contains invalid array entries.`);
|
|
580
|
+
}
|
|
581
|
+
return value;
|
|
582
|
+
}
|
|
583
|
+
function mixerNumber(value, label, minimum = -Infinity) {
|
|
584
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < minimum)
|
|
585
|
+
throw new Error(`AnimationMixer.restore: ${label} must be a finite number.`);
|
|
586
|
+
return value;
|
|
587
|
+
}
|
|
588
|
+
function mixerBoolean(value, label) {
|
|
589
|
+
if (typeof value !== "boolean")
|
|
590
|
+
throw new Error(`AnimationMixer.restore: ${label} must be boolean.`);
|
|
591
|
+
return value;
|
|
592
|
+
}
|
|
593
|
+
function mixerIndex(value, length, label) {
|
|
594
|
+
const index = mixerNumber(value, label, 0);
|
|
595
|
+
if (!Number.isSafeInteger(index) || index >= length)
|
|
596
|
+
throw new Error(`AnimationMixer.restore: ${label} is out of range.`);
|
|
597
|
+
return index;
|
|
598
|
+
}
|
|
599
|
+
function mixerValue(value, target) {
|
|
600
|
+
if (typeof value === "string" || typeof value === "boolean")
|
|
601
|
+
return value;
|
|
602
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
603
|
+
return value;
|
|
604
|
+
if (Array.isArray(value))
|
|
605
|
+
return mixerArray(value, `value for ${target}`).map(component => mixerNumber(component, `value for ${target}`));
|
|
606
|
+
throw new Error(`AnimationMixer.restore: value for ${target} is not serializable.`);
|
|
607
|
+
}
|
|
608
|
+
function mixerLayerWeights(layer) {
|
|
609
|
+
// AnimationLayer's applyWeight() depends on its original captured weights.
|
|
610
|
+
// Keep the layer API unchanged, but explicitly capture that package-internal
|
|
611
|
+
// state instead of silently substituting the current faded action weights.
|
|
612
|
+
const descriptors = Object.getOwnPropertyDescriptors(layer);
|
|
613
|
+
const allowed = ["name", "weight", "additive", "mask", "actions", "baseWeights"];
|
|
614
|
+
if (Object.getPrototypeOf(layer) !== AnimationLayer.prototype || Object.getOwnPropertySymbols(layer).length ||
|
|
615
|
+
Object.keys(descriptors).some(key => !allowed.includes(key) || !("value" in descriptors[key]) || !descriptors[key].enumerable)) {
|
|
616
|
+
throw new Error("AnimationMixer.serialize: custom layer behavior cannot be serialized.");
|
|
617
|
+
}
|
|
618
|
+
const weights = layer.baseWeights;
|
|
619
|
+
if (!(weights instanceof WeakMap))
|
|
620
|
+
throw new Error("AnimationMixer.serialize: layer base weights are unavailable.");
|
|
621
|
+
mixerArray(layer.actions, "layer actions");
|
|
622
|
+
mixerArray(layer.mask, "layer mask");
|
|
623
|
+
return weights;
|
|
624
|
+
}
|
|
625
|
+
function mixerOptions(options) {
|
|
626
|
+
const record = mixerRecord(options, "mixer options", ["applyRootMotion", "rootMotionTrack", "rootMotionScale", "consumeRootMotionTrack"], []);
|
|
627
|
+
const applyRootMotion = mixerBoolean(record.applyRootMotion ?? false, "applyRootMotion");
|
|
628
|
+
const rootMotionTrack = record.rootMotionTrack ?? "root.position";
|
|
629
|
+
if (typeof rootMotionTrack !== "string" || !rootMotionTrack.length)
|
|
630
|
+
throw new Error("AnimationMixer.restore: invalid rootMotionTrack.");
|
|
631
|
+
return {
|
|
632
|
+
applyRootMotion,
|
|
633
|
+
rootMotionTrack,
|
|
634
|
+
rootMotionScale: mixerNumber(record.rootMotionScale ?? 1, "rootMotionScale"),
|
|
635
|
+
consumeRootMotionTrack: mixerBoolean(record.consumeRootMotionTrack ?? false, "consumeRootMotionTrack")
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
function mixerReadOptions(value) {
|
|
639
|
+
const record = mixerRecord(value, "options", ["applyRootMotion", "rootMotionTrack", "rootMotionScale", "consumeRootMotionTrack"]);
|
|
640
|
+
return mixerOptions(record);
|
|
641
|
+
}
|
|
642
|
+
function mixerTarget(target) {
|
|
643
|
+
if (target === undefined)
|
|
644
|
+
return { present: false, setAnimationValue: false, applyRootMotion: false, consumeRootMotion: false, position: false };
|
|
645
|
+
if (!target || typeof target !== "object")
|
|
646
|
+
throw new Error("AnimationMixer.serialize: invalid external target.");
|
|
647
|
+
const callback = (key) => {
|
|
648
|
+
const value = target[key];
|
|
649
|
+
if (value !== undefined && typeof value !== "function")
|
|
650
|
+
throw new Error(`AnimationMixer.serialize: invalid target ${key} callback.`);
|
|
651
|
+
return value !== undefined;
|
|
652
|
+
};
|
|
653
|
+
const position = target.position;
|
|
654
|
+
if (position !== undefined && (!Array.isArray(position) || position.length !== 3 || position.some(value => !Number.isFinite(value)))) {
|
|
655
|
+
throw new Error("AnimationMixer.serialize: invalid external target position.");
|
|
656
|
+
}
|
|
657
|
+
return {
|
|
658
|
+
present: true,
|
|
659
|
+
setAnimationValue: callback("setAnimationValue"),
|
|
660
|
+
applyRootMotion: callback("applyRootMotion"),
|
|
661
|
+
consumeRootMotion: callback("consumeRootMotion"),
|
|
662
|
+
position: position !== undefined
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
function mixerReadTarget(value) {
|
|
666
|
+
const record = mixerRecord(value, "target", ["present", "setAnimationValue", "applyRootMotion", "consumeRootMotion", "position"]);
|
|
667
|
+
const target = {
|
|
668
|
+
present: mixerBoolean(record.present, "target present"),
|
|
669
|
+
setAnimationValue: mixerBoolean(record.setAnimationValue, "target setAnimationValue"),
|
|
670
|
+
applyRootMotion: mixerBoolean(record.applyRootMotion, "target applyRootMotion"),
|
|
671
|
+
consumeRootMotion: mixerBoolean(record.consumeRootMotion, "target consumeRootMotion"),
|
|
672
|
+
position: mixerBoolean(record.position, "target position")
|
|
673
|
+
};
|
|
674
|
+
if (!target.present && (target.setAnimationValue || target.applyRootMotion || target.consumeRootMotion || target.position)) {
|
|
675
|
+
throw new Error("AnimationMixer.restore: missing external target.");
|
|
676
|
+
}
|
|
677
|
+
return target;
|
|
678
|
+
}
|
|
325
679
|
const UNMASKED_LAYER = {
|
|
326
680
|
name: "default",
|
|
327
681
|
weight: 1,
|
|
@@ -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":["../src/AnimationMixer.ts"],"names":[],"mappings":"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C,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC"}
|