@galacean/engine-core 0.9.13 → 0.9.15
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/main.js +306 -187
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +306 -187
- package/dist/module.js +306 -187
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/animation/Animator.d.ts +5 -4
- package/types/animation/enums/LayerState.d.ts +3 -1
- package/types/animation/internal/AnimationCurveLayerOwner.d.ts +1 -0
package/dist/module.js
CHANGED
|
@@ -21465,8 +21465,6 @@ var DirtyFlag;
|
|
|
21465
21465
|
* @internal
|
|
21466
21466
|
*/ var AnimationCurveOwner = /*#__PURE__*/ function() {
|
|
21467
21467
|
function AnimationCurveOwner(target, type, property, cureType) {
|
|
21468
|
-
this.crossCurveMark = 0;
|
|
21469
|
-
this.hasSavedDefaultValue = false;
|
|
21470
21468
|
this.baseEvaluateData = {
|
|
21471
21469
|
curKeyframeIndex: 0,
|
|
21472
21470
|
value: null
|
|
@@ -21479,7 +21477,7 @@ var DirtyFlag;
|
|
|
21479
21477
|
this.type = type;
|
|
21480
21478
|
this.property = property;
|
|
21481
21479
|
this.component = target.getComponent(type);
|
|
21482
|
-
this.
|
|
21480
|
+
this.cureType = cureType;
|
|
21483
21481
|
var assemblerType = AnimationCurveOwner.getAssemblerType(type, property);
|
|
21484
21482
|
this._assembler = new assemblerType();
|
|
21485
21483
|
this._assembler.initialize(this);
|
|
@@ -21488,89 +21486,80 @@ var DirtyFlag;
|
|
|
21488
21486
|
}
|
|
21489
21487
|
}
|
|
21490
21488
|
var _proto = AnimationCurveOwner.prototype;
|
|
21491
|
-
_proto.
|
|
21492
|
-
|
|
21493
|
-
if (additive) {
|
|
21494
|
-
var value = curve._evaluateAdditive(time, this.baseEvaluateData);
|
|
21495
|
-
var cureType = this._cureType;
|
|
21496
|
-
if (cureType._isReferenceType) {
|
|
21497
|
-
cureType._additiveValue(value, layerWeight, this.referenceTargetValue);
|
|
21498
|
-
} else {
|
|
21499
|
-
var assembler = this._assembler;
|
|
21500
|
-
var originValue = assembler.getTargetValue();
|
|
21501
|
-
var additiveValue = cureType._additiveValue(value, layerWeight, originValue);
|
|
21502
|
-
assembler.setTargetValue(additiveValue);
|
|
21503
|
-
}
|
|
21504
|
-
} else {
|
|
21505
|
-
var value1 = curve._evaluate(time, this.baseEvaluateData);
|
|
21506
|
-
this._applyValue(value1, layerWeight);
|
|
21507
|
-
}
|
|
21508
|
-
}
|
|
21489
|
+
_proto.evaluateValue = function evaluateValue(curve, time, additive) {
|
|
21490
|
+
return additive ? curve._evaluateAdditive(time, this.baseEvaluateData) : curve._evaluate(time, this.baseEvaluateData);
|
|
21509
21491
|
};
|
|
21510
|
-
_proto.
|
|
21511
|
-
var srcValue = srcCurve && srcCurve.keys.length ? additive ? srcCurve._evaluateAdditive(srcTime, this.baseEvaluateData) : srcCurve._evaluate(srcTime, this.baseEvaluateData) : additive ? this.
|
|
21512
|
-
var destValue = destCurve && destCurve.keys.length ? additive ? destCurve._evaluateAdditive(destTime, this.crossEvaluateData) : destCurve._evaluate(destTime, this.crossEvaluateData) : additive ? this.
|
|
21513
|
-
this.
|
|
21492
|
+
_proto.evaluateCrossFadeValue = function evaluateCrossFadeValue(srcCurve, destCurve, srcTime, destTime, crossWeight, additive) {
|
|
21493
|
+
var srcValue = srcCurve && srcCurve.keys.length ? additive ? srcCurve._evaluateAdditive(srcTime, this.baseEvaluateData) : srcCurve._evaluate(srcTime, this.baseEvaluateData) : additive ? this.cureType._getZeroValue(this.baseEvaluateData.value) : this.defaultValue;
|
|
21494
|
+
var destValue = destCurve && destCurve.keys.length ? additive ? destCurve._evaluateAdditive(destTime, this.crossEvaluateData) : destCurve._evaluate(destTime, this.crossEvaluateData) : additive ? this.cureType._getZeroValue(this.crossEvaluateData.value) : this.defaultValue;
|
|
21495
|
+
return this._lerpValue(srcValue, destValue, crossWeight);
|
|
21514
21496
|
};
|
|
21515
|
-
_proto.crossFadeFromPoseAndApplyValue = function crossFadeFromPoseAndApplyValue(destCurve, destTime, crossWeight,
|
|
21516
|
-
var srcValue = additive ? this.
|
|
21517
|
-
var destValue = destCurve && destCurve.keys.length ? additive ? destCurve._evaluateAdditive(destTime, this.crossEvaluateData) : destCurve._evaluate(destTime, this.crossEvaluateData) : additive ? this.
|
|
21518
|
-
this.
|
|
21497
|
+
_proto.crossFadeFromPoseAndApplyValue = function crossFadeFromPoseAndApplyValue(destCurve, destTime, crossWeight, additive) {
|
|
21498
|
+
var srcValue = additive ? this.cureType._subtractValue(this.fixedPoseValue, this.defaultValue, this.baseEvaluateData.value) : this.fixedPoseValue;
|
|
21499
|
+
var destValue = destCurve && destCurve.keys.length ? additive ? destCurve._evaluateAdditive(destTime, this.crossEvaluateData) : destCurve._evaluate(destTime, this.crossEvaluateData) : additive ? this.cureType._getZeroValue(this.crossEvaluateData.value) : this.defaultValue;
|
|
21500
|
+
return this._lerpValue(srcValue, destValue, crossWeight);
|
|
21519
21501
|
};
|
|
21520
21502
|
_proto.revertDefaultValue = function revertDefaultValue() {
|
|
21521
21503
|
this._assembler.setTargetValue(this.defaultValue);
|
|
21522
21504
|
};
|
|
21505
|
+
_proto.getEvaluateValue = function getEvaluateValue(out) {
|
|
21506
|
+
if (this.cureType._isReferenceType) {
|
|
21507
|
+
this.cureType._copyValue(this.baseEvaluateData.value, out);
|
|
21508
|
+
return out;
|
|
21509
|
+
} else {
|
|
21510
|
+
return this.baseEvaluateData.value;
|
|
21511
|
+
}
|
|
21512
|
+
};
|
|
21523
21513
|
_proto.saveDefaultValue = function saveDefaultValue() {
|
|
21524
|
-
if (this.
|
|
21525
|
-
this.
|
|
21514
|
+
if (this.cureType._isReferenceType) {
|
|
21515
|
+
this.cureType._copyValue(this.referenceTargetValue, this.defaultValue);
|
|
21526
21516
|
} else {
|
|
21527
21517
|
this.defaultValue = this._assembler.getTargetValue();
|
|
21528
21518
|
}
|
|
21529
|
-
this.hasSavedDefaultValue = true;
|
|
21530
21519
|
};
|
|
21531
21520
|
_proto.saveFixedPoseValue = function saveFixedPoseValue() {
|
|
21532
|
-
if (this.
|
|
21533
|
-
this.
|
|
21521
|
+
if (this.cureType._isReferenceType) {
|
|
21522
|
+
this.cureType._copyValue(this.referenceTargetValue, this.fixedPoseValue);
|
|
21534
21523
|
} else {
|
|
21535
21524
|
this.fixedPoseValue = this._assembler.getTargetValue();
|
|
21536
21525
|
}
|
|
21537
21526
|
};
|
|
21538
|
-
_proto.
|
|
21539
|
-
|
|
21540
|
-
|
|
21541
|
-
|
|
21527
|
+
_proto.applyValue = function applyValue(value, weight, additive) {
|
|
21528
|
+
var cureType = this.cureType;
|
|
21529
|
+
if (additive) {
|
|
21530
|
+
if (cureType._isReferenceType) {
|
|
21531
|
+
cureType._additiveValue(value, weight, this.referenceTargetValue);
|
|
21542
21532
|
} else {
|
|
21543
|
-
this._assembler
|
|
21533
|
+
var assembler = this._assembler;
|
|
21534
|
+
var originValue = assembler.getTargetValue();
|
|
21535
|
+
var additiveValue = cureType._additiveValue(value, weight, originValue);
|
|
21536
|
+
assembler.setTargetValue(additiveValue);
|
|
21544
21537
|
}
|
|
21545
21538
|
} else {
|
|
21546
|
-
if (
|
|
21547
|
-
|
|
21548
|
-
|
|
21539
|
+
if (weight === 1.0) {
|
|
21540
|
+
if (cureType._isReferenceType) {
|
|
21541
|
+
cureType._copyValue(value, this.referenceTargetValue);
|
|
21542
|
+
} else {
|
|
21543
|
+
this._assembler.setTargetValue(value);
|
|
21544
|
+
}
|
|
21549
21545
|
} else {
|
|
21550
|
-
|
|
21551
|
-
|
|
21552
|
-
|
|
21546
|
+
if (cureType._isReferenceType) {
|
|
21547
|
+
var targetValue = this.referenceTargetValue;
|
|
21548
|
+
cureType._lerpValue(targetValue, value, weight, targetValue);
|
|
21549
|
+
} else {
|
|
21550
|
+
var originValue1 = this._assembler.getTargetValue();
|
|
21551
|
+
var lerpValue = cureType._lerpValue(originValue1, value, weight);
|
|
21552
|
+
this._assembler.setTargetValue(lerpValue);
|
|
21553
|
+
}
|
|
21553
21554
|
}
|
|
21554
21555
|
}
|
|
21555
21556
|
};
|
|
21556
|
-
_proto.
|
|
21557
|
-
|
|
21558
|
-
|
|
21559
|
-
out = this.baseEvaluateData.value;
|
|
21560
|
-
this._cureType._lerpValue(srcValue, destValue, crossWeight, out);
|
|
21557
|
+
_proto._lerpValue = function _lerpValue(srcValue, destValue, crossWeight) {
|
|
21558
|
+
if (this.cureType._isReferenceType) {
|
|
21559
|
+
return this.cureType._lerpValue(srcValue, destValue, crossWeight, this.baseEvaluateData.value);
|
|
21561
21560
|
} else {
|
|
21562
|
-
|
|
21563
|
-
|
|
21564
|
-
if (additive) {
|
|
21565
|
-
if (this._cureType._isReferenceType) {
|
|
21566
|
-
this._cureType._additiveValue(out, layerWeight, this.referenceTargetValue);
|
|
21567
|
-
} else {
|
|
21568
|
-
var originValue = this._assembler.getTargetValue();
|
|
21569
|
-
var lerpValue = this._cureType._additiveValue(out, layerWeight, originValue);
|
|
21570
|
-
this._assembler.setTargetValue(lerpValue);
|
|
21571
|
-
}
|
|
21572
|
-
} else {
|
|
21573
|
-
this._applyValue(out, layerWeight);
|
|
21561
|
+
this.baseEvaluateData.value = this.cureType._lerpValue(srcValue, destValue, crossWeight);
|
|
21562
|
+
return this.baseEvaluateData.value;
|
|
21574
21563
|
}
|
|
21575
21564
|
};
|
|
21576
21565
|
AnimationCurveOwner.registerAssembler = function registerAssembler(componentType, property, assemblerType) {
|
|
@@ -21664,6 +21653,27 @@ AnimationCurveOwner.registerAssembler(Transform, "scale", ScaleAnimationCurveOwn
|
|
|
21664
21653
|
}();
|
|
21665
21654
|
AnimationCurveOwner.registerAssembler(SkinnedMeshRenderer, "blendShapeWeights", BlendShapeWeightsAnimationCurveOwnerAssembler);
|
|
21666
21655
|
|
|
21656
|
+
/**
|
|
21657
|
+
* @internal
|
|
21658
|
+
*/ var AnimationCurveLayerOwner = /*#__PURE__*/ function() {
|
|
21659
|
+
function AnimationCurveLayerOwner() {
|
|
21660
|
+
this.crossCurveMark = 0;
|
|
21661
|
+
}
|
|
21662
|
+
var _proto = AnimationCurveLayerOwner.prototype;
|
|
21663
|
+
_proto.initFinalValue = function initFinalValue() {
|
|
21664
|
+
var _this_curveOwner = this.curveOwner, cureType = _this_curveOwner.cureType, defaultValue = _this_curveOwner.defaultValue;
|
|
21665
|
+
if (cureType._isReferenceType) {
|
|
21666
|
+
cureType._copyValue(defaultValue, this.finalValue);
|
|
21667
|
+
} else {
|
|
21668
|
+
this.finalValue = defaultValue;
|
|
21669
|
+
}
|
|
21670
|
+
};
|
|
21671
|
+
_proto.saveFinalValue = function saveFinalValue() {
|
|
21672
|
+
this.finalValue = this.curveOwner.getEvaluateValue(this.finalValue);
|
|
21673
|
+
};
|
|
21674
|
+
return AnimationCurveLayerOwner;
|
|
21675
|
+
}();
|
|
21676
|
+
|
|
21667
21677
|
/**
|
|
21668
21678
|
* Associate AnimationCurve and the Entity
|
|
21669
21679
|
*/ var AnimationClipCurveBinding = /*#__PURE__*/ function() {
|
|
@@ -21677,10 +21687,22 @@ AnimationCurveOwner.registerAssembler(SkinnedMeshRenderer, "blendShapeWeights",
|
|
|
21677
21687
|
var curveType = this.curve.constructor;
|
|
21678
21688
|
var owner = new AnimationCurveOwner(entity, this.type, this.property, curveType);
|
|
21679
21689
|
curveType._initializeOwner(owner);
|
|
21690
|
+
owner.saveDefaultValue();
|
|
21680
21691
|
return owner;
|
|
21681
21692
|
};
|
|
21682
21693
|
/**
|
|
21683
21694
|
* @internal
|
|
21695
|
+
*/ _proto._createCurveLayerOwner = function _createCurveLayerOwner(owner) {
|
|
21696
|
+
var curveType = this.curve.constructor;
|
|
21697
|
+
var layerOwner = new AnimationCurveLayerOwner();
|
|
21698
|
+
layerOwner.curveOwner = owner;
|
|
21699
|
+
curveType._initializeLayerOwner(layerOwner);
|
|
21700
|
+
// If curve.keys.length is 0, updateFinishedState will assign 0 to the target, causing an error, so initialize by assigning defaultValue to finalValue.
|
|
21701
|
+
layerOwner.initFinalValue();
|
|
21702
|
+
return layerOwner;
|
|
21703
|
+
};
|
|
21704
|
+
/**
|
|
21705
|
+
* @internal
|
|
21684
21706
|
*/ _proto._getTempCurveOwner = function _getTempCurveOwner(entity) {
|
|
21685
21707
|
var instanceId = entity.instanceId;
|
|
21686
21708
|
if (!this._tempCurveOwner[instanceId]) {
|
|
@@ -21760,7 +21782,8 @@ AnimationCurveOwner.registerAssembler(SkinnedMeshRenderer, "blendShapeWeights",
|
|
|
21760
21782
|
var targetEntity = entity.findByPath(curveData.relativePath);
|
|
21761
21783
|
if (targetEntity) {
|
|
21762
21784
|
var curveOwner = curveData._getTempCurveOwner(targetEntity);
|
|
21763
|
-
curveOwner.
|
|
21785
|
+
var value = curveOwner.evaluateValue(curveData.curve, time, false);
|
|
21786
|
+
curveOwner.applyValue(value, 1, false);
|
|
21764
21787
|
}
|
|
21765
21788
|
}
|
|
21766
21789
|
};
|
|
@@ -21904,6 +21927,7 @@ AnimationCurveOwner.registerAssembler(SkinnedMeshRenderer, "blendShapeWeights",
|
|
|
21904
21927
|
break;
|
|
21905
21928
|
}
|
|
21906
21929
|
}
|
|
21930
|
+
evaluateData.value = value;
|
|
21907
21931
|
return value;
|
|
21908
21932
|
};
|
|
21909
21933
|
/**
|
|
@@ -21960,6 +21984,11 @@ var AnimationArrayCurve = (_AnimationArrayCurve = /*#__PURE__*/ function(Animati
|
|
|
21960
21984
|
};
|
|
21961
21985
|
/**
|
|
21962
21986
|
* @internal
|
|
21987
|
+
*/ AnimationArrayCurve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
21988
|
+
owner.finalValue = [];
|
|
21989
|
+
};
|
|
21990
|
+
/**
|
|
21991
|
+
* @internal
|
|
21963
21992
|
*/ AnimationArrayCurve._lerpValue = function _lerpValue(srcValue, destValue, weight, out) {
|
|
21964
21993
|
for(var i = 0, n = out.length; i < n; ++i){
|
|
21965
21994
|
var src = srcValue[i];
|
|
@@ -22050,6 +22079,11 @@ var AnimationBoolCurve = (_AnimationBoolCurve = /*#__PURE__*/ function(Animation
|
|
|
22050
22079
|
};
|
|
22051
22080
|
/**
|
|
22052
22081
|
* @internal
|
|
22082
|
+
*/ AnimationBoolCurve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22083
|
+
owner.finalValue = false;
|
|
22084
|
+
};
|
|
22085
|
+
/**
|
|
22086
|
+
* @internal
|
|
22053
22087
|
*/ AnimationBoolCurve._lerpValue = function _lerpValue(srcValue, destValue) {
|
|
22054
22088
|
return destValue;
|
|
22055
22089
|
};
|
|
@@ -22107,6 +22141,11 @@ var AnimationColorCurve = (_AnimationColorCurve = /*#__PURE__*/ function(Animati
|
|
|
22107
22141
|
};
|
|
22108
22142
|
/**
|
|
22109
22143
|
* @internal
|
|
22144
|
+
*/ AnimationColorCurve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22145
|
+
owner.finalValue = new Color$1();
|
|
22146
|
+
};
|
|
22147
|
+
/**
|
|
22148
|
+
* @internal
|
|
22110
22149
|
*/ AnimationColorCurve._lerpValue = function _lerpValue(srcValue, destValue, weight, out) {
|
|
22111
22150
|
Color$1.lerp(srcValue, destValue, weight, out);
|
|
22112
22151
|
return out;
|
|
@@ -22214,6 +22253,12 @@ var AnimationFloatArrayCurve = (_AnimationFloatArrayCurve = /*#__PURE__*/ functi
|
|
|
22214
22253
|
};
|
|
22215
22254
|
/**
|
|
22216
22255
|
* @internal
|
|
22256
|
+
*/ AnimationFloatArrayCurve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22257
|
+
var size = owner.curveOwner.referenceTargetValue.length;
|
|
22258
|
+
owner.finalValue = new Float32Array(size);
|
|
22259
|
+
};
|
|
22260
|
+
/**
|
|
22261
|
+
* @internal
|
|
22217
22262
|
*/ AnimationFloatArrayCurve._lerpValue = function _lerpValue(srcValue, destValue, weight, out) {
|
|
22218
22263
|
for(var i = 0, n = out.length; i < n; ++i){
|
|
22219
22264
|
var src = srcValue[i];
|
|
@@ -22304,6 +22349,11 @@ var AnimationFloatCurve = (_AnimationFloatCurve = /*#__PURE__*/ function(Animati
|
|
|
22304
22349
|
};
|
|
22305
22350
|
/**
|
|
22306
22351
|
* @internal
|
|
22352
|
+
*/ AnimationFloatCurve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22353
|
+
owner.finalValue = 0;
|
|
22354
|
+
};
|
|
22355
|
+
/**
|
|
22356
|
+
* @internal
|
|
22307
22357
|
*/ AnimationFloatCurve._lerpValue = function _lerpValue(srcValue, destValue, crossWeight) {
|
|
22308
22358
|
return srcValue + (destValue - srcValue) * crossWeight;
|
|
22309
22359
|
};
|
|
@@ -22373,6 +22423,11 @@ var AnimationQuaternionCurve = (_AnimationQuaternionCurve = /*#__PURE__*/ functi
|
|
|
22373
22423
|
};
|
|
22374
22424
|
/**
|
|
22375
22425
|
* @internal
|
|
22426
|
+
*/ AnimationQuaternionCurve1._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22427
|
+
owner.finalValue = new Quaternion();
|
|
22428
|
+
};
|
|
22429
|
+
/**
|
|
22430
|
+
* @internal
|
|
22376
22431
|
*/ AnimationQuaternionCurve1._lerpValue = function _lerpValue(src, dest, weight, out) {
|
|
22377
22432
|
Quaternion.slerp(src, dest, weight, out);
|
|
22378
22433
|
return out;
|
|
@@ -22477,6 +22532,11 @@ var AnimationVector2Curve = (_AnimationVector2Curve = /*#__PURE__*/ function(Ani
|
|
|
22477
22532
|
};
|
|
22478
22533
|
/**
|
|
22479
22534
|
* @internal
|
|
22535
|
+
*/ AnimationVector2Curve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22536
|
+
owner.finalValue = new Vector2();
|
|
22537
|
+
};
|
|
22538
|
+
/**
|
|
22539
|
+
* @internal
|
|
22480
22540
|
*/ AnimationVector2Curve._lerpValue = function _lerpValue(srcValue, destValue, weight, out) {
|
|
22481
22541
|
Vector2.lerp(srcValue, destValue, weight, out);
|
|
22482
22542
|
return out;
|
|
@@ -22562,6 +22622,11 @@ var AnimationVector3Curve = (_AnimationVector3Curve = /*#__PURE__*/ function(Ani
|
|
|
22562
22622
|
};
|
|
22563
22623
|
/**
|
|
22564
22624
|
* @internal
|
|
22625
|
+
*/ AnimationVector3Curve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22626
|
+
owner.finalValue = new Vector3();
|
|
22627
|
+
};
|
|
22628
|
+
/**
|
|
22629
|
+
* @internal
|
|
22565
22630
|
*/ AnimationVector3Curve._lerpValue = function _lerpValue(srcValue, destValue, weight, out) {
|
|
22566
22631
|
Vector3.lerp(srcValue, destValue, weight, out);
|
|
22567
22632
|
return out;
|
|
@@ -22659,6 +22724,11 @@ var AnimationVector4Curve = (_AnimationVector4Curve = /*#__PURE__*/ function(Ani
|
|
|
22659
22724
|
};
|
|
22660
22725
|
/**
|
|
22661
22726
|
* @internal
|
|
22727
|
+
*/ AnimationVector4Curve._initializeLayerOwner = function _initializeLayerOwner(owner) {
|
|
22728
|
+
owner.finalValue = new Vector4();
|
|
22729
|
+
};
|
|
22730
|
+
/**
|
|
22731
|
+
* @internal
|
|
22662
22732
|
*/ AnimationVector4Curve._lerpValue = function _lerpValue(srcValue, destValue, weight, out) {
|
|
22663
22733
|
Vector4.lerp(srcValue, destValue, weight, out);
|
|
22664
22734
|
return out;
|
|
@@ -22768,6 +22838,7 @@ var AnimatorLayerBlendingMode;
|
|
|
22768
22838
|
LayerState[LayerState[/** Playing state. */ "Playing"] = 1] = "Playing";
|
|
22769
22839
|
LayerState[LayerState[/** CrossFading state. */ "CrossFading"] = 2] = "CrossFading";
|
|
22770
22840
|
LayerState[LayerState[/** FixedCrossFading state. */ "FixedCrossFading"] = 3] = "FixedCrossFading";
|
|
22841
|
+
LayerState[LayerState[/** Finished state. */ "Finished"] = 4] = "Finished";
|
|
22771
22842
|
})(LayerState || (LayerState = {}));
|
|
22772
22843
|
|
|
22773
22844
|
/**
|
|
@@ -22839,12 +22910,14 @@ var AnimatorLayerBlendingMode;
|
|
|
22839
22910
|
* @internal
|
|
22840
22911
|
*/ var AnimatorLayerData = /*#__PURE__*/ function() {
|
|
22841
22912
|
function AnimatorLayerData() {
|
|
22913
|
+
this.curveOwnerPool = Object.create(null);
|
|
22842
22914
|
this.animatorStateDataMap = {};
|
|
22843
22915
|
this.srcPlayData = new AnimatorStatePlayData();
|
|
22844
22916
|
this.destPlayData = new AnimatorStatePlayData();
|
|
22845
22917
|
this.layerState = LayerState.Standby;
|
|
22846
22918
|
this.crossCurveMark = 0;
|
|
22847
22919
|
this.manuallyTransition = new AnimatorStateTransition();
|
|
22920
|
+
this.crossLayerOwnerCollection = [];
|
|
22848
22921
|
}
|
|
22849
22922
|
var _proto = AnimatorLayerData.prototype;
|
|
22850
22923
|
_proto.switchPlayData = function switchPlayData() {
|
|
@@ -22859,7 +22932,7 @@ var AnimatorLayerBlendingMode;
|
|
|
22859
22932
|
/**
|
|
22860
22933
|
* @internal
|
|
22861
22934
|
*/ var AnimatorStateData = function AnimatorStateData() {
|
|
22862
|
-
this.
|
|
22935
|
+
this.curveLayerOwner = [];
|
|
22863
22936
|
this.eventHandlers = [];
|
|
22864
22937
|
};
|
|
22865
22938
|
|
|
@@ -22873,8 +22946,8 @@ var AnimatorLayerBlendingMode;
|
|
|
22873
22946
|
/** Culling mode of this Animator. */ _this.cullingMode = AnimatorCullingMode.None;
|
|
22874
22947
|
/** The playback speed of the Animator, 1.0 is normal playback speed. */ _this.speed = 1.0;
|
|
22875
22948
|
_this._animatorLayersData = [];
|
|
22876
|
-
_this.
|
|
22877
|
-
_this.
|
|
22949
|
+
_this._curveOwnerPool = Object.create(null);
|
|
22950
|
+
_this._needRevertCurveOwners = [];
|
|
22878
22951
|
_this._animationEventHandlerPool = new ClassPool(AnimationEventHandler);
|
|
22879
22952
|
_this._tempAnimatorStateInfo = {
|
|
22880
22953
|
layerIndex: -1,
|
|
@@ -22897,7 +22970,7 @@ var AnimatorLayerBlendingMode;
|
|
|
22897
22970
|
this._reset();
|
|
22898
22971
|
}
|
|
22899
22972
|
var stateInfo = this._getAnimatorStateInfo(stateName, layerIndex);
|
|
22900
|
-
var state = stateInfo.state;
|
|
22973
|
+
var state = stateInfo.state, playLayerIndex = stateInfo.layerIndex;
|
|
22901
22974
|
if (!state) {
|
|
22902
22975
|
return;
|
|
22903
22976
|
}
|
|
@@ -22906,9 +22979,8 @@ var AnimatorLayerBlendingMode;
|
|
|
22906
22979
|
return;
|
|
22907
22980
|
}
|
|
22908
22981
|
var animatorLayerData = this._getAnimatorLayerData(stateInfo.layerIndex);
|
|
22909
|
-
|
|
22910
|
-
|
|
22911
|
-
this._preparePlay(animatorLayerData, state, animatorStateData);
|
|
22982
|
+
var animatorStateData = this._getAnimatorStateData(stateName, state, animatorLayerData, playLayerIndex);
|
|
22983
|
+
this._preparePlay(animatorLayerData, state);
|
|
22912
22984
|
animatorLayerData.layerState = LayerState.Playing;
|
|
22913
22985
|
animatorLayerData.srcPlayData.reset(state, animatorStateData, state._getDuration() * normalizedTimeOffset);
|
|
22914
22986
|
};
|
|
@@ -22959,6 +23031,7 @@ var AnimatorLayerBlendingMode;
|
|
|
22959
23031
|
return;
|
|
22960
23032
|
}
|
|
22961
23033
|
deltaTime *= this.speed;
|
|
23034
|
+
this._revertCurveOwners();
|
|
22962
23035
|
for(var i1 = 0, n1 = animatorController.layers.length; i1 < n1; i1++){
|
|
22963
23036
|
var animatorLayerData = this._getAnimatorLayerData(i1);
|
|
22964
23037
|
if (animatorLayerData.layerState === LayerState.Standby) {
|
|
@@ -22999,17 +23072,17 @@ var AnimatorLayerBlendingMode;
|
|
|
22999
23072
|
/**
|
|
23000
23073
|
* @internal
|
|
23001
23074
|
*/ _proto._reset = function _reset() {
|
|
23002
|
-
var _this = this, animationCurveOwners = _this.
|
|
23075
|
+
var _this = this, animationCurveOwners = _this._curveOwnerPool;
|
|
23003
23076
|
for(var instanceId in animationCurveOwners){
|
|
23004
23077
|
var propertyOwners = animationCurveOwners[instanceId];
|
|
23005
23078
|
for(var property in propertyOwners){
|
|
23006
23079
|
var owner = propertyOwners[property];
|
|
23007
|
-
owner.
|
|
23080
|
+
owner.revertDefaultValue();
|
|
23008
23081
|
}
|
|
23009
23082
|
}
|
|
23010
23083
|
this._animatorLayersData.length = 0;
|
|
23011
|
-
this.
|
|
23012
|
-
this.
|
|
23084
|
+
this._needRevertCurveOwners.length = 0;
|
|
23085
|
+
this._curveOwnerPool = {};
|
|
23013
23086
|
this._animationEventHandlerPool.resetPool();
|
|
23014
23087
|
if (this._controllerUpdateFlag) {
|
|
23015
23088
|
this._controllerUpdateFlag.flag = false;
|
|
@@ -23036,38 +23109,51 @@ var AnimatorLayerBlendingMode;
|
|
|
23036
23109
|
stateInfo.state = state;
|
|
23037
23110
|
return stateInfo;
|
|
23038
23111
|
};
|
|
23039
|
-
_proto.
|
|
23040
|
-
var curveOwners = stateData.curveOwners;
|
|
23041
|
-
for(var i = curveOwners.length - 1; i >= 0; i--){
|
|
23042
|
-
var _curveOwners_i;
|
|
23043
|
-
(_curveOwners_i = curveOwners[i]) == null ? void 0 : _curveOwners_i.saveDefaultValue();
|
|
23044
|
-
}
|
|
23045
|
-
};
|
|
23046
|
-
_proto._getAnimatorStateData = function _getAnimatorStateData(stateName, animatorState, animatorLayerData) {
|
|
23112
|
+
_proto._getAnimatorStateData = function _getAnimatorStateData(stateName, animatorState, animatorLayerData, layerIndex) {
|
|
23047
23113
|
var animatorStateDataMap = animatorLayerData.animatorStateDataMap;
|
|
23048
23114
|
var animatorStateData = animatorStateDataMap[stateName];
|
|
23049
23115
|
if (!animatorStateData) {
|
|
23050
23116
|
animatorStateData = new AnimatorStateData();
|
|
23051
23117
|
animatorStateDataMap[stateName] = animatorStateData;
|
|
23052
|
-
this._saveAnimatorStateData(animatorState, animatorStateData);
|
|
23118
|
+
this._saveAnimatorStateData(animatorState, animatorStateData, animatorLayerData, layerIndex);
|
|
23053
23119
|
this._saveAnimatorEventHandlers(animatorState, animatorStateData);
|
|
23054
23120
|
}
|
|
23055
23121
|
return animatorStateData;
|
|
23056
23122
|
};
|
|
23057
|
-
_proto._saveAnimatorStateData = function _saveAnimatorStateData(animatorState, animatorStateData) {
|
|
23058
|
-
var _this = this, entity = _this.entity,
|
|
23059
|
-
var
|
|
23123
|
+
_proto._saveAnimatorStateData = function _saveAnimatorStateData(animatorState, animatorStateData, animatorLayerData, layerIndex) {
|
|
23124
|
+
var _this = this, entity = _this.entity, curveOwnerPool = _this._curveOwnerPool;
|
|
23125
|
+
var curveLayerOwner = animatorStateData.curveLayerOwner;
|
|
23126
|
+
var layerCurveOwnerPool = animatorLayerData.curveOwnerPool;
|
|
23060
23127
|
var _animatorState_clip = animatorState.clip, curves = _animatorState_clip._curveBindings;
|
|
23061
23128
|
for(var i = curves.length - 1; i >= 0; i--){
|
|
23062
23129
|
var curve = curves[i];
|
|
23063
23130
|
var targetEntity = curve.relativePath === "" ? entity : entity.findByPath(curve.relativePath);
|
|
23064
23131
|
if (targetEntity) {
|
|
23132
|
+
var _curveOwnerPool, _instanceId, _propertyOwners, _property, _layerCurveOwnerPool, _instanceId1, _layerPropertyOwners, _property1;
|
|
23065
23133
|
var property = curve.property;
|
|
23066
23134
|
var instanceId = targetEntity.instanceId;
|
|
23067
|
-
var
|
|
23068
|
-
|
|
23135
|
+
var needRevert = false;
|
|
23136
|
+
var baseAnimatorLayerData = this._animatorLayersData[0];
|
|
23137
|
+
var baseLayerCurveOwnerPool = baseAnimatorLayerData.curveOwnerPool;
|
|
23138
|
+
if (this.animatorController.layers[layerIndex].blendingMode === AnimatorLayerBlendingMode.Additive && layerIndex > 0 && !(baseLayerCurveOwnerPool[instanceId] && baseLayerCurveOwnerPool[instanceId][property])) {
|
|
23139
|
+
needRevert = true;
|
|
23140
|
+
}
|
|
23141
|
+
// Get owner
|
|
23142
|
+
var propertyOwners = (_curveOwnerPool = curveOwnerPool)[_instanceId = instanceId] || (_curveOwnerPool[_instanceId] = Object.create(null));
|
|
23143
|
+
var owner = (_propertyOwners = propertyOwners)[_property = property] || (_propertyOwners[_property] = curve._createCurveOwner(targetEntity));
|
|
23144
|
+
//@todo: There is performance waste here, which will be handled together with organizing AnimatorStateData later. The logic is changing from runtime to initialization.
|
|
23145
|
+
if (needRevert) {
|
|
23146
|
+
this._needRevertCurveOwners.push(owner);
|
|
23147
|
+
} else {
|
|
23148
|
+
var index = this._needRevertCurveOwners.indexOf(owner);
|
|
23149
|
+
index > -1 && this._needRevertCurveOwners.splice(index, 1);
|
|
23150
|
+
}
|
|
23151
|
+
// Get layer owner
|
|
23152
|
+
var layerPropertyOwners = (_layerCurveOwnerPool = layerCurveOwnerPool)[_instanceId1 = instanceId] || (_layerCurveOwnerPool[_instanceId1] = Object.create(null));
|
|
23153
|
+
var layerOwner = (_layerPropertyOwners = layerPropertyOwners)[_property1 = property] || (_layerPropertyOwners[_property1] = curve._createCurveLayerOwner(owner));
|
|
23154
|
+
curveLayerOwner[i] = layerOwner;
|
|
23069
23155
|
} else {
|
|
23070
|
-
|
|
23156
|
+
curveLayerOwner[i] = null;
|
|
23071
23157
|
console.warn("The entity don't have the child entity which path is " + curve.relativePath + ".");
|
|
23072
23158
|
}
|
|
23073
23159
|
}
|
|
@@ -23095,65 +23181,60 @@ var AnimatorLayerBlendingMode;
|
|
|
23095
23181
|
};
|
|
23096
23182
|
_proto._clearCrossData = function _clearCrossData(animatorLayerData) {
|
|
23097
23183
|
animatorLayerData.crossCurveMark++;
|
|
23098
|
-
|
|
23184
|
+
animatorLayerData.crossLayerOwnerCollection.length = 0;
|
|
23099
23185
|
};
|
|
23100
|
-
_proto.
|
|
23101
|
-
|
|
23102
|
-
|
|
23103
|
-
|
|
23186
|
+
_proto._addCrossOwner = function _addCrossOwner(animatorLayerData, layerOwner, curCurveIndex, nextCurveIndex) {
|
|
23187
|
+
layerOwner.crossSrcCurveIndex = curCurveIndex;
|
|
23188
|
+
layerOwner.crossDestCurveIndex = nextCurveIndex;
|
|
23189
|
+
animatorLayerData.crossLayerOwnerCollection.push(layerOwner);
|
|
23104
23190
|
};
|
|
23105
23191
|
_proto._prepareCrossFading = function _prepareCrossFading(animatorLayerData) {
|
|
23106
|
-
var crossCurveData = this._crossOwnerCollection;
|
|
23107
|
-
var crossCurveMark = animatorLayerData.crossCurveMark;
|
|
23108
23192
|
// Add src cross curve data.
|
|
23109
|
-
this._prepareSrcCrossData(
|
|
23193
|
+
this._prepareSrcCrossData(animatorLayerData, false);
|
|
23110
23194
|
// Add dest cross curve data.
|
|
23111
|
-
this._prepareDestCrossData(
|
|
23195
|
+
this._prepareDestCrossData(animatorLayerData, false);
|
|
23112
23196
|
};
|
|
23113
23197
|
_proto._prepareStandbyCrossFading = function _prepareStandbyCrossFading(animatorLayerData) {
|
|
23114
|
-
var crossOwnerCollection = this._crossOwnerCollection;
|
|
23115
|
-
var srcPlayData = animatorLayerData.srcPlayData, crossCurveMark = animatorLayerData.crossCurveMark;
|
|
23116
23198
|
// Standby have two sub state, one is never play, one is finished, never play srcPlayData.state is null.
|
|
23117
|
-
srcPlayData.state && this._prepareSrcCrossData(
|
|
23199
|
+
animatorLayerData.srcPlayData.state && this._prepareSrcCrossData(animatorLayerData, true);
|
|
23118
23200
|
// Add dest cross curve data.
|
|
23119
|
-
this._prepareDestCrossData(
|
|
23201
|
+
this._prepareDestCrossData(animatorLayerData, true);
|
|
23120
23202
|
};
|
|
23121
23203
|
_proto._prepareFixedPoseCrossFading = function _prepareFixedPoseCrossFading(animatorLayerData) {
|
|
23122
|
-
var
|
|
23204
|
+
var crossLayerOwnerCollection = animatorLayerData.crossLayerOwnerCollection;
|
|
23123
23205
|
// Save current cross curve data owner fixed pose.
|
|
23124
|
-
for(var i =
|
|
23125
|
-
var
|
|
23126
|
-
|
|
23206
|
+
for(var i = crossLayerOwnerCollection.length - 1; i >= 0; i--){
|
|
23207
|
+
var layerOwner = crossLayerOwnerCollection[i];
|
|
23208
|
+
if (!layerOwner) continue;
|
|
23209
|
+
layerOwner.curveOwner.saveFixedPoseValue();
|
|
23127
23210
|
// Reset destCurveIndex When fixed pose crossFading again.
|
|
23128
|
-
|
|
23211
|
+
layerOwner.crossDestCurveIndex = -1;
|
|
23129
23212
|
}
|
|
23130
23213
|
// prepare dest AnimatorState cross data.
|
|
23131
|
-
this._prepareDestCrossData(
|
|
23132
|
-
};
|
|
23133
|
-
_proto._prepareSrcCrossData = function _prepareSrcCrossData(
|
|
23134
|
-
var
|
|
23135
|
-
for(var i =
|
|
23136
|
-
var
|
|
23137
|
-
if (!
|
|
23138
|
-
|
|
23139
|
-
|
|
23140
|
-
|
|
23141
|
-
|
|
23142
|
-
|
|
23143
|
-
|
|
23144
|
-
|
|
23145
|
-
var
|
|
23146
|
-
|
|
23147
|
-
|
|
23148
|
-
if (
|
|
23149
|
-
|
|
23150
|
-
crossCurveData[owner.crossCurveDataIndex].crossDestCurveIndex = i;
|
|
23214
|
+
this._prepareDestCrossData(animatorLayerData, true);
|
|
23215
|
+
};
|
|
23216
|
+
_proto._prepareSrcCrossData = function _prepareSrcCrossData(animatorLayerData, saveFixed) {
|
|
23217
|
+
var curveLayerOwner = animatorLayerData.srcPlayData.stateData.curveLayerOwner;
|
|
23218
|
+
for(var i = curveLayerOwner.length - 1; i >= 0; i--){
|
|
23219
|
+
var layerOwner = curveLayerOwner[i];
|
|
23220
|
+
if (!layerOwner) continue;
|
|
23221
|
+
layerOwner.crossCurveMark = animatorLayerData.crossCurveMark;
|
|
23222
|
+
saveFixed && layerOwner.curveOwner.saveFixedPoseValue();
|
|
23223
|
+
this._addCrossOwner(animatorLayerData, layerOwner, i, -1);
|
|
23224
|
+
}
|
|
23225
|
+
};
|
|
23226
|
+
_proto._prepareDestCrossData = function _prepareDestCrossData(animatorLayerData, saveFixed) {
|
|
23227
|
+
var curveLayerOwner = animatorLayerData.destPlayData.stateData.curveLayerOwner;
|
|
23228
|
+
for(var i = curveLayerOwner.length - 1; i >= 0; i--){
|
|
23229
|
+
var layerOwner = curveLayerOwner[i];
|
|
23230
|
+
if (!layerOwner) continue;
|
|
23231
|
+
if (layerOwner.crossCurveMark === animatorLayerData.crossCurveMark) {
|
|
23232
|
+
layerOwner.crossDestCurveIndex = i;
|
|
23151
23233
|
} else {
|
|
23152
|
-
owner.
|
|
23234
|
+
var owner = layerOwner.curveOwner;
|
|
23153
23235
|
saveFixed && owner.saveFixedPoseValue();
|
|
23154
|
-
|
|
23155
|
-
|
|
23156
|
-
this._addCrossCurveData(crossCurveData, owner, -1, i);
|
|
23236
|
+
layerOwner.crossCurveMark = animatorLayerData.crossCurveMark;
|
|
23237
|
+
this._addCrossOwner(animatorLayerData, layerOwner, -1, i);
|
|
23157
23238
|
}
|
|
23158
23239
|
}
|
|
23159
23240
|
};
|
|
@@ -23168,7 +23249,7 @@ var AnimatorLayerBlendingMode;
|
|
|
23168
23249
|
var srcPlayData = layerData.srcPlayData, destPlayData = layerData.destPlayData, crossFadeTransitionInfo = layerData.crossFadeTransition;
|
|
23169
23250
|
var additive = blendingMode === AnimatorLayerBlendingMode.Additive;
|
|
23170
23251
|
firstLayer && (weight = 1.0);
|
|
23171
|
-
|
|
23252
|
+
//@todo: All situations should be checked, optimizations will follow later.
|
|
23172
23253
|
layerData.layerState !== LayerState.FixedCrossFading && this._checkTransition(srcPlayData, crossFadeTransitionInfo, layerIndex);
|
|
23173
23254
|
switch(layerData.layerState){
|
|
23174
23255
|
case LayerState.Playing:
|
|
@@ -23180,26 +23261,36 @@ var AnimatorLayerBlendingMode;
|
|
|
23180
23261
|
case LayerState.CrossFading:
|
|
23181
23262
|
this._updateCrossFade(srcPlayData, destPlayData, layerData, layerIndex, weight, deltaTime, additive, aniUpdate);
|
|
23182
23263
|
break;
|
|
23264
|
+
case LayerState.Finished:
|
|
23265
|
+
this._updateFinishedState(srcPlayData, weight, additive, aniUpdate);
|
|
23266
|
+
break;
|
|
23183
23267
|
}
|
|
23184
23268
|
};
|
|
23185
23269
|
_proto._updatePlayingState = function _updatePlayingState(playData, layerData, layerIndex, weight, delta, additive, aniUpdate) {
|
|
23186
|
-
var _playData_stateData = playData.stateData,
|
|
23270
|
+
var _playData_stateData = playData.stateData, curveLayerOwner = _playData_stateData.curveLayerOwner, eventHandlers = _playData_stateData.eventHandlers;
|
|
23187
23271
|
var state = playData.state, lastPlayState = playData.playState, lastClipTime = playData.clipTime;
|
|
23188
23272
|
var _state_clip = state.clip, curveBindings = _state_clip._curveBindings;
|
|
23189
23273
|
playData.update(this.speed < 0);
|
|
23190
|
-
if (!aniUpdate) {
|
|
23191
|
-
return;
|
|
23192
|
-
}
|
|
23193
23274
|
var clipTime = playData.clipTime, playState = playData.playState;
|
|
23194
|
-
|
|
23195
|
-
|
|
23196
|
-
var
|
|
23197
|
-
|
|
23275
|
+
var finished = playState === AnimatorStatePlayState.Finished;
|
|
23276
|
+
if (aniUpdate || finished) {
|
|
23277
|
+
for(var i = curveBindings.length - 1; i >= 0; i--){
|
|
23278
|
+
var layerOwner = curveLayerOwner[i];
|
|
23279
|
+
var owner = layerOwner == null ? void 0 : layerOwner.curveOwner;
|
|
23280
|
+
if (!owner) continue;
|
|
23281
|
+
var curve = curveBindings[i].curve;
|
|
23282
|
+
if (curve.keys.length) {
|
|
23283
|
+
var value = owner.evaluateValue(curve, clipTime, additive);
|
|
23284
|
+
aniUpdate && owner.applyValue(value, weight, additive);
|
|
23285
|
+
finished && layerOwner.saveFinalValue();
|
|
23286
|
+
}
|
|
23287
|
+
}
|
|
23198
23288
|
}
|
|
23199
23289
|
playData.frameTime += state.speed * delta;
|
|
23200
23290
|
if (playState === AnimatorStatePlayState.Finished) {
|
|
23201
|
-
layerData.layerState = LayerState.
|
|
23291
|
+
layerData.layerState = LayerState.Finished;
|
|
23202
23292
|
}
|
|
23293
|
+
eventHandlers.length && this._fireAnimationEvents(playData, eventHandlers, lastClipTime, clipTime);
|
|
23203
23294
|
if (lastPlayState === AnimatorStatePlayState.UnStarted) {
|
|
23204
23295
|
this._callAnimatorScriptOnEnter(state, layerIndex);
|
|
23205
23296
|
}
|
|
@@ -23210,7 +23301,7 @@ var AnimatorLayerBlendingMode;
|
|
|
23210
23301
|
}
|
|
23211
23302
|
};
|
|
23212
23303
|
_proto._updateCrossFade = function _updateCrossFade(srcPlayData, destPlayData, layerData, layerIndex, weight, delta, additive, aniUpdate) {
|
|
23213
|
-
var
|
|
23304
|
+
var crossLayerOwnerCollection = layerData.crossLayerOwnerCollection;
|
|
23214
23305
|
var _srcPlayData_state_clip = srcPlayData.state.clip, srcCurves = _srcPlayData_state_clip._curveBindings;
|
|
23215
23306
|
var srcState = srcPlayData.state, srcStateData = srcPlayData.stateData, lastSrcPlayState = srcPlayData.playState;
|
|
23216
23307
|
var srcEventHandlers = srcStateData.eventHandlers;
|
|
@@ -23219,18 +23310,27 @@ var AnimatorLayerBlendingMode;
|
|
|
23219
23310
|
var _destState_clip = destState.clip, destCurves = _destState_clip._curveBindings;
|
|
23220
23311
|
var lastSrcClipTime = srcPlayData.clipTime;
|
|
23221
23312
|
var lastDestClipTime = destPlayData.clipTime;
|
|
23222
|
-
var
|
|
23223
|
-
crossWeight
|
|
23313
|
+
var duration = destState._getDuration() * layerData.crossFadeTransition.duration;
|
|
23314
|
+
var crossWeight = Math.abs(destPlayData.frameTime) / duration;
|
|
23315
|
+
(crossWeight >= 1.0 || duration === 0) && (crossWeight = 1.0);
|
|
23224
23316
|
srcPlayData.update(this.speed < 0);
|
|
23225
23317
|
destPlayData.update(this.speed < 0);
|
|
23226
|
-
var srcPlayState = srcPlayData.playState;
|
|
23227
|
-
var destPlayState = destPlayData.playState;
|
|
23228
|
-
|
|
23229
|
-
if (
|
|
23230
|
-
|
|
23318
|
+
var srcClipTime = srcPlayData.clipTime, srcPlayState = srcPlayData.playState;
|
|
23319
|
+
var destClipTime = destPlayData.clipTime, destPlayState = destPlayData.playState;
|
|
23320
|
+
var finished = destPlayData.playState === AnimatorStatePlayState.Finished;
|
|
23321
|
+
if (aniUpdate || finished) {
|
|
23322
|
+
for(var i = crossLayerOwnerCollection.length - 1; i >= 0; i--){
|
|
23323
|
+
var layerOwner = crossLayerOwnerCollection[i];
|
|
23324
|
+
var owner = layerOwner == null ? void 0 : layerOwner.curveOwner;
|
|
23325
|
+
if (!owner) continue;
|
|
23326
|
+
var srcCurveIndex = layerOwner.crossSrcCurveIndex;
|
|
23327
|
+
var destCurveIndex = layerOwner.crossDestCurveIndex;
|
|
23328
|
+
var value = owner.evaluateCrossFadeValue(srcCurveIndex >= 0 ? srcCurves[srcCurveIndex].curve : null, destCurveIndex >= 0 ? destCurves[destCurveIndex].curve : null, srcClipTime, destClipTime, crossWeight, additive);
|
|
23329
|
+
aniUpdate && owner.applyValue(value, weight, additive);
|
|
23330
|
+
finished && layerOwner.saveFinalValue();
|
|
23331
|
+
}
|
|
23231
23332
|
}
|
|
23232
|
-
|
|
23233
|
-
var destClipTime = destPlayData.clipTime;
|
|
23333
|
+
this._updateCrossFadeData(layerData, crossWeight, delta, false);
|
|
23234
23334
|
srcEventHandlers.length && this._fireAnimationEvents(srcPlayData, srcEventHandlers, lastSrcClipTime, srcClipTime);
|
|
23235
23335
|
destEventHandlers.length && this._fireAnimationEvents(destPlayData, destEventHandlers, lastDestClipTime, destClipTime);
|
|
23236
23336
|
if (lastSrcPlayState === AnimatorStatePlayState.UnStarted) {
|
|
@@ -23249,28 +23349,34 @@ var AnimatorLayerBlendingMode;
|
|
|
23249
23349
|
} else {
|
|
23250
23350
|
this._callAnimatorScriptOnUpdate(destState, layerIndex);
|
|
23251
23351
|
}
|
|
23252
|
-
for(var i = crossCurveDataCollection.length - 1; i >= 0; i--){
|
|
23253
|
-
var crossCurveData = crossCurveDataCollection[i];
|
|
23254
|
-
var crossSrcCurveIndex = crossCurveData.crossSrcCurveIndex, crossDestCurveIndex = crossCurveData.crossDestCurveIndex;
|
|
23255
|
-
crossCurveData.crossFadeAndApplyValue(crossSrcCurveIndex >= 0 ? srcCurves[crossSrcCurveIndex].curve : null, crossDestCurveIndex >= 0 ? destCurves[crossDestCurveIndex].curve : null, srcClipTime, destClipTime, crossWeight, weight, additive);
|
|
23256
|
-
}
|
|
23257
23352
|
};
|
|
23258
|
-
_proto._updateCrossFadeFromPose = function _updateCrossFadeFromPose(destPlayData, layerData, layerIndex,
|
|
23259
|
-
var
|
|
23353
|
+
_proto._updateCrossFadeFromPose = function _updateCrossFadeFromPose(destPlayData, layerData, layerIndex, weight, delta, additive, aniUpdate) {
|
|
23354
|
+
var crossLayerOwnerCollection = layerData.crossLayerOwnerCollection;
|
|
23260
23355
|
var state = destPlayData.state, stateData = destPlayData.stateData, lastPlayState = destPlayData.playState;
|
|
23261
23356
|
var eventHandlers = stateData.eventHandlers;
|
|
23262
23357
|
var _state_clip = state.clip, curveBindings = _state_clip._curveBindings;
|
|
23263
23358
|
var lastDestClipTime = destPlayData.clipTime;
|
|
23264
|
-
var
|
|
23265
|
-
crossWeight
|
|
23359
|
+
var duration = state._getDuration() * layerData.crossFadeTransition.duration;
|
|
23360
|
+
var crossWeight = Math.abs(destPlayData.frameTime) / duration;
|
|
23361
|
+
(crossWeight >= 1.0 || duration === 0) && (crossWeight = 1.0);
|
|
23266
23362
|
destPlayData.update(this.speed < 0);
|
|
23267
23363
|
var playState = destPlayData.playState;
|
|
23268
23364
|
this._updateCrossFadeData(layerData, crossWeight, delta, true);
|
|
23269
|
-
if (!aniUpdate) {
|
|
23270
|
-
return;
|
|
23271
|
-
}
|
|
23272
23365
|
var destClipTime = destPlayData.clipTime;
|
|
23273
|
-
|
|
23366
|
+
var finished = playState === AnimatorStatePlayState.Finished;
|
|
23367
|
+
// When the animator is culled (aniUpdate=false), if the play state has finished, the final value needs to be calculated and saved to be applied directly.
|
|
23368
|
+
if (aniUpdate || finished) {
|
|
23369
|
+
for(var i = crossLayerOwnerCollection.length - 1; i >= 0; i--){
|
|
23370
|
+
var layerOwner = crossLayerOwnerCollection[i];
|
|
23371
|
+
var owner = layerOwner == null ? void 0 : layerOwner.curveOwner;
|
|
23372
|
+
if (!owner) continue;
|
|
23373
|
+
var curveIndex = layerOwner.crossDestCurveIndex;
|
|
23374
|
+
var value = layerOwner.curveOwner.crossFadeFromPoseAndApplyValue(curveIndex >= 0 ? curveBindings[curveIndex].curve : null, destClipTime, crossWeight, additive);
|
|
23375
|
+
aniUpdate && owner.applyValue(value, weight, additive);
|
|
23376
|
+
finished && layerOwner.saveFinalValue();
|
|
23377
|
+
}
|
|
23378
|
+
}
|
|
23379
|
+
//@todo: srcState is missing the judgment of the most recent period."
|
|
23274
23380
|
eventHandlers.length && this._fireAnimationEvents(destPlayData, eventHandlers, lastDestClipTime, destClipTime);
|
|
23275
23381
|
if (lastPlayState === AnimatorStatePlayState.UnStarted) {
|
|
23276
23382
|
this._callAnimatorScriptOnEnter(state, layerIndex);
|
|
@@ -23280,10 +23386,18 @@ var AnimatorLayerBlendingMode;
|
|
|
23280
23386
|
} else {
|
|
23281
23387
|
this._callAnimatorScriptOnUpdate(state, layerIndex);
|
|
23282
23388
|
}
|
|
23283
|
-
|
|
23284
|
-
|
|
23285
|
-
|
|
23286
|
-
|
|
23389
|
+
};
|
|
23390
|
+
_proto._updateFinishedState = function _updateFinishedState(playData, weight, additive, aniUpdate) {
|
|
23391
|
+
if (!aniUpdate) {
|
|
23392
|
+
return;
|
|
23393
|
+
}
|
|
23394
|
+
var curveLayerOwner = playData.stateData.curveLayerOwner;
|
|
23395
|
+
var _playData_state_clip = playData.state.clip, curveBindings = _playData_state_clip._curveBindings;
|
|
23396
|
+
for(var i = curveBindings.length - 1; i >= 0; i--){
|
|
23397
|
+
var layerOwner = curveLayerOwner[i];
|
|
23398
|
+
var owner = layerOwner == null ? void 0 : layerOwner.curveOwner;
|
|
23399
|
+
if (!owner) continue;
|
|
23400
|
+
owner.applyValue(layerOwner.finalValue, weight, additive);
|
|
23287
23401
|
}
|
|
23288
23402
|
};
|
|
23289
23403
|
_proto._updateCrossFadeData = function _updateCrossFadeData(layerData, crossWeight, delta, fixed) {
|
|
@@ -23291,7 +23405,7 @@ var AnimatorLayerBlendingMode;
|
|
|
23291
23405
|
destPlayData.frameTime += destPlayData.state.speed * delta;
|
|
23292
23406
|
if (crossWeight === 1.0) {
|
|
23293
23407
|
if (destPlayData.playState === AnimatorStatePlayState.Finished) {
|
|
23294
|
-
layerData.layerState = LayerState.
|
|
23408
|
+
layerData.layerState = LayerState.Finished;
|
|
23295
23409
|
} else {
|
|
23296
23410
|
layerData.layerState = LayerState.Playing;
|
|
23297
23411
|
}
|
|
@@ -23301,25 +23415,24 @@ var AnimatorLayerBlendingMode;
|
|
|
23301
23415
|
fixed || (layerData.srcPlayData.frameTime += layerData.srcPlayData.state.speed * delta);
|
|
23302
23416
|
}
|
|
23303
23417
|
};
|
|
23304
|
-
_proto._preparePlay = function _preparePlay(layerData, playState
|
|
23418
|
+
_proto._preparePlay = function _preparePlay(layerData, playState) {
|
|
23305
23419
|
if (layerData.layerState === LayerState.Playing) {
|
|
23306
23420
|
var srcPlayData = layerData.srcPlayData;
|
|
23307
23421
|
if (srcPlayData.state !== playState) {
|
|
23308
|
-
var
|
|
23309
|
-
for(var i =
|
|
23310
|
-
var
|
|
23311
|
-
|
|
23422
|
+
var curveLayerOwner = srcPlayData.stateData.curveLayerOwner;
|
|
23423
|
+
for(var i = curveLayerOwner.length - 1; i >= 0; i--){
|
|
23424
|
+
var _curveLayerOwner_i;
|
|
23425
|
+
var owner = (_curveLayerOwner_i = curveLayerOwner[i]) == null ? void 0 : _curveLayerOwner_i.curveOwner;
|
|
23426
|
+
owner.revertDefaultValue();
|
|
23312
23427
|
}
|
|
23313
|
-
this._saveDefaultValues(playStateData);
|
|
23314
23428
|
}
|
|
23315
23429
|
} else {
|
|
23316
|
-
// layerState is CrossFading, FixedCrossFading, Standby
|
|
23317
|
-
var
|
|
23318
|
-
for(var i1 =
|
|
23319
|
-
var owner1 =
|
|
23320
|
-
owner1.
|
|
23430
|
+
// layerState is CrossFading, FixedCrossFading, Standby, Finished
|
|
23431
|
+
var crossLayerOwnerCollection = layerData.crossLayerOwnerCollection;
|
|
23432
|
+
for(var i1 = crossLayerOwnerCollection.length - 1; i1 >= 0; i1--){
|
|
23433
|
+
var owner1 = crossLayerOwnerCollection[i1].curveOwner;
|
|
23434
|
+
owner1.revertDefaultValue();
|
|
23321
23435
|
}
|
|
23322
|
-
this._saveDefaultValues(playStateData);
|
|
23323
23436
|
}
|
|
23324
23437
|
};
|
|
23325
23438
|
_proto._checkTransition = function _checkTransition(stateData, crossFadeTransition, layerIndex) {
|
|
@@ -23336,7 +23449,7 @@ var AnimatorLayerBlendingMode;
|
|
|
23336
23449
|
_proto._crossFadeByTransition = function _crossFadeByTransition(transition, layerIndex) {
|
|
23337
23450
|
var name = transition.destinationState.name;
|
|
23338
23451
|
var stateInfo = this._getAnimatorStateInfo(name, layerIndex);
|
|
23339
|
-
var crossState = stateInfo.state;
|
|
23452
|
+
var crossState = stateInfo.state, playLayerIndex = stateInfo.layerIndex;
|
|
23340
23453
|
if (!crossState) {
|
|
23341
23454
|
return;
|
|
23342
23455
|
}
|
|
@@ -23344,21 +23457,21 @@ var AnimatorLayerBlendingMode;
|
|
|
23344
23457
|
console.warn("The state named " + name + " has no AnimationClip data.");
|
|
23345
23458
|
return;
|
|
23346
23459
|
}
|
|
23347
|
-
var animatorLayerData = this._getAnimatorLayerData(
|
|
23460
|
+
var animatorLayerData = this._getAnimatorLayerData(playLayerIndex);
|
|
23348
23461
|
var layerState = animatorLayerData.layerState;
|
|
23349
23462
|
var destPlayData = animatorLayerData.destPlayData;
|
|
23350
|
-
var animatorStateData = this._getAnimatorStateData(name, crossState, animatorLayerData);
|
|
23463
|
+
var animatorStateData = this._getAnimatorStateData(name, crossState, animatorLayerData, playLayerIndex);
|
|
23351
23464
|
var duration = crossState._getDuration();
|
|
23352
23465
|
var offset = duration * transition.offset;
|
|
23353
23466
|
destPlayData.reset(crossState, animatorStateData, offset);
|
|
23354
23467
|
switch(layerState){
|
|
23355
|
-
// Maybe not play, maybe end.
|
|
23356
23468
|
case LayerState.Standby:
|
|
23357
23469
|
animatorLayerData.layerState = LayerState.FixedCrossFading;
|
|
23358
23470
|
this._clearCrossData(animatorLayerData);
|
|
23359
23471
|
this._prepareStandbyCrossFading(animatorLayerData);
|
|
23360
23472
|
break;
|
|
23361
23473
|
case LayerState.Playing:
|
|
23474
|
+
case LayerState.Finished:
|
|
23362
23475
|
animatorLayerData.layerState = LayerState.CrossFading;
|
|
23363
23476
|
this._clearCrossData(animatorLayerData);
|
|
23364
23477
|
this._prepareCrossFading(animatorLayerData);
|
|
@@ -23455,6 +23568,12 @@ var AnimatorLayerBlendingMode;
|
|
|
23455
23568
|
}
|
|
23456
23569
|
}
|
|
23457
23570
|
};
|
|
23571
|
+
_proto._revertCurveOwners = function _revertCurveOwners() {
|
|
23572
|
+
var curveOwners = this._needRevertCurveOwners;
|
|
23573
|
+
for(var i = 0, n = curveOwners.length; i < n; ++i){
|
|
23574
|
+
curveOwners[i].revertDefaultValue();
|
|
23575
|
+
}
|
|
23576
|
+
};
|
|
23458
23577
|
_create_class(Animator, [
|
|
23459
23578
|
{
|
|
23460
23579
|
key: "animatorController",
|
|
@@ -23486,10 +23605,10 @@ __decorate([
|
|
|
23486
23605
|
], Animator.prototype, "_animatorLayersData", void 0);
|
|
23487
23606
|
__decorate([
|
|
23488
23607
|
ignoreClone
|
|
23489
|
-
], Animator.prototype, "
|
|
23608
|
+
], Animator.prototype, "_curveOwnerPool", void 0);
|
|
23490
23609
|
__decorate([
|
|
23491
23610
|
ignoreClone
|
|
23492
|
-
], Animator.prototype, "
|
|
23611
|
+
], Animator.prototype, "_needRevertCurveOwners", void 0);
|
|
23493
23612
|
__decorate([
|
|
23494
23613
|
ignoreClone
|
|
23495
23614
|
], Animator.prototype, "_animationEventHandlerPool", void 0);
|