@needle-tools/engine 5.1.0-alpha.4 → 5.1.0-alpha.6

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 (133) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{needle-engine.bundle-DQCuBTVp.umd.cjs → needle-engine.bundle-5avtTUMM.umd.cjs} +149 -148
  4. package/dist/{needle-engine.bundle-AjVIot3d.min.js → needle-engine.bundle-BHcw4C8f.min.js} +187 -186
  5. package/dist/{needle-engine.bundle-B7cqsI4c.js → needle-engine.bundle-C0gPOq4m.js} +7522 -7092
  6. package/dist/needle-engine.d.ts +715 -176
  7. package/dist/needle-engine.js +595 -593
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/dist/three.js +1 -0
  11. package/dist/three.min.js +21 -21
  12. package/dist/three.umd.cjs +16 -16
  13. package/lib/engine/api.d.ts +3 -1
  14. package/lib/engine/api.js +3 -1
  15. package/lib/engine/api.js.map +1 -1
  16. package/lib/engine/codegen/register_types.js +10 -10
  17. package/lib/engine/codegen/register_types.js.map +1 -1
  18. package/lib/engine/engine_camera.fit.js +16 -4
  19. package/lib/engine/engine_camera.fit.js.map +1 -1
  20. package/lib/engine/engine_context.d.ts +20 -7
  21. package/lib/engine/engine_context.js +36 -14
  22. package/lib/engine/engine_context.js.map +1 -1
  23. package/lib/engine/engine_context_eventbus.d.ts +47 -0
  24. package/lib/engine/engine_context_eventbus.js +47 -0
  25. package/lib/engine/engine_context_eventbus.js.map +1 -0
  26. package/lib/engine/engine_init.js +2 -2
  27. package/lib/engine/engine_init.js.map +1 -1
  28. package/lib/engine/engine_input.d.ts +23 -4
  29. package/lib/engine/engine_input.js +2 -1
  30. package/lib/engine/engine_input.js.map +1 -1
  31. package/lib/engine/engine_license.d.ts +7 -7
  32. package/lib/engine/engine_license.js +185 -57
  33. package/lib/engine/engine_license.js.map +1 -1
  34. package/lib/engine/engine_networking_blob.js +3 -3
  35. package/lib/engine/engine_networking_blob.js.map +1 -1
  36. package/lib/engine/engine_physics_rapier.d.ts +10 -0
  37. package/lib/engine/engine_physics_rapier.js +6 -0
  38. package/lib/engine/engine_physics_rapier.js.map +1 -1
  39. package/lib/engine/engine_types.d.ts +10 -0
  40. package/lib/engine/engine_utils_qrcode.js +2 -2
  41. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  42. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  43. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  44. package/lib/engine/webcomponents/needle menu/needle-menu.js +5 -5
  45. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  46. package/lib/engine/webcomponents/needle-engine.js +2 -2
  47. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  48. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  49. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  50. package/lib/engine/xr/TempXRContext.js +2 -2
  51. package/lib/engine/xr/TempXRContext.js.map +1 -1
  52. package/lib/engine-components/AnimationBuilder.d.ts +158 -0
  53. package/lib/engine-components/AnimationBuilder.js +305 -0
  54. package/lib/engine-components/AnimationBuilder.js.map +1 -0
  55. package/lib/engine-components/Animator.js +6 -1
  56. package/lib/engine-components/Animator.js.map +1 -1
  57. package/lib/engine-components/AnimatorController.builder.d.ts +101 -23
  58. package/lib/engine-components/AnimatorController.builder.js +88 -20
  59. package/lib/engine-components/AnimatorController.builder.js.map +1 -1
  60. package/lib/engine-components/AnimatorController.js +2 -0
  61. package/lib/engine-components/AnimatorController.js.map +1 -1
  62. package/lib/engine-components/ContactShadows.d.ts +1 -0
  63. package/lib/engine-components/ContactShadows.js +14 -1
  64. package/lib/engine-components/ContactShadows.js.map +1 -1
  65. package/lib/engine-components/DropListener.js +3 -0
  66. package/lib/engine-components/DropListener.js.map +1 -1
  67. package/lib/engine-components/OrbitControls.d.ts +0 -2
  68. package/lib/engine-components/OrbitControls.js +14 -1
  69. package/lib/engine-components/OrbitControls.js.map +1 -1
  70. package/lib/engine-components/SceneSwitcher.js +3 -0
  71. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  72. package/lib/engine-components/api.d.ts +1 -0
  73. package/lib/engine-components/api.js +1 -0
  74. package/lib/engine-components/api.js.map +1 -1
  75. package/lib/engine-components/codegen/components.d.ts +6 -6
  76. package/lib/engine-components/codegen/components.js +6 -6
  77. package/lib/engine-components/codegen/components.js.map +1 -1
  78. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  79. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  80. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  81. package/lib/engine-components/timeline/PlayableDirector.d.ts +7 -7
  82. package/lib/engine-components/timeline/PlayableDirector.js +6 -6
  83. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  84. package/lib/engine-components/timeline/TimelineBuilder.d.ts +175 -9
  85. package/lib/engine-components/timeline/TimelineBuilder.js +108 -2
  86. package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -1
  87. package/lib/engine-components/timeline/TimelineTracks.d.ts +15 -7
  88. package/lib/engine-components/timeline/TimelineTracks.js +22 -14
  89. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  90. package/lib/engine-components/web/CursorFollow.d.ts +0 -1
  91. package/lib/engine-components/web/CursorFollow.js +0 -1
  92. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  93. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +62 -1
  94. package/lib/engine-components/webxr/WebXRImageTracking.js +55 -2
  95. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  96. package/package.json +1 -1
  97. package/plugins/common/cloud.js +6 -1
  98. package/plugins/common/license.js +26 -8
  99. package/plugins/vite/license.js +42 -7
  100. package/src/engine/api.ts +4 -1
  101. package/src/engine/codegen/register_types.ts +10 -10
  102. package/src/engine/engine_camera.fit.ts +15 -4
  103. package/src/engine/engine_context.ts +41 -16
  104. package/src/engine/engine_context_eventbus.ts +73 -0
  105. package/src/engine/engine_init.ts +2 -2
  106. package/src/engine/engine_input.ts +27 -6
  107. package/src/engine/engine_license.ts +201 -55
  108. package/src/engine/engine_networking_blob.ts +3 -3
  109. package/src/engine/engine_physics_rapier.ts +20 -6
  110. package/src/engine/engine_types.ts +22 -12
  111. package/src/engine/engine_utils_qrcode.ts +2 -2
  112. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  113. package/src/engine/webcomponents/needle menu/needle-menu.ts +5 -5
  114. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  115. package/src/engine/webcomponents/needle-engine.ts +2 -2
  116. package/src/engine/xr/TempXRContext.ts +2 -2
  117. package/src/engine-components/AnimationBuilder.ts +472 -0
  118. package/src/engine-components/Animator.ts +6 -1
  119. package/src/engine-components/AnimatorController.builder.ts +163 -37
  120. package/src/engine-components/AnimatorController.ts +1 -0
  121. package/src/engine-components/ContactShadows.ts +15 -1
  122. package/src/engine-components/DropListener.ts +3 -0
  123. package/src/engine-components/OrbitControls.ts +16 -5
  124. package/src/engine-components/SceneSwitcher.ts +3 -0
  125. package/src/engine-components/api.ts +1 -0
  126. package/src/engine-components/codegen/components.ts +6 -6
  127. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  128. package/src/engine-components/timeline/PlayableDirector.ts +20 -20
  129. package/src/engine-components/timeline/TimelineBuilder.ts +277 -17
  130. package/src/engine-components/timeline/TimelineTracks.ts +24 -16
  131. package/src/engine-components/web/CursorFollow.ts +0 -1
  132. package/src/engine-components/webxr/WebXRImageTracking.ts +77 -7
  133. package/src/vite-env.d.ts +0 -16
@@ -1,6 +1,10 @@
1
1
  import { AnimationClip, Object3D } from "three";
2
+ import type { Light, Material, PerspectiveCamera } from "three";
2
3
  import type { Animator } from "../Animator.js";
3
4
  import type { AudioSource } from "../AudioSource.js";
5
+ import { type TrackDescriptor, type TrackOptions, type AnimationKeyframe, type Tween, type Vec3Value, type QuatValue, type EulerValue, type ColorValue } from "../AnimationBuilder.js";
6
+ /** Keyframe array or tween shorthand */
7
+ type KF<V> = AnimationKeyframe<V>[] | Tween<V>;
4
8
  import { SignalReceiver } from "./SignalAsset.js";
5
9
  import type { PlayableDirector } from "./PlayableDirector.js";
6
10
  import { ClipExtrapolation } from "./TimelineModels.js";
@@ -86,6 +90,116 @@ export declare type SignalMarkerOptions = {
86
90
  /** Whether the signal should only fire once (default: false) */
87
91
  emitOnce?: boolean;
88
92
  };
93
+ /**
94
+ * Shared methods available on all track builders and the TimelineBuilder entry point.
95
+ * Provides track creation, build, and install methods.
96
+ *
97
+ * @category Animation and Sequencing
98
+ */
99
+ export interface TimelineBuilderBase {
100
+ /** Adds an animation track. Chain `.clip()` or `.track()` to add content. */
101
+ animationTrack(name: string, binding?: Animator | Object3D | null): AnimationTrackBuilder;
102
+ /** Adds an audio track. Chain `.clip()` to add audio clips. */
103
+ audioTrack(name: string, binding?: AudioSource | Object3D | null, volume?: number): AudioTrackBuilder;
104
+ /** Adds an activation track. Chain `.clip()` to define activation windows. */
105
+ activationTrack(name: string, binding?: Object3D | null): ActivationTrackBuilder;
106
+ /** Adds a control track. Chain `.clip()` to control nested objects/timelines. */
107
+ controlTrack(name: string): ControlTrackBuilder;
108
+ /** Adds a signal track. Chain `.signal()` or `.marker()` to add events. */
109
+ signalTrack(name: string, binding?: SignalReceiver | Object3D | null): SignalTrackBuilder;
110
+ /** Adds a marker track. Chain `.marker()` to add markers. */
111
+ markerTrack(name: string): MarkerTrackBuilder;
112
+ /** Builds and returns the {@link TimelineAssetModel}. */
113
+ build(): TimelineAssetModel;
114
+ /** Builds the timeline, assigns it to the director, and wires up signal callbacks. */
115
+ install(director: PlayableDirector): TimelineAssetModel;
116
+ }
117
+ /**
118
+ * Builder for animation tracks.
119
+ * Provides `.clip()` for pre-built AnimationClips and `.track()` for inline animation definition.
120
+ *
121
+ * @category Animation and Sequencing
122
+ */
123
+ export interface AnimationTrackBuilder extends TimelineBuilderBase {
124
+ /** Adds a pre-built AnimationClip */
125
+ clip(asset: AnimationClip, options?: AnimationClipOptions): AnimationTrackBuilder;
126
+ /** Adds a clip from a single {@link TrackDescriptor} */
127
+ clip(descriptor: TrackDescriptor, options?: AnimationClipOptions): AnimationTrackBuilder;
128
+ /** Adds a clip from multiple {@link TrackDescriptor}s */
129
+ clip(descriptors: TrackDescriptor[], options?: AnimationClipOptions): AnimationTrackBuilder;
130
+ /** Adds an animation track for an Object3D's position or scale */
131
+ track(target: Object3D, property: "position" | "scale", keyframes: KF<Vec3Value>, options?: TrackOptions): AnimationTrackBuilder;
132
+ /** Adds an animation track for an Object3D's quaternion */
133
+ track(target: Object3D, property: "quaternion", keyframes: KF<QuatValue>, options?: TrackOptions): AnimationTrackBuilder;
134
+ /** Adds an animation track for an Object3D's rotation (Euler, converted to quaternion) */
135
+ track(target: Object3D, property: "rotation", keyframes: KF<EulerValue>, options?: TrackOptions): AnimationTrackBuilder;
136
+ /** Adds an animation track for an Object3D's visibility */
137
+ track(target: Object3D, property: "visible", keyframes: KF<boolean>, options?: TrackOptions): AnimationTrackBuilder;
138
+ /** Adds an animation track for a material's numeric property */
139
+ track(target: Material, property: "opacity" | "roughness" | "metalness" | "alphaTest" | "emissiveIntensity" | "envMapIntensity" | "bumpScale" | "displacementScale" | "displacementBias", keyframes: KF<number>, options?: TrackOptions): AnimationTrackBuilder;
140
+ /** Adds an animation track for a material's color property */
141
+ track(target: Material, property: "color" | "emissive", keyframes: KF<ColorValue>, options?: TrackOptions): AnimationTrackBuilder;
142
+ /** Adds an animation track for a light's numeric property */
143
+ track(target: Light, property: "intensity" | "distance" | "angle" | "penumbra" | "decay", keyframes: KF<number>, options?: TrackOptions): AnimationTrackBuilder;
144
+ /** Adds an animation track for a light's color */
145
+ track(target: Light, property: "color", keyframes: KF<ColorValue>, options?: TrackOptions): AnimationTrackBuilder;
146
+ /** Adds an animation track for a camera's numeric property */
147
+ track(target: PerspectiveCamera, property: "fov" | "near" | "far" | "zoom", keyframes: KF<number>, options?: TrackOptions): AnimationTrackBuilder;
148
+ /** Mutes this track so it is skipped during playback */
149
+ muted(muted?: boolean): AnimationTrackBuilder;
150
+ }
151
+ /**
152
+ * Builder for audio tracks. Provides `.clip()` for adding audio clips by URL.
153
+ * @category Animation and Sequencing
154
+ */
155
+ export interface AudioTrackBuilder extends TimelineBuilderBase {
156
+ /** Adds an audio clip by URL */
157
+ clip(url: string, options: AudioClipOptions): AudioTrackBuilder;
158
+ /** Mutes this track so it is skipped during playback */
159
+ muted(muted?: boolean): AudioTrackBuilder;
160
+ }
161
+ /**
162
+ * Builder for activation tracks. Provides `.clip()` for defining activation windows.
163
+ * @category Animation and Sequencing
164
+ */
165
+ export interface ActivationTrackBuilder extends TimelineBuilderBase {
166
+ /** Adds an activation clip that shows/hides the bound object */
167
+ clip(options: ActivationClipOptions): ActivationTrackBuilder;
168
+ /** Mutes this track so it is skipped during playback */
169
+ muted(muted?: boolean): ActivationTrackBuilder;
170
+ }
171
+ /**
172
+ * Builder for control tracks. Provides `.clip()` for controlling nested objects/timelines.
173
+ * @category Animation and Sequencing
174
+ */
175
+ export interface ControlTrackBuilder extends TimelineBuilderBase {
176
+ /** Adds a control clip for a source object */
177
+ clip(sourceObject: Object3D, options: ControlClipOptions): ControlTrackBuilder;
178
+ /** Mutes this track so it is skipped during playback */
179
+ muted(muted?: boolean): ControlTrackBuilder;
180
+ }
181
+ /**
182
+ * Builder for signal tracks. Provides `.signal()` for callback-based signals and `.marker()` for asset-based markers.
183
+ * @category Animation and Sequencing
184
+ */
185
+ export interface SignalTrackBuilder extends TimelineBuilderBase {
186
+ /** Adds a signal with a callback that fires at the given time */
187
+ signal(time: number, callback: Function, options?: SignalMarkerOptions): SignalTrackBuilder;
188
+ /** Adds a signal marker referencing a signal asset by guid */
189
+ marker(time: number, asset: string, options?: SignalMarkerOptions): SignalTrackBuilder;
190
+ /** Mutes this track so it is skipped during playback */
191
+ muted(muted?: boolean): SignalTrackBuilder;
192
+ }
193
+ /**
194
+ * Builder for marker tracks. Provides `.marker()` for adding markers.
195
+ * @category Animation and Sequencing
196
+ */
197
+ export interface MarkerTrackBuilder extends TimelineBuilderBase {
198
+ /** Adds a marker referencing a signal asset by guid */
199
+ marker(time: number, asset: string, options?: SignalMarkerOptions): MarkerTrackBuilder;
200
+ /** Mutes this track so it is skipped during playback */
201
+ muted(muted?: boolean): MarkerTrackBuilder;
202
+ }
89
203
  /**
90
204
  * A fluent builder for creating timeline assets ({@link TimelineAssetModel}) from code.
91
205
  *
@@ -107,6 +221,19 @@ export declare type SignalMarkerOptions = {
107
221
  * director.play();
108
222
  * ```
109
223
  *
224
+ * @example With inline tracks (no pre-built clips needed)
225
+ * ```ts
226
+ * TimelineBuilder.create("DoorSequence")
227
+ * .animationTrack("Door", door)
228
+ * .track(door, "position", { from: [0, 0, 0], to: [2, 0, 0], duration: 1 })
229
+ * .track(light, "intensity", { from: 0, to: 5, duration: 1 })
230
+ * .signalTrack("Events")
231
+ * .signal(0.5, () => playSound("creak"))
232
+ * .install(director);
233
+ *
234
+ * director.play();
235
+ * ```
236
+ *
110
237
  * @example Using install() with signal callbacks
111
238
  * ```ts
112
239
  * TimelineBuilder.create("WithSignals")
@@ -135,51 +262,69 @@ export declare class TimelineBuilder {
135
262
  * @param name - Name for the timeline asset
136
263
  * @param seed - Optional numeric seed for deterministic guid generation. Defaults to `Date.now()`.
137
264
  */
138
- static create(name?: string, seed?: number): TimelineBuilder;
265
+ static create(name?: string, seed?: number): TimelineBuilderBase;
139
266
  /**
140
- * Adds an animation track. Subsequent `.clip()` calls add animation clips to this track.
267
+ * Adds an animation track. Chain `.clip()` calls to add pre-built clips,
268
+ * or chain `.track()` calls to define animation data inline:
269
+ *
270
+ * @example With pre-built AnimationClip
271
+ * ```ts
272
+ * .animationTrack("Character", animator)
273
+ * .clip(walkClip, { duration: 2, easeIn: 0.3 })
274
+ * .clip(runClip, { duration: 3 })
275
+ * ```
276
+ *
277
+ * @example With inline tracks
278
+ * ```ts
279
+ * .animationTrack("Door", door)
280
+ * .track(door, "position", { from: [0, 0, 0], to: [2, 0, 0], duration: 1 })
281
+ * .track(light, "intensity", { from: 0, to: 5, duration: 1 })
282
+ * ```
283
+ *
141
284
  * @param name - Display name for the track
142
285
  * @param binding - The Animator or Object3D to animate
143
286
  */
144
- animationTrack(name: string, binding?: Animator | Object3D | null): this;
287
+ animationTrack(name: string, binding?: Animator | Object3D | null): AnimationTrackBuilder;
145
288
  /**
146
289
  * Adds an audio track. Subsequent `.clip()` calls add audio clips to this track.
147
290
  * @param name - Display name for the track
148
291
  * @param binding - The AudioSource to play audio on (optional)
149
292
  * @param volume - Track volume multiplier (default: 1)
150
293
  */
151
- audioTrack(name: string, binding?: AudioSource | Object3D | null, volume?: number): this;
294
+ audioTrack(name: string, binding?: AudioSource | Object3D | null, volume?: number): AudioTrackBuilder;
152
295
  /**
153
296
  * Adds an activation track. Subsequent `.clip()` calls define when the bound object is active.
154
297
  * @param name - Display name for the track
155
298
  * @param binding - The Object3D to show/hide
156
299
  */
157
- activationTrack(name: string, binding?: Object3D | null): this;
300
+ activationTrack(name: string, binding?: Object3D | null): ActivationTrackBuilder;
158
301
  /**
159
302
  * Adds a control track. Subsequent `.clip()` calls control nested timelines or objects.
160
303
  * @param name - Display name for the track
161
304
  */
162
- controlTrack(name: string): this;
305
+ controlTrack(name: string): ControlTrackBuilder;
163
306
  /**
164
307
  * Adds a signal track. Use `.signal()` or `.marker()` to add signal markers.
165
308
  * @param name - Display name for the track
166
309
  * @param binding - The SignalReceiver component (optional — if using `.signal()` with callbacks, one is created automatically by {@link install})
167
310
  */
168
- signalTrack(name: string, binding?: SignalReceiver | Object3D | null): this;
311
+ signalTrack(name: string, binding?: SignalReceiver | Object3D | null): SignalTrackBuilder;
169
312
  /**
170
313
  * Adds a marker track. Use `.marker()` to add markers.
171
314
  * @param name - Display name for the track
172
315
  */
173
- markerTrack(name: string): this;
316
+ markerTrack(name: string): MarkerTrackBuilder;
174
317
  /**
175
318
  * Adds a clip to the current track. The clip type must match the track type.
176
319
  *
177
- * - On an **animation track**: pass an `AnimationClip` and optional {@link AnimationClipOptions}
320
+ * - On an **animation track**: pass an `AnimationClip`, a {@link TrackDescriptor}, or a `TrackDescriptor[]` and optional {@link AnimationClipOptions}
178
321
  * - On an **audio track**: pass a clip URL (string) and {@link AudioClipOptions}
179
322
  * - On an **activation track**: pass {@link ActivationClipOptions}
180
323
  * - On a **control track**: pass an Object3D and {@link ControlClipOptions}
181
324
  */
182
325
  clip(asset: AnimationClip, options?: AnimationClipOptions): this;
326
+ clip(descriptor: TrackDescriptor, options?: AnimationClipOptions): this;
327
+ clip(descriptors: TrackDescriptor[], options?: AnimationClipOptions): this;
183
328
  clip(url: string, options: AudioClipOptions): this;
184
329
  clip(options: ActivationClipOptions): this;
185
330
  clip(sourceObject: Object3D, options: ControlClipOptions): this;
@@ -214,6 +359,24 @@ export declare class TimelineBuilder {
214
359
  * Mutes the current track so it is skipped during playback.
215
360
  */
216
361
  muted(muted?: boolean): this;
362
+ /** Adds an animation track descriptor for an Object3D's position or scale to the current animation track */
363
+ track(target: Object3D, property: "position" | "scale", keyframes: KF<Vec3Value>, options?: TrackOptions): this;
364
+ /** Adds an animation track descriptor for an Object3D's quaternion to the current animation track */
365
+ track(target: Object3D, property: "quaternion", keyframes: KF<QuatValue>, options?: TrackOptions): this;
366
+ /** Adds an animation track descriptor for an Object3D's rotation (Euler, converted to quaternion) to the current animation track */
367
+ track(target: Object3D, property: "rotation", keyframes: KF<EulerValue>, options?: TrackOptions): this;
368
+ /** Adds an animation track descriptor for an Object3D's visibility to the current animation track */
369
+ track(target: Object3D, property: "visible", keyframes: KF<boolean>, options?: TrackOptions): this;
370
+ /** Adds an animation track descriptor for a material's numeric property to the current animation track */
371
+ track(target: Material, property: "opacity" | "roughness" | "metalness" | "alphaTest" | "emissiveIntensity" | "envMapIntensity" | "bumpScale" | "displacementScale" | "displacementBias", keyframes: KF<number>, options?: TrackOptions): this;
372
+ /** Adds an animation track descriptor for a material's color property to the current animation track */
373
+ track(target: Material, property: "color" | "emissive", keyframes: KF<ColorValue>, options?: TrackOptions): this;
374
+ /** Adds an animation track descriptor for a light's numeric property to the current animation track */
375
+ track(target: Light, property: "intensity" | "distance" | "angle" | "penumbra" | "decay", keyframes: KF<number>, options?: TrackOptions): this;
376
+ /** Adds an animation track descriptor for a light's color to the current animation track */
377
+ track(target: Light, property: "color", keyframes: KF<ColorValue>, options?: TrackOptions): this;
378
+ /** Adds an animation track descriptor for a camera's numeric property to the current animation track */
379
+ track(target: PerspectiveCamera, property: "fov" | "near" | "far" | "zoom", keyframes: KF<number>, options?: TrackOptions): this;
217
380
  /**
218
381
  * Builds and returns the {@link TimelineAssetModel}.
219
382
  * Assign the result to `PlayableDirector.playableAsset` to play it.
@@ -244,4 +407,7 @@ export declare class TimelineBuilder {
244
407
  */
245
408
  install(director: PlayableDirector): TimelineAssetModel;
246
409
  private pushTrack;
410
+ /** Commits any pending `.track()` descriptors on the current animation track into a clip */
411
+ private commitInlineTracks;
247
412
  }
413
+ export {};
@@ -1,6 +1,8 @@
1
+ import { AnimationClip, Object3D } from "three";
1
2
  import { GameObject } from "../Component.js";
2
3
  import { InstantiateIdProvider } from "../../engine/engine_networking_instantiate.js";
3
4
  import { EventList } from "../EventList.js";
5
+ import { resolveToClip, track as trackFn } from "../AnimationBuilder.js";
4
6
  import { SignalAsset, SignalReceiver, SignalReceiverEvent } from "./SignalAsset.js";
5
7
  import { ClipExtrapolation, TrackType } from "./TimelineModels.js";
6
8
  import { MarkerType } from "./TimelineModels.js";
@@ -25,6 +27,19 @@ import { MarkerType } from "./TimelineModels.js";
25
27
  * director.play();
26
28
  * ```
27
29
  *
30
+ * @example With inline tracks (no pre-built clips needed)
31
+ * ```ts
32
+ * TimelineBuilder.create("DoorSequence")
33
+ * .animationTrack("Door", door)
34
+ * .track(door, "position", { from: [0, 0, 0], to: [2, 0, 0], duration: 1 })
35
+ * .track(light, "intensity", { from: 0, to: 5, duration: 1 })
36
+ * .signalTrack("Events")
37
+ * .signal(0.5, () => playSound("creak"))
38
+ * .install(director);
39
+ *
40
+ * director.play();
41
+ * ```
42
+ *
28
43
  * @example Using install() with signal callbacks
29
44
  * ```ts
30
45
  * TimelineBuilder.create("WithSignals")
@@ -61,11 +76,28 @@ export class TimelineBuilder {
61
76
  }
62
77
  // #region Track creation
63
78
  /**
64
- * Adds an animation track. Subsequent `.clip()` calls add animation clips to this track.
79
+ * Adds an animation track. Chain `.clip()` calls to add pre-built clips,
80
+ * or chain `.track()` calls to define animation data inline:
81
+ *
82
+ * @example With pre-built AnimationClip
83
+ * ```ts
84
+ * .animationTrack("Character", animator)
85
+ * .clip(walkClip, { duration: 2, easeIn: 0.3 })
86
+ * .clip(runClip, { duration: 3 })
87
+ * ```
88
+ *
89
+ * @example With inline tracks
90
+ * ```ts
91
+ * .animationTrack("Door", door)
92
+ * .track(door, "position", { from: [0, 0, 0], to: [2, 0, 0], duration: 1 })
93
+ * .track(light, "intensity", { from: 0, to: 5, duration: 1 })
94
+ * ```
95
+ *
65
96
  * @param name - Display name for the track
66
97
  * @param binding - The Animator or Object3D to animate
67
98
  */
68
99
  animationTrack(name, binding) {
100
+ this.commitInlineTracks();
69
101
  this._currentTrack = this.pushTrack(name, TrackType.Animation, binding ?? null);
70
102
  return this;
71
103
  }
@@ -76,6 +108,7 @@ export class TimelineBuilder {
76
108
  * @param volume - Track volume multiplier (default: 1)
77
109
  */
78
110
  audioTrack(name, binding, volume) {
111
+ this.commitInlineTracks();
79
112
  this._currentTrack = this.pushTrack(name, TrackType.Audio, binding ?? null);
80
113
  this._currentTrack.volume = volume;
81
114
  return this;
@@ -86,6 +119,7 @@ export class TimelineBuilder {
86
119
  * @param binding - The Object3D to show/hide
87
120
  */
88
121
  activationTrack(name, binding) {
122
+ this.commitInlineTracks();
89
123
  this._currentTrack = this.pushTrack(name, TrackType.Activation, binding ?? null);
90
124
  return this;
91
125
  }
@@ -94,6 +128,7 @@ export class TimelineBuilder {
94
128
  * @param name - Display name for the track
95
129
  */
96
130
  controlTrack(name) {
131
+ this.commitInlineTracks();
97
132
  this._currentTrack = this.pushTrack(name, TrackType.Control, null);
98
133
  return this;
99
134
  }
@@ -103,6 +138,7 @@ export class TimelineBuilder {
103
138
  * @param binding - The SignalReceiver component (optional — if using `.signal()` with callbacks, one is created automatically by {@link install})
104
139
  */
105
140
  signalTrack(name, binding) {
141
+ this.commitInlineTracks();
106
142
  this._currentTrack = this.pushTrack(name, TrackType.Signal, binding ?? null);
107
143
  return this;
108
144
  }
@@ -111,16 +147,31 @@ export class TimelineBuilder {
111
147
  * @param name - Display name for the track
112
148
  */
113
149
  markerTrack(name) {
150
+ this.commitInlineTracks();
114
151
  this._currentTrack = this.pushTrack(name, TrackType.Marker, null);
115
152
  return this;
116
153
  }
117
154
  clip(assetOrOptions, options) {
118
155
  if (!this._currentTrack)
119
156
  throw new Error("TimelineBuilder: .clip() must be called after a track method (e.g. .animationTrack())");
157
+ this.commitInlineTracks();
120
158
  const track = this._currentTrack;
121
159
  switch (track.type) {
122
160
  case TrackType.Animation: {
123
- const animClip = assetOrOptions;
161
+ // Resolve TrackDescriptor(s) to AnimationClip if needed
162
+ let animClip;
163
+ if (assetOrOptions instanceof AnimationClip) {
164
+ animClip = assetOrOptions;
165
+ }
166
+ else {
167
+ const descriptors = Array.isArray(assetOrOptions) ? assetOrOptions : [assetOrOptions];
168
+ // Use the track's binding as root for resolution
169
+ const binding = track.outputs[0];
170
+ const root = binding instanceof Object3D ? binding
171
+ : (binding != null && "gameObject" in binding) ? binding.gameObject
172
+ : undefined;
173
+ animClip = resolveToClip(descriptors, root);
174
+ }
124
175
  const opts = (options ?? {});
125
176
  const duration = opts.duration ?? animClip.duration;
126
177
  const start = opts.start ?? track.cursor;
@@ -302,6 +353,26 @@ export class TimelineBuilder {
302
353
  this._currentTrack.muted = muted;
303
354
  return this;
304
355
  }
356
+ /**
357
+ * Adds an animation track descriptor to the current animation track.
358
+ * Multiple `.track()` calls accumulate into a single animation clip that is
359
+ * committed when the next `.clip()`, track method, or `.build()`/`.install()` is called.
360
+ *
361
+ * Must be called after `.animationTrack()`.
362
+ *
363
+ * @param target - The object whose type determines valid properties and value types
364
+ * @param property - The property to animate
365
+ * @param keyframes - Keyframe array or {@link Tween} shorthand
366
+ * @param options - Optional {@link TrackOptions} with a `root` for named targeting
367
+ */
368
+ track(target, property, keyframes, options) {
369
+ if (!this._currentTrack)
370
+ throw new Error("TimelineBuilder: .track() must be called after .animationTrack()");
371
+ if (this._currentTrack.type !== TrackType.Animation)
372
+ throw new Error("TimelineBuilder: .track() is only supported on animation tracks");
373
+ this._currentTrack.inlineTracks.push(trackFn(target, property, keyframes, options));
374
+ return this;
375
+ }
305
376
  // #endregion
306
377
  /**
307
378
  * Builds and returns the {@link TimelineAssetModel}.
@@ -311,6 +382,7 @@ export class TimelineBuilder {
311
382
  * internally and also wires up the SignalReceiver on the director's GameObject.
312
383
  */
313
384
  build() {
385
+ this.commitInlineTracks();
314
386
  const tracks = this._tracks.map(t => {
315
387
  const track = {
316
388
  name: t.name,
@@ -392,9 +464,43 @@ export class TimelineBuilder {
392
464
  clips: [],
393
465
  markers: [],
394
466
  cursor: 0,
467
+ inlineTracks: [],
395
468
  };
396
469
  this._tracks.push(track);
397
470
  return track;
398
471
  }
472
+ /** Commits any pending `.track()` descriptors on the current animation track into a clip */
473
+ commitInlineTracks() {
474
+ if (!this._currentTrack || this._currentTrack.inlineTracks.length === 0)
475
+ return;
476
+ const t = this._currentTrack;
477
+ const binding = t.outputs[0];
478
+ const root = binding instanceof Object3D ? binding
479
+ : (binding != null && "gameObject" in binding) ? binding.gameObject
480
+ : undefined;
481
+ const animClip = resolveToClip(t.inlineTracks, root);
482
+ const start = t.cursor;
483
+ const duration = animClip.duration;
484
+ const clipModel = {
485
+ start,
486
+ end: start + duration,
487
+ duration,
488
+ timeScale: 1,
489
+ clipIn: 0,
490
+ easeInDuration: 0,
491
+ easeOutDuration: 0,
492
+ preExtrapolationMode: ClipExtrapolation.None,
493
+ postExtrapolationMode: ClipExtrapolation.None,
494
+ asset: {
495
+ clip: animClip,
496
+ loop: false,
497
+ duration: animClip.duration,
498
+ removeStartOffset: false,
499
+ },
500
+ };
501
+ t.clips.push(clipModel);
502
+ t.cursor = start + duration;
503
+ t.inlineTracks = [];
504
+ }
399
505
  }
400
506
  //# sourceMappingURL=TimelineBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimelineBuilder.js","sourceRoot":"","sources":["../../../src/engine-components/timeline/TimelineBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimelineBuilder.js","sourceRoot":"","sources":["../../../src/engine-components/timeline/TimelineBuilder.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import * as Models from "./TimelineModels.js";
8
8
  * A TrackHandler is responsible for evaluating a specific type of timeline track.
9
9
  * A timeline track can be an animation track, audio track, signal track, control track etc and is controlled by a {@link PlayableDirector}.
10
10
  */
11
- export declare abstract class TrackHandler {
11
+ export declare abstract class TimelineTrackHandler {
12
12
  director: PlayableDirector;
13
13
  track: Models.TrackModel;
14
14
  get muted(): boolean;
@@ -26,7 +26,7 @@ export declare abstract class TrackHandler {
26
26
  getClipTimeNormalized(time: number, model: Models.ClipModel): number;
27
27
  evaluateWeight(time: number, index: number, models: Array<Models.ClipModel>, isActive?: boolean): number;
28
28
  }
29
- export declare class AnimationTrackHandler extends TrackHandler {
29
+ export declare class TimelineAnimationTrack extends TimelineTrackHandler {
30
30
  /** @internal */
31
31
  models: Array<Models.ClipModel>;
32
32
  /** @internal */
@@ -83,7 +83,7 @@ declare type AudioClipModel = Models.ClipModel & {
83
83
  * - The director is paused (`director.pause()`)
84
84
  * - The director is disabled or destroyed
85
85
  */
86
- export declare class AudioTrackHandler extends TrackHandler {
86
+ export declare class TimelineAudioTrack extends TimelineTrackHandler {
87
87
  models: Array<AudioClipModel>;
88
88
  listener: AudioListener;
89
89
  audio: Array<Audio>;
@@ -111,7 +111,7 @@ export declare class AudioTrackHandler extends TrackHandler {
111
111
  static dispose(): void;
112
112
  private handleAudioLoading;
113
113
  }
114
- export declare class MarkerTrackHandler extends TrackHandler {
114
+ export declare class TimelineMarkerTrack extends TimelineTrackHandler {
115
115
  models: Array<Models.MarkerModel & Record<string, any>>;
116
116
  needsSorting: boolean;
117
117
  foreachMarker<T>(type?: string | null): Generator<T, void, unknown>;
@@ -119,7 +119,7 @@ export declare class MarkerTrackHandler extends TrackHandler {
119
119
  evaluate(_time: number): void;
120
120
  private sort;
121
121
  }
122
- export declare class SignalTrackHandler extends TrackHandler {
122
+ export declare class SignalTrackHandler extends TimelineTrackHandler {
123
123
  models: Models.SignalMarkerModel[];
124
124
  didTrigger: boolean[];
125
125
  receivers: Array<SignalReceiver | null>;
@@ -128,10 +128,18 @@ export declare class SignalTrackHandler extends TrackHandler {
128
128
  onMuteChanged(): void;
129
129
  evaluate(time: number): void;
130
130
  }
131
- export declare class ActivationTrackHandler extends TrackHandler {
131
+ /**
132
+ * Handles activation (visibility) of bound objects for a timeline activation track.
133
+ *
134
+ * Each clip on the track defines a time range during which the bound objects should be active (visible).
135
+ * @see TimelineTrackHandler for details on how tracks and clips work in general, and how to mutate them at runtime.
136
+ * @see PlayableDirector for how to control timeline playback and time.
137
+ * @see TimelineBuilder for how to create and configure timelines and tracks in the editor.
138
+ */
139
+ export declare class TimelineActivationTrack extends TimelineTrackHandler {
132
140
  evaluate(time: number): void;
133
141
  }
134
- export declare class ControlTrackHandler extends TrackHandler {
142
+ export declare class TimelineControlTrack extends TimelineTrackHandler {
135
143
  models: Array<Models.ClipModel>;
136
144
  timelines: Array<PlayableDirector | null>;
137
145
  resolveSourceObjects(_context: Context): void;