@galacean/effects-threejs 2.5.0-alpha.1 → 2.5.0-alpha.2

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 threejs plugin 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.2
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -12870,6 +12870,25 @@ var singleSplits = [
12870
12870
  this.configureMaterial(this.renderer);
12871
12871
  if (baseRenderComponentData.geometry) {
12872
12872
  this.geometry = this.engine.findObject(baseRenderComponentData.geometry);
12873
+ var uvTransform = baseRenderComponentData.splits && !baseRenderComponentData.textureSheetAnimation ? baseRenderComponentData.splits[0] : singleSplits[0];
12874
+ var x = uvTransform[0];
12875
+ var y = uvTransform[1];
12876
+ var isRotate90 = uvTransform[4];
12877
+ var width = isRotate90 ? uvTransform[3] : uvTransform[2];
12878
+ var height = isRotate90 ? uvTransform[2] : uvTransform[3];
12879
+ var aUV = this.geometry.getAttributeData("aUV");
12880
+ var aPos = this.geometry.getAttributeData("aPos");
12881
+ if (aUV && aPos) {
12882
+ var vertexCount = aUV.length / 2;
12883
+ for(var i = 0; i < vertexCount; i++){
12884
+ var positionOffset = i * 3;
12885
+ var uvOffset = i * 2;
12886
+ var positionX = aPos[positionOffset];
12887
+ var positionY = aPos[positionOffset + 1];
12888
+ aUV[uvOffset] = (positionX + 0.5) * width + x;
12889
+ aUV[uvOffset + 1] = (positionY + 0.5) * height + y;
12890
+ }
12891
+ }
12873
12892
  } else {
12874
12893
  this.geometry = this.defaultGeometry;
12875
12894
  this.configureDefaultGeometry(this.renderer);
@@ -20232,7 +20251,7 @@ var RuntimeClip = /*#__PURE__*/ function() {
20232
20251
  this.playable.play();
20233
20252
  }
20234
20253
  this.parentMixer.setClipWeight(this.playable, weight);
20235
- var clipTime = parseFloat(clip.toLocalTime(localTime).toFixed(3));
20254
+ var clipTime = clip.toLocalTime(localTime);
20236
20255
  this.playable.setTime(clipTime);
20237
20256
  // 判断动画是否结束
20238
20257
  if (ended) {
@@ -21421,11 +21440,12 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21421
21440
  * 前进合成到指定时间
21422
21441
  * @param time - 相对0时刻的时间
21423
21442
  */ _proto.forwardTime = function forwardTime(time) {
21424
- var deltaTime = time * 1000 - this.rootComposition.time * 1000;
21443
+ var deltaTime = time * 1000 - this.time * 1000;
21425
21444
  var reverse = deltaTime < 0;
21426
21445
  var step = 15;
21427
21446
  var t = Math.abs(deltaTime);
21428
21447
  var ss = reverse ? -step : step;
21448
+ // FIXME Update 中可能会修改合成时间,这边需要优化更新逻辑
21429
21449
  for(t; t > step; t -= step){
21430
21450
  this.update(ss);
21431
21451
  }
@@ -21465,13 +21485,14 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21465
21485
  this.callAwake(this.rootItem);
21466
21486
  this.rootItem.beginPlay();
21467
21487
  }
21468
- var dt = parseFloat(this.getUpdateTime(deltaTime * this.speed).toFixed(0));
21469
- this.updateRootComposition(dt / 1000);
21488
+ var previousCompositionTime = this.time;
21489
+ this.updateCompositionTime(deltaTime * this.speed / 1000);
21490
+ var deltaTimeInMs = (this.time - previousCompositionTime) * 1000;
21470
21491
  this.updateVideo();
21471
21492
  // 更新 model-tree-plugin
21472
- this.updatePluginLoaders(deltaTime);
21473
- this.sceneTicking.update.tick(dt);
21474
- this.sceneTicking.lateUpdate.tick(dt);
21493
+ this.updatePluginLoaders(deltaTimeInMs);
21494
+ this.sceneTicking.update.tick(deltaTimeInMs);
21495
+ this.sceneTicking.lateUpdate.tick(deltaTimeInMs);
21475
21496
  this.updateCamera();
21476
21497
  this.prepareRender();
21477
21498
  if (this.isEnded && !this.isEndCalled) {
@@ -21487,14 +21508,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21487
21508
  _proto.shouldDispose = function shouldDispose() {
21488
21509
  return this.isEnded && this.rootItem.endBehavior === EndBehavior.destroy && !this.reusable;
21489
21510
  };
21490
- _proto.getUpdateTime = function getUpdateTime(t) {
21491
- var startTimeInMs = this.startTime * 1000;
21492
- var now = this.rootComposition.time * 1000;
21493
- if (t < 0 && now + t < startTimeInMs) {
21494
- return startTimeInMs - now;
21495
- }
21496
- return t;
21497
- };
21498
21511
  _proto.callAwake = function callAwake(item) {
21499
21512
  for(var _iterator = _create_for_of_iterator_helper_loose(item.components), _step; !(_step = _iterator()).done;){
21500
21513
  var component = _step.value;
@@ -21539,14 +21552,18 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21539
21552
  };
21540
21553
  /**
21541
21554
  * 更新主合成组件
21542
- */ _proto.updateRootComposition = function updateRootComposition(deltaTime) {
21555
+ */ _proto.updateCompositionTime = function updateCompositionTime(deltaTime) {
21543
21556
  if (this.rootComposition.state === PlayState.Paused || !this.rootComposition.isActiveAndEnabled) {
21544
21557
  return;
21545
21558
  }
21546
- var localTime = parseFloat((this.time + deltaTime - this.rootItem.start).toFixed(3));
21547
- var isEnded = false;
21559
+ // 相对于合成开始时间的时间
21560
+ var localTime = this.time + deltaTime - this.startTime;
21561
+ if (deltaTime < 0 && localTime < 0) {
21562
+ localTime = 0;
21563
+ }
21548
21564
  var duration = this.rootItem.duration;
21549
21565
  var endBehavior = this.rootItem.endBehavior;
21566
+ var isEnded = false;
21550
21567
  if (localTime - duration > 0.001) {
21551
21568
  isEnded = true;
21552
21569
  switch(endBehavior){
@@ -21571,7 +21588,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
21571
21588
  }
21572
21589
  }
21573
21590
  }
21574
- this.rootComposition.time = localTime;
21591
+ this.rootComposition.time = localTime + this.startTime;
21575
21592
  // end state changed, handle onEnd flags
21576
21593
  if (this.isEnded !== isEnded) {
21577
21594
  if (isEnded) {
@@ -28374,7 +28391,7 @@ function getStandardSpriteContent(sprite, transform) {
28374
28391
  return ret;
28375
28392
  }
28376
28393
 
28377
- var version$2 = "2.5.0-alpha.1";
28394
+ var version$2 = "2.5.0-alpha.2";
28378
28395
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
28379
28396
  var standardVersion = /^(\d+)\.(\d+)$/;
28380
28397
  var reverseParticle = false;
@@ -31624,7 +31641,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem);
31624
31641
  registerPlugin("particle", ParticleLoader, VFXItem);
31625
31642
  registerPlugin("cal", CalculateLoader, VFXItem);
31626
31643
  registerPlugin("interact", InteractLoader, VFXItem);
31627
- var version$1 = "2.5.0-alpha.1";
31644
+ var version$1 = "2.5.0-alpha.2";
31628
31645
  logger.info("Core version: " + version$1 + ".");
31629
31646
 
31630
31647
  var _obj;
@@ -33226,7 +33243,7 @@ setMaxSpriteMeshItemCount(8);
33226
33243
  */ Mesh.create = function(engine, props) {
33227
33244
  return new ThreeMesh(engine, props);
33228
33245
  };
33229
- var version = "2.5.0-alpha.1";
33246
+ var version = "2.5.0-alpha.2";
33230
33247
  logger.info("THREEJS plugin version: " + version + ".");
33231
33248
 
33232
33249
  export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, 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, TEXTURE_UNIFORM_MAP, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, 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, setUniformValue, sortByOrder, index$1 as spec, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };