@galacean/effects-core 2.5.0-alpha.6 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.5.0-alpha.6
6
+ * Version: v2.5.1
7
7
  */
8
8
 
9
9
  'use strict';
@@ -14170,40 +14170,60 @@ var BezierQuat = /*#__PURE__*/ function() {
14170
14170
  return BezierQuat;
14171
14171
  }();
14172
14172
  var BezierEasing = /*#__PURE__*/ function() {
14173
- function BezierEasing(mX1, mY1, mX2, mY2) {
14174
- this.mX1 = mX1;
14175
- this.mY1 = mY1;
14176
- this.mX2 = mX2;
14177
- this.mY2 = mY2;
14173
+ function BezierEasing(control1YOrControl1X, control2YOrControl1Y, control2X, control2Y) {
14178
14174
  this.precomputed = false;
14175
+ this.control1 = new Vector2();
14176
+ this.control2 = new Vector2();
14177
+ this.weighted = false;
14178
+ this.isConstant = false;
14179
14179
  this.mSampleValues = new Array(kSplineTableSize);
14180
+ if (control1YOrControl1X !== undefined && control2YOrControl1Y !== undefined && control2X !== undefined && control2Y !== undefined) {
14181
+ this.control1.x = control1YOrControl1X;
14182
+ this.control1.y = control2YOrControl1Y;
14183
+ this.control2.x = control2X;
14184
+ this.control2.y = control2Y;
14185
+ this.weighted = true;
14186
+ } else if (control1YOrControl1X !== undefined && control2YOrControl1Y !== undefined) {
14187
+ this.control1.x = 1 / 3;
14188
+ this.control1.y = control1YOrControl1X;
14189
+ this.control2.x = 2 / 3;
14190
+ this.control2.y = control2YOrControl1Y;
14191
+ } else {
14192
+ this.isConstant = true;
14193
+ }
14180
14194
  }
14181
14195
  var _proto = BezierEasing.prototype;
14182
- _proto.precompute = function precompute() {
14183
- this.precomputed = true;
14184
- if (this.mX1 !== this.mY1 || this.mX2 !== this.mY2) {
14185
- this.calcSampleValues();
14186
- }
14187
- };
14188
14196
  _proto.getValue = function getValue(x) {
14189
- if (this.mX1 === this.mY1 && this.mX2 === this.mY2) {
14190
- return x;
14191
- }
14192
- if (isNaN(this.mY1) || isNaN(this.mY2)) {
14197
+ if (this.isConstant) {
14193
14198
  return 0;
14194
14199
  }
14200
+ if (this.control1.x === this.control1.y && this.control2.x === this.control2.y) {
14201
+ return x;
14202
+ }
14195
14203
  if (x === 0 || x === 1) {
14196
14204
  return x;
14197
14205
  }
14206
+ if (!this.weighted) {
14207
+ return this.bezierInterpolate(0, this.control1.y, this.control2.y, 1, x);
14208
+ }
14198
14209
  if (!this.precomputed) {
14199
14210
  this.precompute();
14200
14211
  }
14201
- var value = calcBezier(this.getTForX(x), this.mY1, this.mY2);
14212
+ var value = calcBezier(this.getTForX(x), this.control1.y, this.control2.y);
14202
14213
  return value;
14203
14214
  };
14215
+ _proto.bezierInterpolate = function bezierInterpolate(pStart, pControl1, pControl2, pEnd, t) {
14216
+ // Formula from Wikipedia article on Bezier curves
14217
+ var omt = 1.0 - t;
14218
+ var omt2 = omt * omt;
14219
+ var omt3 = omt2 * omt;
14220
+ var t2 = t * t;
14221
+ var t3 = t2 * t;
14222
+ return pStart * omt3 + pControl1 * omt2 * t * 3.0 + pControl2 * omt * t2 * 3.0 + pEnd * t3;
14223
+ };
14204
14224
  _proto.calcSampleValues = function calcSampleValues() {
14205
14225
  for(var i = 0; i < kSplineTableSize; ++i){
14206
- this.mSampleValues[i] = calcBezier(i * kSampleStepSize, this.mX1, this.mX2);
14226
+ this.mSampleValues[i] = calcBezier(i * kSampleStepSize, this.control1.x, this.control2.x);
14207
14227
  }
14208
14228
  };
14209
14229
  _proto.getTForX = function getTForX(aX) {
@@ -14216,14 +14236,20 @@ var BezierEasing = /*#__PURE__*/ function() {
14216
14236
  // Interpolate to provide an initial guess for t
14217
14237
  var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);
14218
14238
  var guessForT = intervalStart + dist * kSampleStepSize;
14219
- var initialSlope = getSlope(guessForT, this.mX1, this.mX2);
14239
+ var initialSlope = getSlope(guessForT, this.control1.x, this.control2.x);
14220
14240
  if (initialSlope >= NEWTON_MIN_SLOPE) {
14221
- return newtonRaphsonIterate(aX, guessForT, this.mX1, this.mX2);
14241
+ return newtonRaphsonIterate(aX, guessForT, this.control1.x, this.control2.x);
14222
14242
  }
14223
14243
  if (initialSlope === 0.0) {
14224
14244
  return guessForT;
14225
14245
  }
14226
- return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, this.mX1, this.mX2);
14246
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, this.control1.x, this.control2.x);
14247
+ };
14248
+ _proto.precompute = function precompute() {
14249
+ this.precomputed = true;
14250
+ if (this.control1.x !== this.control1.y || this.control2.x !== this.control2.y) {
14251
+ this.calcSampleValues();
14252
+ }
14227
14253
  };
14228
14254
  return BezierEasing;
14229
14255
  }();
@@ -14782,148 +14808,6 @@ var LineSegments = /*#__PURE__*/ function(ValueGetter) {
14782
14808
  };
14783
14809
  return LineSegments;
14784
14810
  }(ValueGetter);
14785
- var BezierCurve = /*#__PURE__*/ function(ValueGetter) {
14786
- _inherits(BezierCurve, ValueGetter);
14787
- function BezierCurve() {
14788
- return ValueGetter.apply(this, arguments);
14789
- }
14790
- var _proto = BezierCurve.prototype;
14791
- _proto.onCreate = function onCreate(props) {
14792
- var keyframes = props;
14793
- this.curveMap = {};
14794
- this.keys = [];
14795
- for(var i = 0; i < keyframes.length - 1; i++){
14796
- var leftKeyframe = keyframes[i];
14797
- var rightKeyframe = keyframes[i + 1];
14798
- var _buildEasingCurve = buildEasingCurve(leftKeyframe, rightKeyframe), points = _buildEasingCurve.points, curve = _buildEasingCurve.curve, timeInterval = _buildEasingCurve.timeInterval, valueInterval = _buildEasingCurve.valueInterval;
14799
- var s = points[0];
14800
- var e = points[points.length - 1];
14801
- this.keys.push([].concat(s.toArray(), points[1].toArray()));
14802
- this.keys.push([].concat(e.toArray(), points[2].toArray()));
14803
- this.curveMap[s.x + "&" + e.x] = {
14804
- points: points,
14805
- timeInterval: timeInterval,
14806
- valueInterval: valueInterval,
14807
- curve: curve,
14808
- timeStart: Number(s.x),
14809
- timeEnd: Number(e.x)
14810
- };
14811
- }
14812
- this.startKeyframe = keyframes[0];
14813
- this.endKeyframe = keyframes[keyframes.length - 1];
14814
- this.keyTimeData = Object.keys(this.curveMap);
14815
- };
14816
- _proto.getValue = function getValue(time) {
14817
- var result = 0;
14818
- var keyTimeData = this.keyTimeData;
14819
- var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
14820
- var keyTimeEnd = this.curveMap[keyTimeData[keyTimeData.length - 1]].timeEnd;
14821
- if (time <= keyTimeStart) {
14822
- keyframeInfo.getPointIndexInCurve(this.startKeyframe, keyframeInfo.pointIndexCache);
14823
- return this.startKeyframe[1][keyframeInfo.pointIndexCache.yIndex];
14824
- }
14825
- if (time >= keyTimeEnd) {
14826
- keyframeInfo.getPointIndexInCurve(this.endKeyframe, keyframeInfo.pointIndexCache);
14827
- return this.endKeyframe[1][keyframeInfo.pointIndexCache.yIndex];
14828
- }
14829
- for(var i = 0; i < keyTimeData.length; i++){
14830
- var xMin = this.curveMap[keyTimeData[i]].timeStart;
14831
- var xMax = this.curveMap[keyTimeData[i]].timeEnd;
14832
- // const [xMin, xMax] = keyTimeData[i].split('&');
14833
- if (time >= Number(xMin) && time < Number(xMax)) {
14834
- result = this.getCurveValue(keyTimeData[i], time);
14835
- break;
14836
- }
14837
- }
14838
- return result;
14839
- };
14840
- _proto.getIntegrateValue = function getIntegrateValue(t0, t1, ts) {
14841
- if (ts === void 0) ts = 1;
14842
- var time = (t1 - t0) / ts;
14843
- var result = 0;
14844
- var keyTimeData = Object.keys(this.curveMap);
14845
- var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
14846
- if (time <= keyTimeStart) {
14847
- return 0;
14848
- }
14849
- for(var i = 0; i < keyTimeData.length; i++){
14850
- var xMin = this.curveMap[keyTimeData[i]].timeStart;
14851
- var xMax = this.curveMap[keyTimeData[i]].timeEnd;
14852
- if (time >= Number(xMax)) {
14853
- result += ts * this.getCurveIntegrateValue(keyTimeData[i], Number(xMax));
14854
- }
14855
- if (time >= Number(xMin) && time < Number(xMax)) {
14856
- result += ts * this.getCurveIntegrateValue(keyTimeData[i], time);
14857
- break;
14858
- }
14859
- }
14860
- return result;
14861
- };
14862
- _proto.getIntegrateByTime = function getIntegrateByTime(t0, t1) {
14863
- return this.getIntegrateValue(0, t1) - this.getIntegrateValue(0, t0);
14864
- };
14865
- // 速度变化曲线面板移除后下线
14866
- _proto.getCurveIntegrateValue = function getCurveIntegrateValue(curveKey, time) {
14867
- var curveInfo = this.curveMap[curveKey];
14868
- var _curveInfo_points = curveInfo.points, p0 = _curveInfo_points[0];
14869
- var timeInterval = curveInfo.timeInterval;
14870
- var valueInterval = curveInfo.valueInterval;
14871
- var segments = 20;
14872
- var total = 0;
14873
- var h = (time - p0.x) / segments;
14874
- for(var i = 0; i <= segments; i++){
14875
- var t = i * h;
14876
- var normalizeTime = t / timeInterval;
14877
- var y = p0.y + valueInterval * curveInfo.curve.getValue(normalizeTime);
14878
- if (i === 0 || i === segments) {
14879
- total += y;
14880
- } else if (i % 2 === 1) {
14881
- total += 4 * y;
14882
- } else {
14883
- total += 2 * y;
14884
- }
14885
- }
14886
- total *= h / 3;
14887
- return total;
14888
- };
14889
- _proto.getCurveValue = function getCurveValue(curveKey, time) {
14890
- var curveInfo = this.curveMap[curveKey];
14891
- var _curveInfo_points = curveInfo.points, p0 = _curveInfo_points[0];
14892
- var timeInterval = curveInfo.timeInterval;
14893
- var valueInterval = curveInfo.valueInterval;
14894
- var normalizeTime = (time - p0.x) / timeInterval;
14895
- var value = curveInfo.curve.getValue(normalizeTime);
14896
- return p0.y + valueInterval * value;
14897
- };
14898
- _proto.toUniform = function toUniform(meta) {
14899
- var index = meta.index;
14900
- var count = this.keys.length;
14901
- meta.curves.push(this);
14902
- meta.index = index + count;
14903
- // 兼容 WebGL1
14904
- meta.max = Math.max(meta.max, count);
14905
- meta.curveCount += count;
14906
- return new Float32Array([
14907
- 5,
14908
- index + 1 / count,
14909
- index,
14910
- count
14911
- ]);
14912
- };
14913
- _proto.toData = function toData() {
14914
- var keys = this.keys;
14915
- var data = new Float32Array(keys.length * 4);
14916
- for(var i = 0, cursor = 0; i < keys.length; i++, cursor += 4){
14917
- data.set(keys[i], cursor);
14918
- }
14919
- return data;
14920
- };
14921
- _proto.getMaxTime = function getMaxTime() {
14922
- var keyTimeData = this.keyTimeData;
14923
- return this.curveMap[keyTimeData[keyTimeData.length - 1]].timeEnd;
14924
- };
14925
- return BezierCurve;
14926
- }(ValueGetter);
14927
14811
  var PathSegments = /*#__PURE__*/ function(ValueGetter) {
14928
14812
  _inherits(PathSegments, ValueGetter);
14929
14813
  function PathSegments() {
@@ -15277,6 +15161,292 @@ var Vector2Curve = /*#__PURE__*/ function(ValueGetter) {
15277
15161
  return Vector2Curve;
15278
15162
  }(ValueGetter);
15279
15163
 
15164
+ exports.TangentMode = void 0;
15165
+ (function(TangentMode) {
15166
+ TangentMode[TangentMode["Cubic"] = 0] = "Cubic";
15167
+ TangentMode[TangentMode["Linear"] = 1] = "Linear";
15168
+ TangentMode[TangentMode["Constant"] = 2] = "Constant";
15169
+ })(exports.TangentMode || (exports.TangentMode = {}));
15170
+ exports.WeightedMode = void 0;
15171
+ (function(WeightedMode) {
15172
+ WeightedMode[WeightedMode["None"] = 0] = "None";
15173
+ WeightedMode[WeightedMode["In"] = 1] = "In";
15174
+ WeightedMode[WeightedMode["Out"] = 2] = "Out";
15175
+ WeightedMode[WeightedMode["Both"] = 3] = "Both";
15176
+ })(exports.WeightedMode || (exports.WeightedMode = {}));
15177
+ var BezierCurve = /*#__PURE__*/ function(ValueGetter) {
15178
+ _inherits(BezierCurve, ValueGetter);
15179
+ function BezierCurve() {
15180
+ return ValueGetter.apply(this, arguments);
15181
+ }
15182
+ var _proto = BezierCurve.prototype;
15183
+ _proto.onCreate = function onCreate(props) {
15184
+ this.keyFrames = props;
15185
+ var keyframes = this.keyFrames;
15186
+ this.curveMap = {};
15187
+ this.keys = [];
15188
+ this.curveInfos = [];
15189
+ for(var i = 0; i < keyframes.length - 1; i++){
15190
+ var leftKeyframe = keyframes[i];
15191
+ var rightKeyframe = keyframes[i + 1];
15192
+ var _buildBezierEasing = buildBezierEasing(leftKeyframe, rightKeyframe), points = _buildBezierEasing.points, curve = _buildBezierEasing.curve, timeInterval = _buildBezierEasing.timeInterval, valueInterval = _buildBezierEasing.valueInterval;
15193
+ var s = points[0];
15194
+ var e = points[points.length - 1];
15195
+ this.keys.push([].concat(s.toArray(), points[1].toArray()));
15196
+ this.keys.push([].concat(e.toArray(), points[2].toArray()));
15197
+ var curveInfo = {
15198
+ points: points,
15199
+ timeInterval: timeInterval,
15200
+ valueInterval: valueInterval,
15201
+ curve: curve,
15202
+ timeStart: Number(s.x),
15203
+ timeEnd: Number(e.x)
15204
+ };
15205
+ this.curveMap[s.x + "&" + e.x] = curveInfo;
15206
+ this.curveInfos.push(curveInfo);
15207
+ }
15208
+ };
15209
+ _proto.getValue = function getValue(time) {
15210
+ var result = 0;
15211
+ var keysNumber = this.keyFrames.length;
15212
+ if (time <= this.keyFrames[0].time) {
15213
+ result = this.keyFrames[0].value;
15214
+ } else if (time < this.keyFrames[keysNumber - 1].time) {
15215
+ for(var i = 0; i < this.keyFrames.length - 1; i++){
15216
+ var xMin = this.keyFrames[i].time;
15217
+ var xMax = this.keyFrames[i + 1].time;
15218
+ if (time >= xMin && time < xMax) {
15219
+ var curveInfo = this.curveInfos[i];
15220
+ var p0 = curveInfo.points[0];
15221
+ var timeInterval = curveInfo.timeInterval;
15222
+ var valueInterval = curveInfo.valueInterval;
15223
+ var normalizeTime = (time - p0.x) / timeInterval;
15224
+ var value = curveInfo.curve.getValue(normalizeTime);
15225
+ result = p0.y + valueInterval * value;
15226
+ break;
15227
+ }
15228
+ }
15229
+ } else if (time >= this.keyFrames[keysNumber - 1].time) {
15230
+ result = this.keyFrames[keysNumber - 1].value;
15231
+ }
15232
+ return result;
15233
+ };
15234
+ _proto.getIntegrateValue = function getIntegrateValue(t0, t1, ts) {
15235
+ if (ts === void 0) ts = 1;
15236
+ var time = (t1 - t0) / ts;
15237
+ var result = 0;
15238
+ var keyTimeData = Object.keys(this.curveMap);
15239
+ var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
15240
+ if (time <= keyTimeStart) {
15241
+ return 0;
15242
+ }
15243
+ for(var i = 0; i < keyTimeData.length; i++){
15244
+ var xMin = this.curveMap[keyTimeData[i]].timeStart;
15245
+ var xMax = this.curveMap[keyTimeData[i]].timeEnd;
15246
+ if (time >= Number(xMax)) {
15247
+ result += ts * this.getCurveIntegrateValue(keyTimeData[i], Number(xMax));
15248
+ }
15249
+ if (time >= Number(xMin) && time < Number(xMax)) {
15250
+ result += ts * this.getCurveIntegrateValue(keyTimeData[i], time);
15251
+ break;
15252
+ }
15253
+ }
15254
+ return result;
15255
+ };
15256
+ _proto.getIntegrateByTime = function getIntegrateByTime(t0, t1) {
15257
+ return this.getIntegrateValue(0, t1) - this.getIntegrateValue(0, t0);
15258
+ };
15259
+ // 速度变化曲线面板移除后下线
15260
+ _proto.getCurveIntegrateValue = function getCurveIntegrateValue(curveKey, time) {
15261
+ var curveInfo = this.curveMap[curveKey];
15262
+ var _curveInfo_points = curveInfo.points, p0 = _curveInfo_points[0];
15263
+ var timeInterval = curveInfo.timeInterval;
15264
+ var valueInterval = curveInfo.valueInterval;
15265
+ var segments = 20;
15266
+ var total = 0;
15267
+ var h = (time - p0.x) / segments;
15268
+ for(var i = 0; i <= segments; i++){
15269
+ var t = i * h;
15270
+ var normalizeTime = t / timeInterval;
15271
+ var y = p0.y + valueInterval * curveInfo.curve.getValue(normalizeTime);
15272
+ if (i === 0 || i === segments) {
15273
+ total += y;
15274
+ } else if (i % 2 === 1) {
15275
+ total += 4 * y;
15276
+ } else {
15277
+ total += 2 * y;
15278
+ }
15279
+ }
15280
+ total *= h / 3;
15281
+ return total;
15282
+ };
15283
+ _proto.toUniform = function toUniform(meta) {
15284
+ var index = meta.index;
15285
+ var count = this.keys.length;
15286
+ meta.curves.push(this);
15287
+ meta.index = index + count;
15288
+ // 兼容 WebGL1
15289
+ meta.max = Math.max(meta.max, count);
15290
+ meta.curveCount += count;
15291
+ return new Float32Array([
15292
+ 5,
15293
+ index + 1 / count,
15294
+ index,
15295
+ count
15296
+ ]);
15297
+ };
15298
+ _proto.toData = function toData() {
15299
+ var keys = this.keys;
15300
+ var data = new Float32Array(keys.length * 4);
15301
+ for(var i = 0, cursor = 0; i < keys.length; i++, cursor += 4){
15302
+ data.set(keys[i], cursor);
15303
+ }
15304
+ return data;
15305
+ };
15306
+ _proto.getMaxTime = function getMaxTime() {
15307
+ return this.keyFrames[this.keyFrames.length - 1].time;
15308
+ };
15309
+ return BezierCurve;
15310
+ }(ValueGetter);
15311
+ function buildBezierEasing(leftKeyframe, rightKeyframe) {
15312
+ var p0 = new Vector2(leftKeyframe.time, leftKeyframe.value);
15313
+ var p1 = new Vector2();
15314
+ var p2 = new Vector2();
15315
+ var p3 = new Vector2();
15316
+ var isWeighted = leftKeyframe.weightedMode === 2 || leftKeyframe.weightedMode === 3 || rightKeyframe.weightedMode === 1 || rightKeyframe.weightedMode === 3;
15317
+ var isConstant = leftKeyframe.tangentMode === 2;
15318
+ var rightDeltaX = (isWeighted ? leftKeyframe.outWeight : 1) * (rightKeyframe.time - leftKeyframe.time) / 3;
15319
+ p1.x = leftKeyframe.time + rightDeltaX;
15320
+ p1.y = leftKeyframe.value + rightDeltaX * (isConstant ? 0 : leftKeyframe.outSlope);
15321
+ var leftDeltaX = (isWeighted ? rightKeyframe.inWeight : 1) * (rightKeyframe.time - leftKeyframe.time) / 3;
15322
+ p2.x = rightKeyframe.time - leftDeltaX;
15323
+ p2.y = rightKeyframe.value - leftDeltaX * (isConstant ? 0 : rightKeyframe.inSlope);
15324
+ p3.x = rightKeyframe.time;
15325
+ p3.y = isConstant ? leftKeyframe.value : rightKeyframe.value;
15326
+ assertExist(p2);
15327
+ assertExist(p3);
15328
+ var timeInterval = p3.x - p0.x;
15329
+ var valueInterval = p3.y - p0.y;
15330
+ var y1, y2;
15331
+ var x1 = numberToFix((p1.x - p0.x) / timeInterval, 5);
15332
+ var x2 = numberToFix((p2.x - p0.x) / timeInterval, 5);
15333
+ if (decimalEqual(valueInterval, 0)) {
15334
+ y1 = y2 = NaN;
15335
+ } else {
15336
+ y1 = numberToFix((p1.y - p0.y) / valueInterval, 5);
15337
+ y2 = numberToFix((p2.y - p0.y) / valueInterval, 5);
15338
+ }
15339
+ if (x1 < 0) {
15340
+ console.error("Invalid bezier points, x1 < 0", p0, p1, p2, p3);
15341
+ x1 = 0;
15342
+ }
15343
+ if (x2 < 0) {
15344
+ console.error("Invalid bezier points, x2 < 0", p0, p1, p2, p3);
15345
+ x2 = 0;
15346
+ }
15347
+ if (x1 > 1) {
15348
+ console.error("Invalid bezier points, x1 >= 1", p0, p1, p2, p3);
15349
+ x1 = 1;
15350
+ }
15351
+ if (x2 > 1) {
15352
+ console.error("Invalid bezier points, x2 >= 1", p0, p1, p2, p3);
15353
+ x2 = 1;
15354
+ }
15355
+ var str = ("bez_" + x1 + "_" + y1 + "_" + x2 + "_" + y2).replace(/\./g, "p");
15356
+ var bezEasing;
15357
+ if (BezierMap[str]) {
15358
+ bezEasing = BezierMap[str];
15359
+ } else {
15360
+ if (decimalEqual(valueInterval, 0)) {
15361
+ bezEasing = new BezierEasing();
15362
+ } else if (isWeighted) {
15363
+ bezEasing = new BezierEasing(x1, y1, x2, y2);
15364
+ } else {
15365
+ bezEasing = new BezierEasing(y1, y2);
15366
+ }
15367
+ BezierMap[str] = bezEasing;
15368
+ }
15369
+ return {
15370
+ points: [
15371
+ p0,
15372
+ p1,
15373
+ p2,
15374
+ p3
15375
+ ],
15376
+ timeInterval: timeInterval,
15377
+ valueInterval: valueInterval,
15378
+ curve: bezEasing
15379
+ };
15380
+ }
15381
+ function oldBezierKeyFramesToNew(props) {
15382
+ var oldKeyframes = props;
15383
+ var keyframes = [];
15384
+ var keyDatas = [];
15385
+ var lastControl = {
15386
+ x: 0,
15387
+ y: 0
15388
+ };
15389
+ for(var i = 0; i < oldKeyframes.length - 1; i++){
15390
+ var leftKeyframe = oldKeyframes[i];
15391
+ var rightKeyframe = oldKeyframes[i + 1];
15392
+ var _getControlPoints = getControlPoints(leftKeyframe, rightKeyframe, true), p0 = _getControlPoints.p0, p1 = _getControlPoints.p1, p2 = _getControlPoints.p2, p3 = _getControlPoints.p3;
15393
+ assertExist(p2);
15394
+ assertExist(p3);
15395
+ var keyData = {
15396
+ leftControl: lastControl,
15397
+ value: p0,
15398
+ rightControl: p1,
15399
+ tangentMode: 0
15400
+ };
15401
+ if (leftKeyframe[0] === BezierKeyframeType.HOLD) {
15402
+ keyData.tangentMode = 2;
15403
+ }
15404
+ keyDatas.push(keyData);
15405
+ lastControl = p2;
15406
+ if (i === oldKeyframes.length - 2) {
15407
+ var res = getControlPoints(rightKeyframe, rightKeyframe, true);
15408
+ assertExist(res.p3);
15409
+ keyDatas.push({
15410
+ leftControl: p2,
15411
+ value: res.p3,
15412
+ rightControl: {
15413
+ x: 0,
15414
+ y: 0
15415
+ },
15416
+ tangentMode: rightKeyframe[0] === BezierKeyframeType.HOLD ? 2 : 0
15417
+ });
15418
+ }
15419
+ }
15420
+ var calculateSlop = function(p0, p1) {
15421
+ return (p1.y - p0.y) / (p1.x - p0.x + NumberEpsilon);
15422
+ };
15423
+ for(var i1 = 0; i1 < keyDatas.length; i1++){
15424
+ var leftControl = keyDatas[i1].leftControl;
15425
+ var value = keyDatas[i1].value;
15426
+ var rightControl = keyDatas[i1].rightControl;
15427
+ var outSlop = calculateSlop(value, rightControl);
15428
+ var inSlop = calculateSlop(leftControl, value);
15429
+ var keyframe = {
15430
+ time: value.x,
15431
+ value: value.y,
15432
+ inSlope: inSlop,
15433
+ outSlope: outSlop,
15434
+ inWeight: 0,
15435
+ outWeight: 0,
15436
+ tangentMode: keyDatas[i1].tangentMode,
15437
+ weightedMode: 3
15438
+ };
15439
+ keyframes.push(keyframe);
15440
+ if (i1 > 0) {
15441
+ keyframe.inWeight = (value.x - leftControl.x) / ((value.x - keyDatas[i1 - 1].value.x) / 3);
15442
+ }
15443
+ if (i1 + 1 < keyDatas.length) {
15444
+ keyframe.outWeight = (rightControl.x - value.x) / ((keyDatas[i1 + 1].value.x - value.x) / 3);
15445
+ }
15446
+ }
15447
+ return keyframes;
15448
+ }
15449
+
15280
15450
  var _obj$2;
15281
15451
  var map = (_obj$2 = {}, _obj$2[ValueType.RANDOM] = function(props) {
15282
15452
  if (_instanceof1(props[0], Array)) {
@@ -15313,7 +15483,8 @@ var map = (_obj$2 = {}, _obj$2[ValueType.RANDOM] = function(props) {
15313
15483
  if (props.length === 1) {
15314
15484
  return new StaticValue(props[0][1][1]);
15315
15485
  }
15316
- return new BezierCurve(props);
15486
+ // TODO: Move to migration.
15487
+ return new BezierCurve(oldBezierKeyFramesToNew(props));
15317
15488
  }, _obj$2[ValueType.BEZIER_CURVE_PATH] = function(props) {
15318
15489
  if (props[0].length === 1) {
15319
15490
  return new StaticValue(_construct(Vector3, [].concat(props[1][0])));
@@ -26212,6 +26383,10 @@ var TextComponentBase = /*#__PURE__*/ function() {
26212
26383
  var width = this.textLayout.width + this.textStyle.fontOffset;
26213
26384
  var lineCount = 1;
26214
26385
  var x = 0;
26386
+ //设置context.font的字号
26387
+ // if (context) {
26388
+ // context.font = this.getFontDesc(this.textStyle.fontSize);
26389
+ // }
26215
26390
  for(var i = 0; i < text.length; i++){
26216
26391
  var _context_measureText;
26217
26392
  var str = text[i];
@@ -28400,7 +28575,7 @@ function getStandardSpriteContent(sprite, transform) {
28400
28575
  return ret;
28401
28576
  }
28402
28577
 
28403
- var version$1 = "2.5.0-alpha.6";
28578
+ var version$1 = "2.5.1";
28404
28579
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
28405
28580
  var standardVersion = /^(\d+)\.(\d+)$/;
28406
28581
  var reverseParticle = false;
@@ -31650,7 +31825,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
31650
31825
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
31651
31826
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
31652
31827
  registerPlugin("interact", InteractLoader, exports.VFXItem);
31653
- var version = "2.5.0-alpha.6";
31828
+ var version = "2.5.1";
31654
31829
  logger.info("Core version: " + version + ".");
31655
31830
 
31656
31831
  exports.AbstractPlugin = AbstractPlugin;
@@ -31868,6 +32043,7 @@ exports.nearestPowerOfTwo = nearestPowerOfTwo;
31868
32043
  exports.noop = noop;
31869
32044
  exports.normalizeColor = normalizeColor;
31870
32045
  exports.numberToFix = numberToFix;
32046
+ exports.oldBezierKeyFramesToNew = oldBezierKeyFramesToNew;
31871
32047
  exports.parsePercent = parsePercent$1;
31872
32048
  exports.particleFrag = particleFrag;
31873
32049
  exports.particleOriginTranslateMap = particleOriginTranslateMap$1;