@galacean/effects-threejs 2.6.0-alpha.0 → 2.6.0-beta.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/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime threejs plugin for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.6.0-alpha.0
6
+ * Version: v2.6.0-beta.0
7
7
  */
8
8
 
9
9
  'use strict';
@@ -1749,6 +1749,7 @@ var NodeDataType;
1749
1749
  NodeDataType["AnimationClipNodeData"] = "AnimationClipNodeData";
1750
1750
  NodeDataType["BlendNodeData"] = "BlendNodeData";
1751
1751
  NodeDataType["ApplyAdditiveNodeData"] = "ApplyAdditiveNodeData";
1752
+ NodeDataType["LayerBlendNodeData"] = "LayerBlendNodeData";
1752
1753
  NodeDataType["StateMachineNodeData"] = "StateMachineNodeData";
1753
1754
  NodeDataType["TransitionNodeData"] = "TransitionNodeData";
1754
1755
  NodeDataType["StateNodeData"] = "StateNodeData";
@@ -4215,6 +4216,17 @@ var Pose = /*#__PURE__*/ function() {
4215
4216
  this.floatPropertyValues[animatedObjectIndex] = value;
4216
4217
  }
4217
4218
  };
4219
+ _proto.copyFrom = function copyFrom(pose) {
4220
+ for(var i = 0; i < this.parentSpaceTransforms.length; i++){
4221
+ this.parentSpaceTransforms[i].copyFrom(pose.parentSpaceTransforms[i]);
4222
+ }
4223
+ for(var i1 = 0; i1 < this.colorPropertyValues.length; i1++){
4224
+ this.colorPropertyValues[i1].copyFrom(pose.colorPropertyValues[i1]);
4225
+ }
4226
+ for(var i2 = 0; i2 < this.floatPropertyValues.length; i2++){
4227
+ this.floatPropertyValues[i2] = pose.floatPropertyValues[i2];
4228
+ }
4229
+ };
4218
4230
  return Pose;
4219
4231
  }();
4220
4232
 
@@ -4754,6 +4766,109 @@ var ControlParameterTriggerNode = /*#__PURE__*/ function(BoolValueNode) {
4754
4766
  return ControlParameterTriggerNode;
4755
4767
  }(BoolValueNode);
4756
4768
 
4769
+ exports.LayerBlendNodeData = /*#__PURE__*/ function(GraphNodeData) {
4770
+ _inherits(LayerBlendNodeData, GraphNodeData);
4771
+ function LayerBlendNodeData() {
4772
+ var _this;
4773
+ _this = GraphNodeData.apply(this, arguments) || this;
4774
+ _this.baseNodeIndex = InvalidIndex;
4775
+ _this.layerDatas = [];
4776
+ return _this;
4777
+ }
4778
+ var _proto = LayerBlendNodeData.prototype;
4779
+ _proto.instantiate = function instantiate(context) {
4780
+ var node = this.createNode(LayerBlendNode, context);
4781
+ node.baseLayerNode = context.getNode(this.baseNodeIndex);
4782
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.layerDatas), _step; !(_step = _iterator()).done;){
4783
+ var layerData = _step.value;
4784
+ node.layers.push({
4785
+ inputNode: context.getNode(layerData.inputNodeIndex),
4786
+ weightValueNode: context.getNode(layerData.weightValueNodeIndex),
4787
+ weight: 0
4788
+ });
4789
+ }
4790
+ };
4791
+ _proto.load = function load(data) {
4792
+ GraphNodeData.prototype.load.call(this, data);
4793
+ var _data_baseNodeIndex;
4794
+ this.baseNodeIndex = (_data_baseNodeIndex = data.baseNodeIndex) != null ? _data_baseNodeIndex : InvalidIndex;
4795
+ if (data.layerDatas) {
4796
+ for(var _iterator = _create_for_of_iterator_helper_loose(data.layerDatas), _step; !(_step = _iterator()).done;){
4797
+ var layerData = _step.value;
4798
+ this.layerDatas.push(_extends({
4799
+ inputNodeIndex: InvalidIndex,
4800
+ weightValueNodeIndex: InvalidIndex
4801
+ }, layerData));
4802
+ }
4803
+ }
4804
+ };
4805
+ return LayerBlendNodeData;
4806
+ }(GraphNodeData);
4807
+ exports.LayerBlendNodeData = __decorate([
4808
+ nodeDataClass(NodeDataType.LayerBlendNodeData)
4809
+ ], exports.LayerBlendNodeData);
4810
+ var LayerBlendNode = /*#__PURE__*/ function(PoseNode) {
4811
+ _inherits(LayerBlendNode, PoseNode);
4812
+ function LayerBlendNode() {
4813
+ var _this;
4814
+ _this = PoseNode.apply(this, arguments) || this;
4815
+ _this.baseLayerNode = null;
4816
+ _this.layers = [];
4817
+ return _this;
4818
+ }
4819
+ var _proto = LayerBlendNode.prototype;
4820
+ _proto.initializeInternal = function initializeInternal(context) {
4821
+ var //-------------------------------------------------------------------------
4822
+ _this_baseLayerNode;
4823
+ PoseNode.prototype.initializeInternal.call(this, context);
4824
+ //-------------------------------------------------------------------------
4825
+ this.layerNodeResult = new PoseResult(context.skeleton);
4826
+ (_this_baseLayerNode = this.baseLayerNode) == null ? void 0 : _this_baseLayerNode.initialize(context);
4827
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.layers), _step; !(_step = _iterator()).done;){
4828
+ var layer = _step.value;
4829
+ var _layer_inputNode, _layer_weightValueNode;
4830
+ (_layer_inputNode = layer.inputNode) == null ? void 0 : _layer_inputNode.initialize(context);
4831
+ (_layer_weightValueNode = layer.weightValueNode) == null ? void 0 : _layer_weightValueNode.initialize(context);
4832
+ }
4833
+ };
4834
+ _proto.shutdownInternal = function shutdownInternal(context) {
4835
+ var _this_baseLayerNode;
4836
+ (_this_baseLayerNode = this.baseLayerNode) == null ? void 0 : _this_baseLayerNode.shutdown(context);
4837
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.layers), _step; !(_step = _iterator()).done;){
4838
+ var layer = _step.value;
4839
+ var _layer_inputNode, _layer_weightValueNode;
4840
+ (_layer_inputNode = layer.inputNode) == null ? void 0 : _layer_inputNode.shutdown(context);
4841
+ (_layer_weightValueNode = layer.weightValueNode) == null ? void 0 : _layer_weightValueNode.shutdown(context);
4842
+ }
4843
+ PoseNode.prototype.shutdownInternal.call(this, context);
4844
+ };
4845
+ _proto.evaluate = function evaluate(context, result) {
4846
+ if (!(this.baseLayerNode && this.baseLayerNode.isValid())) {
4847
+ return result;
4848
+ }
4849
+ this.markNodeActive(context);
4850
+ this.previousTime = this.baseLayerNode.getCurrentTime();
4851
+ result = this.baseLayerNode.evaluate(context, result);
4852
+ this.currentTime = this.baseLayerNode.getCurrentTime();
4853
+ this.duration = this.baseLayerNode.getDuration();
4854
+ this.updateLayers(context, result);
4855
+ return result;
4856
+ };
4857
+ _proto.updateLayers = function updateLayers(context, result) {
4858
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.layers), _step; !(_step = _iterator()).done;){
4859
+ var layer = _step.value;
4860
+ if (layer.inputNode && layer.weightValueNode) {
4861
+ this.layerNodeResult.pose.copyFrom(result.pose);
4862
+ layer.inputNode.evaluate(context, this.layerNodeResult);
4863
+ var layerWeight = layer.weightValueNode.getValue(context);
4864
+ Blender.localBlend(result.pose, this.layerNodeResult.pose, layerWeight, result.pose);
4865
+ }
4866
+ }
4867
+ return result;
4868
+ };
4869
+ return LayerBlendNode;
4870
+ }(PoseNode);
4871
+
4757
4872
  exports.EqualNodeData = /*#__PURE__*/ function(GraphNodeData) {
4758
4873
  _inherits(EqualNodeData, GraphNodeData);
4759
4874
  function EqualNodeData() {
@@ -8208,8 +8323,8 @@ function initGLContext() {
8208
8323
  copy(WebGLRenderingContext);
8209
8324
  copy(WebGLRenderingContext.prototype);
8210
8325
  } else {
8211
- initErrors.push(// iOS 16 lockdown mode
8212
- "iOS16 lockdown mode, WebGL Constants not in global");
8326
+ initErrors.push(isIOS() ? // iOS 16 lockdown mode
8327
+ "iOS16 lockdown mode, WebGL Constants not in global" : "WebGL Constants not in global, please check your environment");
8213
8328
  }
8214
8329
  if (!initErrors.length && !("HALF_FLOAT" in glContext)) {
8215
8330
  // @ts-expect-error set default value
@@ -8818,7 +8933,9 @@ function _loadVideo() {
8818
8933
  return [
8819
8934
  2,
8820
8935
  new Promise(function(resolve, reject) {
8821
- var pending = video.play();
8936
+ var pending = video.play().catch(function(e) {
8937
+ reject(e);
8938
+ });
8822
8939
  if (pending) {
8823
8940
  void pending.then(function() {
8824
8941
  return resolve(video);
@@ -15201,8 +15318,7 @@ var singleSplits = [
15201
15318
  * 设置当前图层的颜色
15202
15319
  * @since 2.5.0
15203
15320
  */ function set(value) {
15204
- this._color = value;
15205
- this.material.setColor("_Color", this._color);
15321
+ this.setColor(value);
15206
15322
  }
15207
15323
  }
15208
15324
  ]);
@@ -16560,7 +16676,11 @@ function buildEasingCurve(leftKeyframe, rightKeyframe) {
16560
16676
  if (BezierMap[str]) {
16561
16677
  bezEasing = BezierMap[str];
16562
16678
  } else {
16563
- bezEasing = new BezierEasing(x1, y1, x2, y2);
16679
+ if (decimalEqual(valueInterval, 0)) {
16680
+ bezEasing = new BezierEasing();
16681
+ } else {
16682
+ bezEasing = new BezierEasing(x1, y1, x2, y2);
16683
+ }
16564
16684
  BezierMap[str] = bezEasing;
16565
16685
  }
16566
16686
  return {
@@ -18983,12 +19103,23 @@ var seed$4 = 1;
18983
19103
  return transformData;
18984
19104
  };
18985
19105
  _proto.fromData = function fromData(data) {
18986
- var transformData = {
18987
- position: new Vector3().copyFrom(data.position),
18988
- rotation: new Euler(data.eulerHint.x, data.eulerHint.y, data.eulerHint.z),
18989
- scale: new Vector3().copyFrom(data.scale)
18990
- };
18991
- this.setTransform(transformData);
19106
+ var transformProps = {};
19107
+ transformProps.position = new Vector3().copyFrom(data.position);
19108
+ //@ts-expect-error
19109
+ if (data.quat) {
19110
+ //@ts-expect-error
19111
+ transformProps.quat = new Quaternion(data.quat.x, data.quat.y, data.quat.z, data.quat.w);
19112
+ } else {
19113
+ transformProps.rotation = new Euler(data.eulerHint.x, data.eulerHint.y, data.eulerHint.z);
19114
+ }
19115
+ transformProps.scale = new Vector3().copyFrom(data.scale);
19116
+ if (data.size) {
19117
+ transformProps.size = new Vector2().copyFrom(data.size);
19118
+ }
19119
+ if (data.anchor) {
19120
+ transformProps.anchor = new Vector2().copyFrom(data.anchor);
19121
+ }
19122
+ this.setTransform(transformProps);
18992
19123
  };
18993
19124
  _proto.dispose = function dispose() {};
18994
19125
  _proto.updateTRSCache = function updateTRSCache() {
@@ -21408,44 +21539,6 @@ exports.ParticleSystem = /*#__PURE__*/ function(Component) {
21408
21539
  _proto.setVisible = function setVisible(visible) {
21409
21540
  this.renderer.setVisible(visible);
21410
21541
  };
21411
- _proto.setOpacity = function setOpacity(opacity) {
21412
- var _material_getVector4;
21413
- var material = this.renderer.particleMesh.mesh.material;
21414
- var geometry = this.renderer.particleMesh.mesh.geometry;
21415
- var originalColor = ((_material_getVector4 = material.getVector4("uOpacityOverLifetimeValue")) == null ? void 0 : _material_getVector4.toArray()) || [
21416
- 1,
21417
- 1,
21418
- 1,
21419
- 1
21420
- ];
21421
- material.setVector4("uOpacityOverLifetimeValue", new Vector4(originalColor[0], originalColor[1], originalColor[2], opacity));
21422
- var data = geometry.getAttributeData("aColor") || [];
21423
- for(var i = 0; i < data.length; i += 32){
21424
- data[i * 8 + 7] = opacity;
21425
- }
21426
- };
21427
- /**
21428
- * @internal
21429
- */ _proto.setColor = function setColor(r, g, b, a) {
21430
- var _material_getVector4;
21431
- var material = this.renderer.particleMesh.mesh.material;
21432
- var geometry = this.renderer.particleMesh.mesh.geometry;
21433
- var originalColor = ((_material_getVector4 = material.getVector4("uOpacityOverLifetimeValue")) == null ? void 0 : _material_getVector4.toArray()) || [
21434
- 1,
21435
- 1,
21436
- 1,
21437
- 1
21438
- ];
21439
- material.setVector4("uOpacityOverLifetimeValue", new Vector4(originalColor[0], originalColor[1], originalColor[2], a));
21440
- var data = geometry.getAttributeData("aColor") || [];
21441
- for(var i = 0; i < data.length; i += 32){
21442
- data[i * 8 + 4] = r;
21443
- data[i * 8 + 5] = g;
21444
- data[i * 8 + 6] = b;
21445
- data[i * 8 + 7] = a;
21446
- }
21447
- };
21448
- _proto.setParentTransform = function setParentTransform(transform) {};
21449
21542
  _proto.getTextures = function getTextures() {
21450
21543
  return this.renderer.getTextures();
21451
21544
  };
@@ -23773,8 +23866,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23773
23866
  /**
23774
23867
  * 是否开启后处理
23775
23868
  */ _this.postProcessingEnabled = false;
23776
- // TODO: 待优化
23777
- _this.assigned = false;
23778
23869
  /**
23779
23870
  * 销毁状态位
23780
23871
  */ _this.destroyed = false;
@@ -23842,7 +23933,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23842
23933
  aspect: width / height
23843
23934
  }));
23844
23935
  _this.url = scene.url;
23845
- _this.assigned = true;
23846
23936
  _this.interactive = true;
23847
23937
  _this.handleItemMessage = handleItemMessage;
23848
23938
  _this.createRenderFrame();
@@ -23911,6 +24001,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23911
24001
  * 暂停合成的播放
23912
24002
  */ _proto.pause = function pause() {
23913
24003
  this.paused = true;
24004
+ this.emit("pause");
23914
24005
  };
23915
24006
  /**
23916
24007
  *
@@ -23929,6 +24020,9 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23929
24020
  */ _proto.gotoAndPlay = function gotoAndPlay(time) {
23930
24021
  this.setTime(time);
23931
24022
  this.resume();
24023
+ this.emit("play", {
24024
+ time: time
24025
+ });
23932
24026
  };
23933
24027
  /**
23934
24028
  * 跳转合成到指定时间并暂停
@@ -23963,7 +24057,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23963
24057
  this.forwardTime(time + this.startTime);
23964
24058
  this.setSpeed(speed);
23965
24059
  if (pause) {
23966
- this.pause();
24060
+ this.paused = true;
23967
24061
  }
23968
24062
  this.emit("goto", {
23969
24063
  time: time
@@ -24022,7 +24116,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
24022
24116
  * 合成更新,针对所有 item 的更新
24023
24117
  * @param deltaTime - 更新的时间步长
24024
24118
  */ _proto.update = function update(deltaTime) {
24025
- if (!this.assigned || this.getPaused()) {
24119
+ if (this.getPaused()) {
24026
24120
  return;
24027
24121
  }
24028
24122
  // scene VFXItem components lifetime function.
@@ -24655,10 +24749,13 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
24655
24749
  * @param {number} b
24656
24750
  * @param {number} a
24657
24751
  * @internal
24752
+ * @deprecated 2.6.0 Please use `Component.setColor` instead
24658
24753
  */ _proto.setColor = function setColor(r, g, b, a) {};
24659
24754
  /**
24660
24755
  * 设置元素的透明度
24661
24756
  * @param opacity - 透明度值,范围 [0,1]
24757
+ * @internal
24758
+ * @deprecated 2.6.0 Please use `Component.setColor` instead
24662
24759
  */ _proto.setOpacity = function setOpacity(opacity) {};
24663
24760
  /**
24664
24761
  * 激活或停用 VFXItem
@@ -24861,27 +24958,8 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
24861
24958
  this.id = id.toString(); // TODO 老数据 id 是 number,需要转换
24862
24959
  this.name = name;
24863
24960
  this.start = delay ? delay : this.start;
24864
- var transformProps = {};
24865
24961
  if (transform) {
24866
- transformProps.position = new Vector3().copyFrom(transform.position);
24867
- // FIXME: transform.rotation待删除
24868
- //@ts-expect-error
24869
- if (transform.quat) {
24870
- //@ts-expect-error
24871
- transformProps.quat = new Quaternion(transform.quat.x, transform.quat.y, transform.quat.z, transform.quat.w);
24872
- } else {
24873
- var _transform_eulerHint;
24874
- //@ts-expect-error
24875
- transformProps.rotation = new Euler().copyFrom((_transform_eulerHint = transform.eulerHint) != null ? _transform_eulerHint : transform.rotation);
24876
- }
24877
- transformProps.scale = new Vector3().copyFrom(transform.scale);
24878
- if (transform.size) {
24879
- transformProps.size = new Vector2().copyFrom(transform.size);
24880
- }
24881
- if (transform.anchor) {
24882
- transformProps.anchor = new Vector2().copyFrom(transform.anchor);
24883
- }
24884
- this.transform.setTransform(transformProps);
24962
+ this.transform.fromData(transform);
24885
24963
  }
24886
24964
  this.transform.name = this.name;
24887
24965
  this.transform.engine = this.engine;
@@ -30990,7 +31068,7 @@ function getStandardSpriteContent(sprite, transform) {
30990
31068
  return ret;
30991
31069
  }
30992
31070
 
30993
- var version$2 = "2.6.0-alpha.0";
31071
+ var version$2 = "2.6.0-beta.0";
30994
31072
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
30995
31073
  var standardVersion = /^(\d+)\.(\d+)$/;
30996
31074
  var reverseParticle = false;
@@ -34240,7 +34318,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
34240
34318
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
34241
34319
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
34242
34320
  registerPlugin("interact", InteractLoader, exports.VFXItem);
34243
- var version$1 = "2.6.0-alpha.0";
34321
+ var version$1 = "2.6.0-beta.0";
34244
34322
  logger.info("Core version: " + version$1 + ".");
34245
34323
 
34246
34324
  var _obj;
@@ -35633,6 +35711,9 @@ var ThreeRenderer = /*#__PURE__*/ function(Renderer) {
35633
35711
  });
35634
35712
  };
35635
35713
  _proto.resume = function resume() {
35714
+ this.dispatchEvent({
35715
+ type: "resume"
35716
+ });
35636
35717
  this.compositions.forEach(function(composition) {
35637
35718
  composition.resume();
35638
35719
  });
@@ -35842,7 +35923,7 @@ setMaxSpriteMeshItemCount(8);
35842
35923
  */ Mesh.create = function(engine, props) {
35843
35924
  return new ThreeMesh(engine, props);
35844
35925
  };
35845
- var version = "2.6.0-alpha.0";
35926
+ var version = "2.6.0-beta.0";
35846
35927
  logger.info("THREEJS plugin version: " + version + ".");
35847
35928
 
35848
35929
  exports.AbstractPlugin = AbstractPlugin;
@@ -35918,6 +35999,7 @@ exports.InteractLoader = InteractLoader;
35918
35999
  exports.InteractMesh = InteractMesh;
35919
36000
  exports.InvalidIndex = InvalidIndex;
35920
36001
  exports.KTXTexture = KTXTexture;
36002
+ exports.LayerBlendNode = LayerBlendNode;
35921
36003
  exports.LineSegments = LineSegments;
35922
36004
  exports.LinearValue = LinearValue;
35923
36005
  exports.MaskProcessor = MaskProcessor;