@needle-tools/engine 2.63.3-pre → 2.64.0-pre

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.
Files changed (100) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/needle-engine.js +9760 -9635
  3. package/dist/needle-engine.umd.cjs +237 -236
  4. package/lib/engine/engine_application.d.ts +7 -1
  5. package/lib/engine/engine_application.js +11 -0
  6. package/lib/engine/engine_application.js.map +1 -1
  7. package/lib/engine/engine_constants.d.ts +1 -1
  8. package/lib/engine/engine_constants.js +1 -1
  9. package/lib/engine/engine_constants.js.map +1 -1
  10. package/lib/engine/engine_gameobject.js +2 -2
  11. package/lib/engine/engine_gameobject.js.map +1 -1
  12. package/lib/engine/engine_instancing.d.ts +1 -0
  13. package/lib/engine/engine_instancing.js +3 -2
  14. package/lib/engine/engine_instancing.js.map +1 -1
  15. package/lib/engine/engine_license.js +14 -13
  16. package/lib/engine/engine_license.js.map +1 -1
  17. package/lib/engine/engine_mainloop_utils.js +27 -52
  18. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  19. package/lib/engine/engine_physics.d.ts +1 -0
  20. package/lib/engine/engine_physics.js +30 -0
  21. package/lib/engine/engine_physics.js.map +1 -1
  22. package/lib/engine/engine_serialization_builtin_serializer.d.ts +1 -0
  23. package/lib/engine/engine_serialization_builtin_serializer.js +30 -25
  24. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  25. package/lib/engine/engine_serialization_core.js +8 -0
  26. package/lib/engine/engine_serialization_core.js.map +1 -1
  27. package/lib/engine/engine_setup.d.ts +1 -1
  28. package/lib/engine/engine_setup.js.map +1 -1
  29. package/lib/engine/engine_time.d.ts +1 -0
  30. package/lib/engine/engine_time.js +5 -1
  31. package/lib/engine/engine_time.js.map +1 -1
  32. package/lib/engine/engine_types.d.ts +12 -0
  33. package/lib/engine/engine_types.js.map +1 -1
  34. package/lib/engine-components/Animation.js +6 -6
  35. package/lib/engine-components/Animation.js.map +1 -1
  36. package/lib/engine-components/AnimatorController.js +2 -0
  37. package/lib/engine-components/AnimatorController.js.map +1 -1
  38. package/lib/engine-components/AudioListener.js +2 -0
  39. package/lib/engine-components/AudioListener.js.map +1 -1
  40. package/lib/engine-components/AudioSource.d.ts +2 -1
  41. package/lib/engine-components/AudioSource.js +19 -4
  42. package/lib/engine-components/AudioSource.js.map +1 -1
  43. package/lib/engine-components/Component.d.ts +1 -0
  44. package/lib/engine-components/Component.js.map +1 -1
  45. package/lib/engine-components/GridHelper.d.ts +1 -0
  46. package/lib/engine-components/GridHelper.js +7 -0
  47. package/lib/engine-components/GridHelper.js.map +1 -1
  48. package/lib/engine-components/ParticleSystem.js +13 -1
  49. package/lib/engine-components/ParticleSystem.js.map +1 -1
  50. package/lib/engine-components/Renderer.d.ts +5 -1
  51. package/lib/engine-components/Renderer.js +78 -29
  52. package/lib/engine-components/Renderer.js.map +1 -1
  53. package/lib/engine-components/WebARSessionRoot.d.ts +1 -0
  54. package/lib/engine-components/WebARSessionRoot.js +10 -0
  55. package/lib/engine-components/WebARSessionRoot.js.map +1 -1
  56. package/lib/engine-components/js-extensions/Object3D.js +11 -1
  57. package/lib/engine-components/js-extensions/Object3D.js.map +1 -1
  58. package/lib/engine-components/timeline/PlayableDirector.d.ts +5 -0
  59. package/lib/engine-components/timeline/PlayableDirector.js +36 -23
  60. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  61. package/lib/engine-components/timeline/TimelineTracks.d.ts +9 -0
  62. package/lib/engine-components/timeline/TimelineTracks.js +121 -21
  63. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  64. package/lib/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +2 -1
  66. package/src/engine/engine_application.ts +14 -3
  67. package/src/engine/engine_constants.ts +1 -1
  68. package/src/engine/engine_gameobject.ts +2 -2
  69. package/src/engine/engine_instancing.ts +3 -3
  70. package/src/engine/engine_license.ts +14 -13
  71. package/src/engine/engine_mainloop_utils.ts +32 -58
  72. package/src/engine/engine_physics.ts +23 -0
  73. package/src/engine/engine_serialization_builtin_serializer.ts +36 -27
  74. package/src/engine/engine_serialization_core.ts +8 -1
  75. package/src/engine/engine_setup.ts +1 -1
  76. package/src/engine/engine_time.ts +9 -4
  77. package/src/engine/engine_types.ts +36 -22
  78. package/src/engine-components/Animation.ts +6 -5
  79. package/src/engine-components/AnimatorController.ts +1 -0
  80. package/src/engine-components/AudioListener.ts +1 -0
  81. package/src/engine-components/AudioSource.ts +20 -6
  82. package/src/engine-components/Component.ts +3 -0
  83. package/src/engine-components/GridHelper.ts +10 -2
  84. package/src/engine-components/ParticleSystem.ts +15 -2
  85. package/src/engine-components/Renderer.ts +92 -33
  86. package/src/engine-components/WebARSessionRoot.ts +14 -0
  87. package/src/engine-components/js-extensions/Object3D.ts +11 -3
  88. package/src/engine-components/timeline/PlayableDirector.ts +35 -24
  89. package/src/engine-components/timeline/TimelineTracks.ts +132 -22
  90. package/src/tsconfig.json +33 -0
  91. package/src/engine/codegen/license.js +0 -1
  92. /package/{src/plugins → plugins}/vite/build.js +0 -0
  93. /package/{src/plugins → plugins}/vite/config.js +0 -0
  94. /package/{src/plugins → plugins}/vite/gzip.js +0 -0
  95. /package/{src/plugins → plugins}/vite/index.js +0 -0
  96. /package/{src/plugins → plugins}/vite/meta.js +0 -0
  97. /package/{src/plugins → plugins}/vite/poster-client.js +0 -0
  98. /package/{src/plugins → plugins}/vite/poster.js +0 -0
  99. /package/{src/plugins → plugins}/vite/reload-client.js +0 -0
  100. /package/{src/plugins → plugins}/vite/reload.js +0 -0
@@ -29,8 +29,11 @@ export declare class PlayableDirector extends Behaviour {
29
29
  set duration(value: number);
30
30
  get weight(): number;
31
31
  set weight(value: number);
32
+ get speed(): number;
33
+ set speed(value: number);
32
34
  private _visibilityChangeEvt?;
33
35
  private _clonedPlayableAsset;
36
+ private _speed;
34
37
  awake(): void;
35
38
  onEnable(): void;
36
39
  onDisable(): void;
@@ -57,6 +60,8 @@ export declare class PlayableDirector extends Behaviour {
57
60
  private _controlTracks;
58
61
  private _customTracks;
59
62
  private _allTracks;
63
+ /** should be called after evaluate if the director was playing */
64
+ private invokePauseChangedMethodsOnTracks;
60
65
  private internalUpdate;
61
66
  private internalEvaluate;
62
67
  private resolveBindings;
@@ -2,7 +2,6 @@ import { Animator } from '../Animator';
2
2
  import { Behaviour, GameObject } from '../Component';
3
3
  import * as THREE from 'three';
4
4
  import { AudioListener } from '../AudioListener';
5
- import { AudioSource } from '../AudioSource';
6
5
  import { SignalReceiver } from './SignalAsset';
7
6
  import * as Models from "./TimelineModels";
8
7
  import * as Tracks from "./TimelineTracks";
@@ -79,8 +78,11 @@ export class PlayableDirector extends Behaviour {
79
78
  get weight() { return this._weight; }
80
79
  ;
81
80
  set weight(value) { this._weight = value; }
81
+ get speed() { return this._speed; }
82
+ set speed(value) { this._speed = value; }
82
83
  _visibilityChangeEvt;
83
84
  _clonedPlayableAsset = false;
85
+ _speed = 1;
84
86
  awake() {
85
87
  if (debug)
86
88
  console.log(this, this.playableAsset?.tracks);
@@ -138,7 +140,10 @@ export class PlayableDirector extends Behaviour {
138
140
  play() {
139
141
  if (!this.isValid())
140
142
  return;
143
+ const pauseChanged = this._isPaused == true;
141
144
  this._isPaused = false;
145
+ if (pauseChanged)
146
+ this.invokePauseChangedMethodsOnTracks();
142
147
  if (this._isPlaying)
143
148
  return;
144
149
  this._isPlaying = true;
@@ -152,18 +157,25 @@ export class PlayableDirector extends Behaviour {
152
157
  return;
153
158
  this._isPaused = true;
154
159
  this.evaluate();
160
+ this.invokePauseChangedMethodsOnTracks();
155
161
  }
156
162
  stop() {
157
163
  for (const track of this._audioTracks)
158
164
  track.stop();
165
+ const pauseChanged = this._isPaused == true;
166
+ const wasPlaying = this._isPlaying;
159
167
  if (this._isPlaying) {
160
168
  this._time = 0;
161
169
  this._isPlaying = false;
162
170
  this._isPaused = false;
163
171
  this.evaluate();
172
+ if (pauseChanged)
173
+ this.invokePauseChangedMethodsOnTracks();
164
174
  }
165
175
  this._isPlaying = false;
166
176
  this._isPaused = false;
177
+ if (pauseChanged && !wasPlaying)
178
+ this.invokePauseChangedMethodsOnTracks();
167
179
  if (this._internalUpdateRoutine)
168
180
  this.stopCoroutine(this._internalUpdateRoutine);
169
181
  this._internalUpdateRoutine = null;
@@ -174,10 +186,15 @@ export class PlayableDirector extends Behaviour {
174
186
  let t = this._time;
175
187
  switch (this.extrapolationMode) {
176
188
  case DirectorWrapMode.Hold:
177
- t = Math.min(t, this._duration);
189
+ if (this._speed > 0)
190
+ t = Math.min(t, this._duration);
191
+ else if (this._speed < 0)
192
+ t = Math.max(t, 0);
193
+ this._time = t;
178
194
  break;
179
195
  case DirectorWrapMode.Loop:
180
196
  t %= this._duration;
197
+ this._time = t;
181
198
  break;
182
199
  case DirectorWrapMode.None:
183
200
  if (t > this._duration) {
@@ -223,10 +240,16 @@ export class PlayableDirector extends Behaviour {
223
240
  this._controlTracks,
224
241
  this._customTracks
225
242
  ];
243
+ /** should be called after evaluate if the director was playing */
244
+ invokePauseChangedMethodsOnTracks() {
245
+ for (const track of this.forEachTrack()) {
246
+ track.onPauseChanged?.call(track);
247
+ }
248
+ }
226
249
  *internalUpdate() {
227
250
  while (this._isPlaying && this.activeAndEnabled) {
228
251
  if (!this._isPaused && this._isPlaying) {
229
- this._time += this.context.time.deltaTime;
252
+ this._time += this.context.time.deltaTime * this.speed;
230
253
  this.evaluate();
231
254
  }
232
255
  // for (let i = 0; i < 5; i++)
@@ -259,10 +282,8 @@ export class PlayableDirector extends Behaviour {
259
282
  for (const handler of this._animationTracks) {
260
283
  handler.evaluate(time);
261
284
  }
262
- if (AudioSource.userInteractionRegistered) {
263
- for (const handler of this._audioTracks) {
264
- handler.evaluate(time);
265
- }
285
+ for (const handler of this._audioTracks) {
286
+ handler.evaluate(time);
266
287
  }
267
288
  for (const sig of this._signalTracks) {
268
289
  sig.evaluate(time);
@@ -346,8 +367,7 @@ export class PlayableDirector extends Behaviour {
346
367
  this._signalTracks.length = 0;
347
368
  if (!this.playableAsset)
348
369
  return;
349
- const audioTracks = [];
350
- const audioAllowedCallbacks = [];
370
+ const audioListener = GameObject.findObjectOfType(AudioListener, this.context);
351
371
  for (const track of this.playableAsset.tracks) {
352
372
  const type = track.type;
353
373
  const registered = PlayableDirector.createTrackFunctions[type];
@@ -423,16 +443,13 @@ export class PlayableDirector extends Behaviour {
423
443
  audio.director = this;
424
444
  audio.track = track;
425
445
  this._audioTracks.push(audio);
426
- audioAllowedCallbacks.push(() => {
427
- const listener = GameObject.findObjectOfType(AudioListener, this.context);
428
- if (!listener)
429
- return;
430
- audio.listener = listener.listener;
431
- for (let i = 0; i < track.clips.length; i++) {
432
- const clipModel = track.clips[i];
433
- audio.addModel(clipModel);
434
- }
435
- });
446
+ if (!audioListener)
447
+ continue;
448
+ audio.listener = audioListener.listener;
449
+ for (let i = 0; i < track.clips.length; i++) {
450
+ const clipModel = track.clips[i];
451
+ audio.addModel(clipModel);
452
+ }
436
453
  }
437
454
  else if (track.type === Models.TrackType.Marker) {
438
455
  const signalHandler = new Tracks.SignalTrackHandler();
@@ -478,10 +495,6 @@ export class PlayableDirector extends Behaviour {
478
495
  this._controlTracks.push(handler);
479
496
  }
480
497
  }
481
- AudioSource.registerWaitForAllowAudio(() => {
482
- audioAllowedCallbacks.forEach((cb) => cb());
483
- audioAllowedCallbacks.length = 0;
484
- });
485
498
  }
486
499
  setAudioTracksAllowPlaying(allow) {
487
500
  for (const track of this._audioTracks) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlayableDirector.js","sourceRoot":"","sources":["../../../../engine-components/timeline/PlayableDirector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlayableDirector.js","sourceRoot":"","sources":["../../../../engine-components/timeline/PlayableDirector.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare abstract class TrackHandler {
14
14
  onDestroy?(): any;
15
15
  abstract evaluate(time: number): any;
16
16
  onMuteChanged?(): any;
17
+ onPauseChanged?(): any;
17
18
  getClipTime(time: number, model: Models.ClipModel): number;
18
19
  getClipTimeNormalized(time: number, model: Models.ClipModel): number;
19
20
  evaluateWeight(time: number, index: number, models: Array<Models.ClipModel>, isActive?: boolean): number;
@@ -28,6 +29,9 @@ export declare class AnimationTrackHandler extends TrackHandler {
28
29
  /** holds data/info about clips differences */
29
30
  private _actionOffsets;
30
31
  private _didBind;
32
+ private _animator;
33
+ private _animatorWasEnabled?;
34
+ onPauseChanged(): void;
31
35
  createHooks(clipModel: Models.AnimationClipModel, clip: any): void;
32
36
  bind(): void;
33
37
  private ensureTrackOffsets;
@@ -51,6 +55,7 @@ export declare class AudioTrackHandler extends TrackHandler {
51
55
  audio: Array<THREE.Audio>;
52
56
  audioContextTimeOffset: Array<number>;
53
57
  lastTime: number;
58
+ private _audioLoader;
54
59
  private getAudioFilePath;
55
60
  onAllowAudioChanged(allow: boolean): void;
56
61
  addModel(model: Models.ClipModel): void;
@@ -58,6 +63,10 @@ export declare class AudioTrackHandler extends TrackHandler {
58
63
  onMuteChanged(): void;
59
64
  stop(): void;
60
65
  evaluate(time: number): void;
66
+ /** Call to load audio buffer for a specific time in the track. Can be used to preload the timeline audio */
67
+ loadAudio(time: number, lookAhead?: number, lookBehind?: number): Promise<(AudioBuffer | null)[]> | null;
68
+ private isInTimeRange;
69
+ private handleAudioLoading;
61
70
  }
62
71
  export declare class SignalTrackHandler extends TrackHandler {
63
72
  models: Models.SignalMarkerModel[];
@@ -4,6 +4,8 @@ import * as THREE from 'three';
4
4
  import { GameObject } from "../Component";
5
5
  import { Quaternion, Vector3 } from "three";
6
6
  import { getParam, getPath } from "../../engine/engine_utils";
7
+ import { AudioSource } from "../AudioSource";
8
+ import { Animator } from "../Animator";
7
9
  const debug = getParam("debugtimeline");
8
10
  export class TrackHandler {
9
11
  director;
@@ -114,6 +116,14 @@ export class AnimationTrackHandler extends TrackHandler {
114
116
  /** holds data/info about clips differences */
115
117
  _actionOffsets = [];
116
118
  _didBind = false;
119
+ _animator = null;
120
+ _animatorWasEnabled = false;
121
+ onPauseChanged() {
122
+ // When the timeline is paused the original animator will be enabled again if it was before
123
+ if (this._animator && this._animatorWasEnabled !== undefined) {
124
+ this._animator.enabled = this.director.isPaused ? this._animatorWasEnabled : false;
125
+ }
126
+ }
117
127
  createHooks(clipModel, clip) {
118
128
  if (clip.tracks?.length <= 0) {
119
129
  console.warn("No tracks in AnimationClip", clip);
@@ -184,6 +194,12 @@ export class AnimationTrackHandler extends TrackHandler {
184
194
  const off = new AnimationClipOffsetData(action);
185
195
  this._actionOffsets.push(off);
186
196
  }
197
+ if (this.target) {
198
+ // We need to disable the animator component in case it also animates
199
+ // which overrides the timeline
200
+ this._animator = GameObject.getComponent(this.target, Animator) ?? null;
201
+ this._animatorWasEnabled = this._animator?.enabled;
202
+ }
187
203
  // Clip Offsets
188
204
  for (const model of this.models) {
189
205
  const clipData = model.asset;
@@ -232,6 +248,8 @@ export class AnimationTrackHandler extends TrackHandler {
232
248
  if (!this.mixer)
233
249
  return;
234
250
  this.bind();
251
+ if (this._animator && this.director.isPlaying && this.director.weight > 0)
252
+ this._animator.enabled = false;
235
253
  this._totalOffsetPosition.set(0, 0, 0);
236
254
  this._totalOffsetRotation.set(0, 0, 0, 1);
237
255
  this._totalOffsetPosition2.set(0, 0, 0);
@@ -239,37 +257,53 @@ export class AnimationTrackHandler extends TrackHandler {
239
257
  let activeClips = 0;
240
258
  let blend = 0;
241
259
  let didPostExtrapolate = false;
260
+ let didPreExtrapolate = false;
242
261
  for (let i = 0; i < this.clips.length; i++) {
243
262
  const model = this.models[i];
244
263
  const action = this.actions[i];
245
264
  const clipModel = model.asset;
246
265
  action.weight = 0;
247
266
  const isInTimeRange = time >= model.start && time <= model.end;
267
+ const preExtrapolation = model.preExtrapolationMode;
248
268
  const postExtrapolation = model.postExtrapolationMode;
269
+ const nextClip = i < this.clips.length - 1 ? this.models[i + 1] : null;
249
270
  let isActive = isInTimeRange;
271
+ let doPreExtrapolate = false;
250
272
  if (!isActive && !didPostExtrapolate && model.end < time && postExtrapolation !== Models.ClipExtrapolation.None) {
251
- const nextClip = i < this.clips.length - 1 ? this.models[i + 1] : null;
252
273
  // use post extrapolate if its the last clip of the next clip has not yet started
253
274
  if (!nextClip || nextClip.start > time) {
254
275
  isActive = true;
255
276
  didPostExtrapolate = true;
256
277
  }
257
278
  }
258
- const preExtrapolation = model.preExtrapolationMode;
259
- if (i == 0 && !isActive && !didPostExtrapolate && model.start > time && preExtrapolation !== Models.ClipExtrapolation.None) {
260
- isActive = true;
261
- if (preExtrapolation !== Models.ClipExtrapolation.Hold)
262
- time += model.start;
279
+ else if (i == 0 && !isActive && !didPreExtrapolate && model.start > time && preExtrapolation !== Models.ClipExtrapolation.None) {
280
+ if (!nextClip || nextClip.start < time) {
281
+ isActive = true;
282
+ doPreExtrapolate = true;
283
+ didPreExtrapolate = true;
284
+ }
263
285
  }
264
286
  if (isActive) {
265
287
  // const clip = this.clips[i];
266
288
  let weight = 1;
267
289
  weight *= this.evaluateWeight(time, i, this.models, isActive);
290
+ let handleLoop = isInTimeRange;
291
+ if (doPreExtrapolate) {
292
+ if (preExtrapolation !== Models.ClipExtrapolation.Hold) {
293
+ time += model.start;
294
+ handleLoop = true;
295
+ }
296
+ }
268
297
  // TODO: handle clipIn again
269
298
  let t = this.getClipTime(time, model);
270
299
  let loops = 0;
271
300
  const duration = clipModel.duration;
272
- if (isInTimeRange) {
301
+ if (doPreExtrapolate) {
302
+ if (preExtrapolation === Models.ClipExtrapolation.Hold) {
303
+ t = 0;
304
+ }
305
+ }
306
+ if (handleLoop) {
273
307
  if (clipModel.loop) {
274
308
  // const t0 = t - .001;
275
309
  loops += Math.floor(t / (duration + .000001));
@@ -424,6 +458,7 @@ export class AudioTrackHandler extends TrackHandler {
424
458
  audio = [];
425
459
  audioContextTimeOffset = [];
426
460
  lastTime = 0;
461
+ _audioLoader = null;
427
462
  getAudioFilePath(path) {
428
463
  // TODO: this should be the timeline asset location probably which MIGHT be different
429
464
  const glbLocation = this.director.sourceId;
@@ -437,18 +472,9 @@ export class AudioTrackHandler extends TrackHandler {
437
472
  }
438
473
  }
439
474
  addModel(model) {
440
- const path = this.getAudioFilePath(model.asset.clip);
441
475
  const audio = new THREE.Audio(this.listener);
442
- audio.setVolume(model.asset.volume);
443
- const loader = new THREE.AudioLoader();
444
- if (debug)
445
- console.log(path, this.director.sourceId);
446
- loader.load(path, (buffer) => {
447
- audio.setBuffer(buffer);
448
- audio.loop = model.asset.loop;
449
- this.audio.push(audio);
450
- this.models.push(model);
451
- });
476
+ this.audio.push(audio);
477
+ this.models.push(model);
452
478
  }
453
479
  onDisable() {
454
480
  for (const audio of this.audio) {
@@ -477,10 +503,29 @@ export class AudioTrackHandler extends TrackHandler {
477
503
  return;
478
504
  if (this.track.muted)
479
505
  return;
506
+ if (this.director.speed < 0) {
507
+ // Reversed audio playback is currently not supported
508
+ return;
509
+ }
510
+ const isMuted = this.director.context.application.muted;
511
+ // this is just so that we dont hear the very first beat when the audio starts but is muted
512
+ // if we dont add a delay we hear a little bit of the audio before it shuts down
513
+ // MAYBE instead of doing it like this we should connect a custom audio node (or disconnect the output node?)
514
+ const playTimeOffset = isMuted ? .1 : 0;
480
515
  for (let i = 0; i < this.models.length; i++) {
481
516
  const model = this.models[i];
482
517
  const audio = this.audio[i];
483
- if (time >= model.start && time <= model.end) {
518
+ // only trigger loading for tracks that are CLOSE to being played
519
+ if ((!audio || !audio.buffer) && this.isInTimeRange(model, time - 1, time + 1)) {
520
+ this.handleAudioLoading(model, audio);
521
+ }
522
+ if (AudioSource.userInteractionRegistered === false)
523
+ continue;
524
+ if (audio === null || !audio.buffer)
525
+ continue;
526
+ audio.playbackRate = this.director.context.time.timeScale;
527
+ audio.loop = model.asset.loop;
528
+ if (time >= model.start && time <= model.end && time < this.director.duration) {
484
529
  if (this.director.isPlaying == false) {
485
530
  if (audio.isPlaying)
486
531
  audio.stop();
@@ -489,7 +534,7 @@ export class AudioTrackHandler extends TrackHandler {
489
534
  }
490
535
  else if (!audio.isPlaying) {
491
536
  audio.offset = model.clipIn + (time - model.start) * model.timeScale;
492
- audio.play();
537
+ audio.play(playTimeOffset);
493
538
  }
494
539
  else {
495
540
  const targetOffset = model.clipIn + (time - model.start) * model.timeScale;
@@ -500,10 +545,12 @@ export class AudioTrackHandler extends TrackHandler {
500
545
  if (diff > 0.3) {
501
546
  audio.offset = targetOffset;
502
547
  audio.stop();
503
- audio.play();
548
+ audio.play(playTimeOffset);
504
549
  }
505
550
  }
506
551
  let vol = model.asset.volume;
552
+ if (isMuted)
553
+ vol = 0;
507
554
  if (model.easeInDuration > 0) {
508
555
  const easeIn = Math.min((time - model.start) / model.easeInDuration, 1);
509
556
  vol *= easeIn;
@@ -521,6 +568,59 @@ export class AudioTrackHandler extends TrackHandler {
521
568
  }
522
569
  this.lastTime = time;
523
570
  }
571
+ /** Call to load audio buffer for a specific time in the track. Can be used to preload the timeline audio */
572
+ loadAudio(time, lookAhead = 0, lookBehind = 0) {
573
+ let promises = null;
574
+ const rangeStart = time - lookBehind;
575
+ const rangeEnd = time + lookAhead;
576
+ for (const model of this.models) {
577
+ if (this.isInTimeRange(model, rangeStart, rangeEnd)) {
578
+ const audio = this.audio[this.models.indexOf(model)];
579
+ const promise = this.handleAudioLoading(model, audio);
580
+ if (promise !== null) {
581
+ if (promises === null)
582
+ promises = [];
583
+ promises.push(promise);
584
+ }
585
+ }
586
+ }
587
+ if (promises !== null) {
588
+ return Promise.all(promises);
589
+ }
590
+ return null;
591
+ }
592
+ isInTimeRange(model, start, end) {
593
+ // Range surrounds clip range
594
+ if (start <= model.start && end >= model.end)
595
+ return true;
596
+ // Range start is in clip range
597
+ if (start >= model.start && start <= model.end)
598
+ return true;
599
+ // Range end is in clip range
600
+ if (end >= model.start && end <= model.end)
601
+ return true;
602
+ return false;
603
+ }
604
+ handleAudioLoading(model, audio) {
605
+ if (!this._audioLoader) {
606
+ const path = this.getAudioFilePath(model.asset.clip);
607
+ this._audioLoader = new THREE.AudioLoader();
608
+ // TODO: maybe we should cache the loaders / buffers here by path
609
+ if (debug)
610
+ console.warn("LOAD audio track", path, this.director.sourceId);
611
+ const loadingPromise = new Promise((resolve, _reject) => {
612
+ this._audioLoader.load(path, buffer => {
613
+ audio.setBuffer(buffer);
614
+ resolve(buffer);
615
+ }, undefined, err => {
616
+ console.error("Error loading audio", err);
617
+ resolve(null);
618
+ });
619
+ });
620
+ return loadingPromise;
621
+ }
622
+ return null;
623
+ }
524
624
  }
525
625
  export class SignalTrackHandler extends TrackHandler {
526
626
  models = [];
@@ -1 +1 @@
1
- {"version":3,"file":"TimelineTracks.js","sourceRoot":"","sources":["../../../../engine-components/timeline/TimelineTracks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimelineTracks.js","sourceRoot":"","sources":["../../../../engine-components/timeline/TimelineTracks.ts"],"names":[],"mappings":"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"}