@galacean/effects-core 2.5.0-alpha.1 → 2.5.0-alpha.3

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.mjs 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.1
6
+ * Version: v2.5.0-alpha.3
7
7
  */
8
8
 
9
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -12867,7 +12867,40 @@ var singleSplits = [
12867
12867
  };
12868
12868
  this.configureMaterial(this.renderer);
12869
12869
  if (baseRenderComponentData.geometry) {
12870
- this.geometry = this.engine.findObject(baseRenderComponentData.geometry);
12870
+ var baseGeometry = this.engine.findObject(baseRenderComponentData.geometry);
12871
+ var uvTransform = baseRenderComponentData.splits && !baseRenderComponentData.textureSheetAnimation ? baseRenderComponentData.splits[0] : singleSplits[0];
12872
+ var x = uvTransform[0];
12873
+ var y = uvTransform[1];
12874
+ var isRotate90 = uvTransform[4];
12875
+ var width = isRotate90 ? uvTransform[3] : uvTransform[2];
12876
+ var height = isRotate90 ? uvTransform[2] : uvTransform[3];
12877
+ var aUV = baseGeometry.getAttributeData("aUV");
12878
+ var aPos = baseGeometry.getAttributeData("aPos");
12879
+ var indices = baseGeometry.getIndexData();
12880
+ if (aUV && aPos && indices) {
12881
+ var vertexCount = aUV.length / 2;
12882
+ for(var i = 0; i < vertexCount; i++){
12883
+ var positionOffset = i * 3;
12884
+ var uvOffset = i * 2;
12885
+ var positionX = aPos[positionOffset];
12886
+ var positionY = aPos[positionOffset + 1];
12887
+ aUV[uvOffset] = (positionX + 0.5) * width + x;
12888
+ aUV[uvOffset + 1] = (positionY + 0.5) * height + y;
12889
+ }
12890
+ this.geometry.setAttributeData("aPos", aPos.slice());
12891
+ this.geometry.setAttributeData("aUV", aUV.slice());
12892
+ this.geometry.setIndexData(indices.slice());
12893
+ this.geometry.setDrawCount(indices.length);
12894
+ }
12895
+ this.geometry.subMeshes.length = 0;
12896
+ for(var _iterator = _create_for_of_iterator_helper_loose(baseGeometry.subMeshes), _step; !(_step = _iterator()).done;){
12897
+ var subMesh = _step.value;
12898
+ this.geometry.subMeshes.push({
12899
+ offset: subMesh.offset,
12900
+ indexCount: subMesh.indexCount,
12901
+ vertexCount: subMesh.vertexCount
12902
+ });
12903
+ }
12871
12904
  } else {
12872
12905
  this.geometry = this.defaultGeometry;
12873
12906
  this.configureDefaultGeometry(this.renderer);
@@ -20230,7 +20263,7 @@ var RuntimeClip = /*#__PURE__*/ function() {
20230
20263
  this.playable.play();
20231
20264
  }
20232
20265
  this.parentMixer.setClipWeight(this.playable, weight);
20233
- var clipTime = parseFloat(clip.toLocalTime(localTime).toFixed(3));
20266
+ var clipTime = clip.toLocalTime(localTime);
20234
20267
  this.playable.setTime(clipTime);
20235
20268
  // 判断动画是否结束
20236
20269
  if (ended) {
@@ -21225,7 +21258,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21225
21258
  /**
21226
21259
  * 合成暂停/播放 标识
21227
21260
  */ _this.paused = false;
21228
- _this.lastVideoUpdateTime = 0;
21229
21261
  _this.isEndCalled = false;
21230
21262
  _this._textures = [];
21231
21263
  var _props_reusable = props.reusable, reusable = _props_reusable === void 0 ? false : _props_reusable, _props_speed = props.speed, speed = _props_speed === void 0 ? 1 : _props_speed, _props_baseRenderOrder = props.baseRenderOrder, baseRenderOrder = _props_baseRenderOrder === void 0 ? 0 : _props_baseRenderOrder, renderer = props.renderer, event = props.event, width = props.width, height = props.height, handleItemMessage = props.handleItemMessage;
@@ -21419,11 +21451,12 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21419
21451
  * 前进合成到指定时间
21420
21452
  * @param time - 相对0时刻的时间
21421
21453
  */ _proto.forwardTime = function forwardTime(time) {
21422
- var deltaTime = time * 1000 - this.rootComposition.time * 1000;
21454
+ var deltaTime = time * 1000 - this.time * 1000;
21423
21455
  var reverse = deltaTime < 0;
21424
21456
  var step = 15;
21425
21457
  var t = Math.abs(deltaTime);
21426
21458
  var ss = reverse ? -step : step;
21459
+ // FIXME Update 中可能会修改合成时间,这边需要优化更新逻辑
21427
21460
  for(t; t > step; t -= step){
21428
21461
  this.update(ss);
21429
21462
  }
@@ -21463,13 +21496,13 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21463
21496
  this.callAwake(this.rootItem);
21464
21497
  this.rootItem.beginPlay();
21465
21498
  }
21466
- var dt = parseFloat(this.getUpdateTime(deltaTime * this.speed).toFixed(0));
21467
- this.updateRootComposition(dt / 1000);
21468
- this.updateVideo();
21499
+ var previousCompositionTime = this.time;
21500
+ this.updateCompositionTime(deltaTime * this.speed / 1000);
21501
+ var deltaTimeInMs = (this.time - previousCompositionTime) * 1000;
21469
21502
  // 更新 model-tree-plugin
21470
- this.updatePluginLoaders(deltaTime);
21471
- this.sceneTicking.update.tick(dt);
21472
- this.sceneTicking.lateUpdate.tick(dt);
21503
+ this.updatePluginLoaders(deltaTimeInMs);
21504
+ this.sceneTicking.update.tick(deltaTimeInMs);
21505
+ this.sceneTicking.lateUpdate.tick(deltaTimeInMs);
21473
21506
  this.updateCamera();
21474
21507
  this.prepareRender();
21475
21508
  if (this.isEnded && !this.isEndCalled) {
@@ -21485,14 +21518,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21485
21518
  _proto.shouldDispose = function shouldDispose() {
21486
21519
  return this.isEnded && this.rootItem.endBehavior === EndBehavior.destroy && !this.reusable;
21487
21520
  };
21488
- _proto.getUpdateTime = function getUpdateTime(t) {
21489
- var startTimeInMs = this.startTime * 1000;
21490
- var now = this.rootComposition.time * 1000;
21491
- if (t < 0 && now + t < startTimeInMs) {
21492
- return startTimeInMs - now;
21493
- }
21494
- return t;
21495
- };
21496
21521
  _proto.callAwake = function callAwake(item) {
21497
21522
  for(var _iterator = _create_for_of_iterator_helper_loose(item.components), _step; !(_step = _iterator()).done;){
21498
21523
  var component = _step.value;
@@ -21507,20 +21532,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21507
21532
  }
21508
21533
  };
21509
21534
  /**
21510
- * 更新视频数据到纹理
21511
- * @override
21512
- */ _proto.updateVideo = function updateVideo() {
21513
- var now = performance.now();
21514
- // 视频固定30帧更新
21515
- if (now - this.lastVideoUpdateTime > 33) {
21516
- var _this_textures;
21517
- ((_this_textures = this.textures) != null ? _this_textures : []).forEach(function(tex) {
21518
- return tex == null ? void 0 : tex.uploadCurrentVideoFrame();
21519
- });
21520
- this.lastVideoUpdateTime = now;
21521
- }
21522
- };
21523
- /**
21524
21535
  * 更新相机
21525
21536
  * @override
21526
21537
  */ _proto.updateCamera = function updateCamera() {
@@ -21537,14 +21548,18 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21537
21548
  };
21538
21549
  /**
21539
21550
  * 更新主合成组件
21540
- */ _proto.updateRootComposition = function updateRootComposition(deltaTime) {
21551
+ */ _proto.updateCompositionTime = function updateCompositionTime(deltaTime) {
21541
21552
  if (this.rootComposition.state === PlayState.Paused || !this.rootComposition.isActiveAndEnabled) {
21542
21553
  return;
21543
21554
  }
21544
- var localTime = parseFloat((this.time + deltaTime - this.rootItem.start).toFixed(3));
21545
- var isEnded = false;
21555
+ // 相对于合成开始时间的时间
21556
+ var localTime = this.time + deltaTime - this.startTime;
21557
+ if (deltaTime < 0 && localTime < 0) {
21558
+ localTime = 0;
21559
+ }
21546
21560
  var duration = this.rootItem.duration;
21547
21561
  var endBehavior = this.rootItem.endBehavior;
21562
+ var isEnded = false;
21548
21563
  if (localTime - duration > 0.001) {
21549
21564
  isEnded = true;
21550
21565
  switch(endBehavior){
@@ -21569,7 +21584,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21569
21584
  }
21570
21585
  }
21571
21586
  }
21572
- this.rootComposition.time = localTime;
21587
+ this.rootComposition.time = localTime + this.startTime;
21573
21588
  // end state changed, handle onEnd flags
21574
21589
  if (this.isEnded !== isEnded) {
21575
21590
  if (isEnded) {
@@ -22776,6 +22791,7 @@ var SpriteComponent = /*#__PURE__*/ function(BaseRenderComponent) {
22776
22791
  _this.engine.renderErrors.add(e);
22777
22792
  });
22778
22793
  }
22794
+ this.renderer.texture.uploadCurrentVideoFrame();
22779
22795
  }
22780
22796
  if (ta) {
22781
22797
  var _this_material_getVector4;
@@ -26789,10 +26805,10 @@ var SerializationHelper = /*#__PURE__*/ function() {
26789
26805
  }
26790
26806
  var _proto = AssetLoader.prototype;
26791
26807
  _proto.loadGUID = function loadGUID(dataPath) {
26792
- var guid = dataPath.id;
26793
26808
  if (!dataPath) {
26794
26809
  return null;
26795
26810
  }
26811
+ var guid = dataPath.id;
26796
26812
  var effectsObjectData = this.findData(guid);
26797
26813
  var effectsObject;
26798
26814
  if (!effectsObjectData) {
@@ -28372,7 +28388,7 @@ function getStandardSpriteContent(sprite, transform) {
28372
28388
  return ret;
28373
28389
  }
28374
28390
 
28375
- var version$1 = "2.5.0-alpha.1";
28391
+ var version$1 = "2.5.0-alpha.3";
28376
28392
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
28377
28393
  var standardVersion = /^(\d+)\.(\d+)$/;
28378
28394
  var reverseParticle = false;
@@ -31622,7 +31638,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
31622
31638
  registerPlugin("particle", ParticleLoader, VFXItem);
31623
31639
  registerPlugin("cal", CalculateLoader, VFXItem);
31624
31640
  registerPlugin("interact", InteractLoader, VFXItem);
31625
- var version = "2.5.0-alpha.1";
31641
+ var version = "2.5.0-alpha.3";
31626
31642
  logger.info("Core version: " + version + ".");
31627
31643
 
31628
31644
  export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Ellipse, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphicsPath, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, MaskMode, MaskProcessor, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PluginSystem, PolyStar, Polygon, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StarType, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector2Curve, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, buildLine, calculateTranslation, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrame_frag as itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };