@needle-tools/engine 4.2.5 → 4.3.0-alpha.1
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/CHANGELOG.md +9 -0
- package/components.needle.json +1 -1
- package/dist/needle-engine.bundle.js +4245 -2977
- package/dist/needle-engine.bundle.light.js +4236 -2968
- package/dist/needle-engine.bundle.light.min.js +73 -73
- package/dist/needle-engine.bundle.light.umd.cjs +61 -61
- package/dist/needle-engine.bundle.min.js +62 -62
- package/dist/needle-engine.bundle.umd.cjs +61 -61
- package/dist/needle-engine.light.d.ts +9 -9
- package/dist/three-examples.js +825 -794
- package/dist/three-examples.light.js +825 -794
- package/dist/three-examples.light.min.js +12 -12
- package/dist/three-examples.light.umd.cjs +10 -10
- package/dist/three-examples.min.js +12 -12
- package/dist/three-examples.umd.cjs +10 -10
- package/lib/engine/engine_addressables.d.ts +3 -0
- package/lib/engine/engine_addressables.js +18 -0
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_input.d.ts +20 -1
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_types.d.ts +162 -17
- package/lib/engine-components/Animator.d.ts +129 -21
- package/lib/engine-components/Animator.js +115 -21
- package/lib/engine-components/Animator.js.map +1 -1
- package/lib/engine-components/AnimatorController.d.ts +161 -32
- package/lib/engine-components/AnimatorController.js +176 -29
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/AudioListener.d.ts +16 -5
- package/lib/engine-components/AudioListener.js +16 -5
- package/lib/engine-components/AudioListener.js.map +1 -1
- package/lib/engine-components/AudioSource.d.ts +120 -28
- package/lib/engine-components/AudioSource.js +120 -37
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/AvatarLoader.d.ts +61 -0
- package/lib/engine-components/AvatarLoader.js +61 -1
- package/lib/engine-components/AvatarLoader.js.map +1 -1
- package/lib/engine-components/AxesHelper.d.ts +19 -1
- package/lib/engine-components/AxesHelper.js +19 -1
- package/lib/engine-components/AxesHelper.js.map +1 -1
- package/lib/engine-components/BoxHelperComponent.d.ts +26 -0
- package/lib/engine-components/BoxHelperComponent.js +26 -0
- package/lib/engine-components/BoxHelperComponent.js.map +1 -1
- package/lib/engine-components/Camera.d.ts +126 -37
- package/lib/engine-components/Camera.js +139 -37
- package/lib/engine-components/Camera.js.map +1 -1
- package/lib/engine-components/CameraUtils.js +20 -0
- package/lib/engine-components/CameraUtils.js.map +1 -1
- package/lib/engine-components/Collider.d.ts +95 -21
- package/lib/engine-components/Collider.js +100 -23
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/Component.d.ts +554 -106
- package/lib/engine-components/Component.js +352 -81
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/DragControls.d.ts +95 -21
- package/lib/engine-components/DragControls.js +126 -32
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/DropListener.d.ts +99 -16
- package/lib/engine-components/DropListener.js +119 -14
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/Light.d.ts +102 -5
- package/lib/engine-components/Light.js +102 -44
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/NeedleMenu.d.ts +28 -11
- package/lib/engine-components/NeedleMenu.js +28 -11
- package/lib/engine-components/NeedleMenu.js.map +1 -1
- package/lib/engine-components/Networking.d.ts +37 -5
- package/lib/engine-components/Networking.js +37 -5
- package/lib/engine-components/Networking.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.d.ts +8 -0
- package/lib/engine-components/SceneSwitcher.js +72 -8
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/SpatialTrigger.d.ts +66 -1
- package/lib/engine-components/SpatialTrigger.js +74 -2
- package/lib/engine-components/SpatialTrigger.js.map +1 -1
- package/lib/engine-components/SpectatorCamera.d.ts +66 -4
- package/lib/engine-components/SpectatorCamera.js +132 -6
- package/lib/engine-components/SpectatorCamera.js.map +1 -1
- package/lib/engine-components/SyncedTransform.d.ts +45 -6
- package/lib/engine-components/SyncedTransform.js +45 -6
- package/lib/engine-components/SyncedTransform.js.map +1 -1
- package/lib/engine-components/TransformGizmo.d.ts +49 -3
- package/lib/engine-components/TransformGizmo.js +49 -3
- package/lib/engine-components/TransformGizmo.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.d.ts +1 -0
- package/lib/engine-components/ui/EventSystem.js +8 -5
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/lib/engine-components/webxr/WebXR.d.ts +131 -22
- package/lib/engine-components/webxr/WebXR.js +132 -23
- package/lib/engine-components/webxr/WebXR.js.map +1 -1
- package/lib/engine-components-experimental/networking/PlayerSync.d.ts +82 -9
- package/lib/engine-components-experimental/networking/PlayerSync.js +76 -11
- package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/alias.js +6 -3
- package/src/engine/engine_addressables.ts +21 -0
- package/src/engine/engine_input.ts +20 -1
- package/src/engine/engine_types.ts +179 -18
- package/src/engine-components/Animator.ts +142 -22
- package/src/engine-components/AnimatorController.ts +184 -34
- package/src/engine-components/AudioListener.ts +16 -5
- package/src/engine-components/AudioSource.ts +126 -37
- package/src/engine-components/AvatarLoader.ts +61 -2
- package/src/engine-components/AxesHelper.ts +21 -1
- package/src/engine-components/BoxHelperComponent.ts +26 -0
- package/src/engine-components/Camera.ts +147 -41
- package/src/engine-components/CameraUtils.ts +20 -0
- package/src/engine-components/Collider.ts +102 -27
- package/src/engine-components/Component.ts +605 -129
- package/src/engine-components/DragControls.ts +134 -38
- package/src/engine-components/DropListener.ts +143 -23
- package/src/engine-components/Light.ts +105 -44
- package/src/engine-components/NeedleMenu.ts +29 -11
- package/src/engine-components/Networking.ts +37 -6
- package/src/engine-components/SceneSwitcher.ts +78 -9
- package/src/engine-components/SpatialTrigger.ts +80 -3
- package/src/engine-components/SpectatorCamera.ts +136 -18
- package/src/engine-components/SyncedTransform.ts +50 -7
- package/src/engine-components/TransformGizmo.ts +49 -4
- package/src/engine-components/ui/EventSystem.ts +9 -7
- package/src/engine-components/webxr/WebXR.ts +144 -27
- package/src/engine-components-experimental/networking/PlayerSync.ts +85 -13
|
@@ -15,71 +15,105 @@ import { AudioListener } from "./AudioListener.js";
|
|
|
15
15
|
import { Behaviour, GameObject } from "./Component.js";
|
|
16
16
|
const debug = getParam("debugaudio");
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Defines how audio volume attenuates over distance from the listener.
|
|
19
19
|
*/
|
|
20
20
|
export var AudioRolloffMode;
|
|
21
21
|
(function (AudioRolloffMode) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Logarithmic rolloff provides a natural, real-world attenuation where volume decreases
|
|
24
|
+
* exponentially with distance.
|
|
25
|
+
*/
|
|
25
26
|
AudioRolloffMode[AudioRolloffMode["Logarithmic"] = 0] = "Logarithmic";
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Linear rolloff provides a straightforward volume reduction that decreases at a constant
|
|
29
|
+
* rate with distance.
|
|
30
|
+
*/
|
|
29
31
|
AudioRolloffMode[AudioRolloffMode["Linear"] = 1] = "Linear";
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Custom rolloff allows for defining specialized distance-based attenuation curves.
|
|
34
|
+
* Note: Custom rolloff is not fully implemented in this version.
|
|
35
|
+
*/
|
|
33
36
|
AudioRolloffMode[AudioRolloffMode["Custom"] = 2] = "Custom";
|
|
34
37
|
})(AudioRolloffMode || (AudioRolloffMode = {}));
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
38
|
+
/**
|
|
39
|
+
* Plays audio clips in the scene, with support for spatial positioning.
|
|
40
|
+
*
|
|
41
|
+
* The AudioSource component can play audio files or media streams with
|
|
42
|
+
* options for spatial blending, volume control, looping, and more.
|
|
43
|
+
*
|
|
44
|
+
* When a page loses visibility (tab becomes inactive), audio will automatically
|
|
45
|
+
* pause unless {@link playInBackground} is set to true. On mobile devices, audio always
|
|
46
|
+
* pauses regardless of this setting. When the page becomes visible again,
|
|
47
|
+
* previously playing audio will resume.
|
|
48
|
+
*
|
|
49
|
+
* AudioSource also responds to application mute state changes. When the application
|
|
50
|
+
* is muted, the volume is set to 0. When unmuted, the volume
|
|
51
|
+
* returns to its previous value.
|
|
52
|
+
*
|
|
37
53
|
* @category Multimedia
|
|
38
54
|
* @group Components
|
|
39
55
|
*/
|
|
40
56
|
export class AudioSource extends Behaviour {
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
57
|
+
/**
|
|
58
|
+
* Checks if the user has interacted with the page to allow audio playback.
|
|
59
|
+
* Audio playback often requires a user gesture first due to browser autoplay policies.
|
|
60
|
+
* This is the same as calling {@link Application.userInteractionRegistered}.
|
|
61
|
+
*
|
|
62
|
+
* @returns Whether user interaction has been registered to allow audio playback
|
|
43
63
|
*/
|
|
44
64
|
static get userInteractionRegistered() {
|
|
45
65
|
return Application.userInteractionRegistered;
|
|
46
66
|
}
|
|
47
|
-
/**
|
|
48
|
-
*
|
|
67
|
+
/**
|
|
68
|
+
* Registers a callback that will be executed once the user has interacted with the page,
|
|
69
|
+
* allowing audio playback to begin.
|
|
70
|
+
* This is the same as calling {@link Application.registerWaitForInteraction}.
|
|
71
|
+
*
|
|
72
|
+
* @param cb - The callback function to execute when user interaction is registered
|
|
49
73
|
*/
|
|
50
74
|
static registerWaitForAllowAudio(cb) {
|
|
51
75
|
Application.registerWaitForInteraction(cb);
|
|
52
76
|
}
|
|
53
77
|
/**
|
|
54
|
-
* The audio clip to play. Can be a string
|
|
78
|
+
* The audio clip to play. Can be a URL string pointing to an audio file or a {@link MediaStream} object.
|
|
55
79
|
*/
|
|
56
80
|
clip = "";
|
|
57
81
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
82
|
+
* When true, the audio will automatically start playing when the component is enabled.
|
|
83
|
+
* When false, you must call play() manually to start audio playback.
|
|
60
84
|
* @default false
|
|
61
|
-
|
|
85
|
+
*/
|
|
62
86
|
playOnAwake = false;
|
|
63
87
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
88
|
+
* When true, the audio clip will be loaded during initialization rather than when play() is called.
|
|
89
|
+
* This can reduce playback delay but increases initial loading time.
|
|
66
90
|
* @default false
|
|
67
91
|
*/
|
|
68
92
|
preload = false;
|
|
69
93
|
/**
|
|
70
|
-
* When true,
|
|
94
|
+
* When true, audio will continue playing when the browser tab loses focus.
|
|
95
|
+
* When false, audio will pause when the tab is minimized or not active.
|
|
71
96
|
* @default true
|
|
72
97
|
*/
|
|
73
98
|
playInBackground = true;
|
|
74
99
|
/**
|
|
75
|
-
*
|
|
100
|
+
* Indicates whether the audio is currently playing.
|
|
101
|
+
*
|
|
102
|
+
* @returns True if the audio is playing, false otherwise
|
|
76
103
|
*/
|
|
77
104
|
get isPlaying() { return this.sound?.isPlaying ?? false; }
|
|
78
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* The total duration of the current audio clip in seconds.
|
|
107
|
+
*
|
|
108
|
+
* @returns Duration in seconds or undefined if no clip is loaded
|
|
109
|
+
*/
|
|
79
110
|
get duration() {
|
|
80
111
|
return this.sound?.buffer?.duration;
|
|
81
112
|
}
|
|
82
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* The current playback position as a normalized value between 0 and 1.
|
|
115
|
+
* Can be set to seek to a specific position in the audio.
|
|
116
|
+
*/
|
|
83
117
|
get time01() {
|
|
84
118
|
const duration = this.duration;
|
|
85
119
|
if (duration && this.sound) {
|
|
@@ -94,7 +128,8 @@ export class AudioSource extends Behaviour {
|
|
|
94
128
|
}
|
|
95
129
|
}
|
|
96
130
|
/**
|
|
97
|
-
* The current
|
|
131
|
+
* The current playback position in seconds.
|
|
132
|
+
* Can be set to seek to a specific time in the audio.
|
|
98
133
|
*/
|
|
99
134
|
get time() { return this.sound?.source ? (this.sound.source?.context.currentTime - this._lastContextTime + this.sound.offset) : 0; }
|
|
100
135
|
set time(val) {
|
|
@@ -109,8 +144,8 @@ export class AudioSource extends Behaviour {
|
|
|
109
144
|
}
|
|
110
145
|
}
|
|
111
146
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
147
|
+
* When true, the audio will repeat after reaching the end.
|
|
148
|
+
* When false, audio will play once and stop.
|
|
114
149
|
* @default false
|
|
115
150
|
*/
|
|
116
151
|
get loop() {
|
|
@@ -123,10 +158,11 @@ export class AudioSource extends Behaviour {
|
|
|
123
158
|
if (this.sound)
|
|
124
159
|
this.sound.setLoop(val);
|
|
125
160
|
}
|
|
126
|
-
/**
|
|
127
|
-
*
|
|
128
|
-
* 0
|
|
129
|
-
*
|
|
161
|
+
/**
|
|
162
|
+
* Controls how the audio is positioned in space.
|
|
163
|
+
* Values range from 0 (2D, non-positional) to 1 (fully 3D positioned).
|
|
164
|
+
* Note: 2D playback is not fully supported in the current implementation.
|
|
165
|
+
*/
|
|
130
166
|
get spatialBlend() {
|
|
131
167
|
return this._spatialBlend;
|
|
132
168
|
}
|
|
@@ -136,6 +172,10 @@ export class AudioSource extends Behaviour {
|
|
|
136
172
|
this._spatialBlend = val;
|
|
137
173
|
this._needUpdateSpatialDistanceSettings = true;
|
|
138
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* The minimum distance from the audio source at which the volume starts to attenuate.
|
|
177
|
+
* Within this radius, the audio plays at full volume regardless of distance.
|
|
178
|
+
*/
|
|
139
179
|
get minDistance() {
|
|
140
180
|
return this._minDistance;
|
|
141
181
|
}
|
|
@@ -145,6 +185,10 @@ export class AudioSource extends Behaviour {
|
|
|
145
185
|
this._minDistance = val;
|
|
146
186
|
this._needUpdateSpatialDistanceSettings = true;
|
|
147
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* The maximum distance from the audio source beyond which the volume no longer decreases.
|
|
190
|
+
* This defines the outer limit of the attenuation curve.
|
|
191
|
+
*/
|
|
148
192
|
get maxDistance() {
|
|
149
193
|
return this._maxDistance;
|
|
150
194
|
}
|
|
@@ -157,6 +201,11 @@ export class AudioSource extends Behaviour {
|
|
|
157
201
|
_spatialBlend = 0;
|
|
158
202
|
_minDistance = 1;
|
|
159
203
|
_maxDistance = 100;
|
|
204
|
+
/**
|
|
205
|
+
* Controls the overall volume/loudness of the audio.
|
|
206
|
+
* Values range from 0 (silent) to 1 (full volume).
|
|
207
|
+
* @default 1
|
|
208
|
+
*/
|
|
160
209
|
get volume() { return this._volume; }
|
|
161
210
|
set volume(val) {
|
|
162
211
|
this._volume = val;
|
|
@@ -167,6 +216,12 @@ export class AudioSource extends Behaviour {
|
|
|
167
216
|
}
|
|
168
217
|
}
|
|
169
218
|
_volume = 1;
|
|
219
|
+
/**
|
|
220
|
+
* Controls the playback rate (speed) of the audio.
|
|
221
|
+
* Values greater than 1 increase speed, values less than 1 decrease it.
|
|
222
|
+
* This affects both speed and pitch of the audio.
|
|
223
|
+
* @default 1
|
|
224
|
+
*/
|
|
170
225
|
set pitch(val) {
|
|
171
226
|
if (this.sound)
|
|
172
227
|
this.sound.setPlaybackRate(val);
|
|
@@ -174,6 +229,11 @@ export class AudioSource extends Behaviour {
|
|
|
174
229
|
get pitch() {
|
|
175
230
|
return this.sound ? this.sound.getPlaybackRate() : 1;
|
|
176
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Determines how audio volume decreases with distance from the listener.
|
|
234
|
+
* @default AudioRolloffMode.Logarithmic
|
|
235
|
+
* @see {@link AudioRolloffMode}
|
|
236
|
+
*/
|
|
177
237
|
rollOffMode = 0;
|
|
178
238
|
_loop = false;
|
|
179
239
|
sound = null;
|
|
@@ -185,6 +245,12 @@ export class AudioSource extends Behaviour {
|
|
|
185
245
|
// there is maybe a better way to set a audio clip current time?!
|
|
186
246
|
_lastClipStartedLoading = null;
|
|
187
247
|
_audioElement = null;
|
|
248
|
+
/**
|
|
249
|
+
* Returns the underlying {@link PositionalAudio} object, creating it if necessary.
|
|
250
|
+
* The audio source needs a user interaction to be initialized due to browser autoplay policies.
|
|
251
|
+
*
|
|
252
|
+
* @returns The three.js PositionalAudio object or null if unavailable
|
|
253
|
+
*/
|
|
188
254
|
get Sound() {
|
|
189
255
|
if (!this.sound && AudioSource.userInteractionRegistered) {
|
|
190
256
|
let listener = GameObject.getComponent(this.context.mainCamera, AudioListener) ?? GameObject.findObjectOfType(AudioListener, this.context);
|
|
@@ -230,8 +296,18 @@ export class AudioSource extends Behaviour {
|
|
|
230
296
|
// }
|
|
231
297
|
// }
|
|
232
298
|
// }
|
|
299
|
+
/**
|
|
300
|
+
* Indicates whether the audio source is queued to play when possible.
|
|
301
|
+
* This may be true before user interaction has been registered.
|
|
302
|
+
*
|
|
303
|
+
* @returns Whether the audio source intends to play
|
|
304
|
+
*/
|
|
233
305
|
get ShouldPlay() { return this.shouldPlay; }
|
|
234
|
-
/**
|
|
306
|
+
/**
|
|
307
|
+
* Returns the Web Audio API context associated with this audio source.
|
|
308
|
+
*
|
|
309
|
+
* @returns The {@link AudioContext} or null if not available
|
|
310
|
+
*/
|
|
235
311
|
get audioContext() {
|
|
236
312
|
return this.sound?.context;
|
|
237
313
|
}
|
|
@@ -396,7 +472,12 @@ export class AudioSource extends Behaviour {
|
|
|
396
472
|
this.createAudio();
|
|
397
473
|
}
|
|
398
474
|
}
|
|
399
|
-
/**
|
|
475
|
+
/**
|
|
476
|
+
* Plays the audio clip or media stream.
|
|
477
|
+
* If no argument is provided, plays the currently assigned clip.
|
|
478
|
+
*
|
|
479
|
+
* @param clip - Optional audio clip or {@link MediaStream} to play
|
|
480
|
+
*/
|
|
400
481
|
play(clip = undefined) {
|
|
401
482
|
// use audio source's clip when no clip is passed in
|
|
402
483
|
if (!clip && this.clip)
|
|
@@ -450,7 +531,8 @@ export class AudioSource extends Behaviour {
|
|
|
450
531
|
}
|
|
451
532
|
}
|
|
452
533
|
/**
|
|
453
|
-
*
|
|
534
|
+
* Pauses audio playback while maintaining the current position.
|
|
535
|
+
* Use play() to resume from the paused position.
|
|
454
536
|
*/
|
|
455
537
|
pause() {
|
|
456
538
|
if (debug)
|
|
@@ -464,7 +546,8 @@ export class AudioSource extends Behaviour {
|
|
|
464
546
|
this._audioElement?.remove();
|
|
465
547
|
}
|
|
466
548
|
/**
|
|
467
|
-
*
|
|
549
|
+
* Stops audio playback completely and resets the playback position to the beginning.
|
|
550
|
+
* Unlike pause(), calling play() after stop() will start from the beginning.
|
|
468
551
|
*/
|
|
469
552
|
stop() {
|
|
470
553
|
if (debug)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioSource.js","sourceRoot":"","sources":["../../src/engine-components/AudioSource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AudioSource.js","sourceRoot":"","sources":["../../src/engine-components/AudioSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,80 @@
|
|
|
1
1
|
import { Object3D } from "three";
|
|
2
2
|
import { Context } from "../engine/engine_setup.js";
|
|
3
|
+
/**
|
|
4
|
+
* Represents an avatar model with head and hands references.
|
|
5
|
+
* Used for representing characters in 3D space.
|
|
6
|
+
*/
|
|
3
7
|
export declare class AvatarModel {
|
|
8
|
+
/** The root object of the avatar model */
|
|
4
9
|
root: Object3D;
|
|
10
|
+
/** The head object of the avatar model */
|
|
5
11
|
head: Object3D;
|
|
12
|
+
/** The left hand object of the avatar model, if available */
|
|
6
13
|
leftHand: Object3D | null;
|
|
14
|
+
/** The right hand object of the avatar model, if available */
|
|
7
15
|
rigthHand: Object3D | null;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if the avatar model has a valid configuration.
|
|
18
|
+
* An avatar is considered valid if it has a head.
|
|
19
|
+
* @returns Whether the avatar has a valid setup
|
|
20
|
+
*/
|
|
8
21
|
get isValid(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new avatar model.
|
|
24
|
+
* @param root The root object of the avatar
|
|
25
|
+
* @param head The head object of the avatar
|
|
26
|
+
* @param leftHand The left hand object of the avatar
|
|
27
|
+
* @param rigthHand The right hand object of the avatar
|
|
28
|
+
*/
|
|
9
29
|
constructor(root: Object3D, head: Object3D, leftHand: Object3D | null, rigthHand: Object3D | null);
|
|
10
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Handles loading and instantiating avatar models from various sources.
|
|
33
|
+
* Provides functionality to find and extract important parts of an avatar (head, hands).
|
|
34
|
+
*
|
|
35
|
+
* Debug mode can be enabled with the URL parameter `?debugavatar`,
|
|
36
|
+
* which will log detailed information about avatar loading and configuration.
|
|
37
|
+
*/
|
|
11
38
|
export declare class AvatarLoader {
|
|
12
39
|
private readonly avatarRegistryUrl;
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves or creates a new avatar instance from an ID or existing Object3D.
|
|
42
|
+
* @param context The application context
|
|
43
|
+
* @param avatarId Either a string ID to load an avatar or an existing Object3D to use as avatar
|
|
44
|
+
* @returns Promise resolving to an AvatarModel if successful, or null if failed
|
|
45
|
+
*/
|
|
13
46
|
getOrCreateNewAvatarInstance(context: Context, avatarId: string | Object3D): Promise<AvatarModel | null>;
|
|
47
|
+
/**
|
|
48
|
+
* Loads an avatar model from a file or registry using the provided ID.
|
|
49
|
+
* @param context The engine context
|
|
50
|
+
* @param avatarId The ID of the avatar to load
|
|
51
|
+
* @returns Promise resolving to the loaded avatar's Object3D, or null if failed
|
|
52
|
+
*/
|
|
14
53
|
private loadAvatar;
|
|
54
|
+
/**
|
|
55
|
+
* Caches an avatar model for reuse.
|
|
56
|
+
* @param _id The ID to associate with the model
|
|
57
|
+
* @param _model The avatar model to cache
|
|
58
|
+
*/
|
|
15
59
|
private cacheModel;
|
|
60
|
+
/**
|
|
61
|
+
* Analyzes an Object3D to find avatar parts (head, hands) based on naming conventions.
|
|
62
|
+
* @param obj The Object3D to search for avatar parts
|
|
63
|
+
* @returns A structured AvatarModel with references to found parts
|
|
64
|
+
*/
|
|
16
65
|
private findAvatar;
|
|
66
|
+
/**
|
|
67
|
+
* Recursively searches for an avatar part by name within an Object3D hierarchy.
|
|
68
|
+
* @param obj The Object3D to search within
|
|
69
|
+
* @param searchString Array of strings that should all be present in the object name
|
|
70
|
+
* @returns The found Object3D part or null if not found
|
|
71
|
+
*/
|
|
17
72
|
private findAvatarPart;
|
|
73
|
+
/**
|
|
74
|
+
* Handles HTTP response errors from avatar loading operations.
|
|
75
|
+
* @param response The fetch API response to check
|
|
76
|
+
* @returns The response if it was ok
|
|
77
|
+
* @throws Error with status text if response was not ok
|
|
78
|
+
*/
|
|
18
79
|
private handleCustomAvatarErrors;
|
|
19
80
|
}
|
|
@@ -6,14 +6,34 @@ import * as loaders from "../engine/engine_loaders.js";
|
|
|
6
6
|
import * as utils from "../engine/engine_utils.js";
|
|
7
7
|
import { GameObject } from "./Component.js";
|
|
8
8
|
const debug = utils.getParam("debugavatar");
|
|
9
|
+
/**
|
|
10
|
+
* Represents an avatar model with head and hands references.
|
|
11
|
+
* Used for representing characters in 3D space.
|
|
12
|
+
*/
|
|
9
13
|
export class AvatarModel {
|
|
14
|
+
/** The root object of the avatar model */
|
|
10
15
|
root;
|
|
16
|
+
/** The head object of the avatar model */
|
|
11
17
|
head;
|
|
18
|
+
/** The left hand object of the avatar model, if available */
|
|
12
19
|
leftHand;
|
|
20
|
+
/** The right hand object of the avatar model, if available */
|
|
13
21
|
rigthHand;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if the avatar model has a valid configuration.
|
|
24
|
+
* An avatar is considered valid if it has a head.
|
|
25
|
+
* @returns Whether the avatar has a valid setup
|
|
26
|
+
*/
|
|
14
27
|
get isValid() {
|
|
15
28
|
return this.head !== null && this.head !== undefined;
|
|
16
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new avatar model.
|
|
32
|
+
* @param root The root object of the avatar
|
|
33
|
+
* @param head The head object of the avatar
|
|
34
|
+
* @param leftHand The left hand object of the avatar
|
|
35
|
+
* @param rigthHand The right hand object of the avatar
|
|
36
|
+
*/
|
|
17
37
|
constructor(root, head, leftHand, rigthHand) {
|
|
18
38
|
this.root = root;
|
|
19
39
|
this.head = head;
|
|
@@ -25,10 +45,23 @@ export class AvatarModel {
|
|
|
25
45
|
// this.rigthHand?.traverse(h => h.layers.set(2));
|
|
26
46
|
}
|
|
27
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Handles loading and instantiating avatar models from various sources.
|
|
50
|
+
* Provides functionality to find and extract important parts of an avatar (head, hands).
|
|
51
|
+
*
|
|
52
|
+
* Debug mode can be enabled with the URL parameter `?debugavatar`,
|
|
53
|
+
* which will log detailed information about avatar loading and configuration.
|
|
54
|
+
*/
|
|
28
55
|
export class AvatarLoader {
|
|
29
56
|
avatarRegistryUrl = null;
|
|
30
57
|
// private loader: GLTFLoader | null;
|
|
31
58
|
// private avatarModelCache: Map<string, AvatarModel | null> = new Map<string, AvatarModel | null>();
|
|
59
|
+
/**
|
|
60
|
+
* Retrieves or creates a new avatar instance from an ID or existing Object3D.
|
|
61
|
+
* @param context The application context
|
|
62
|
+
* @param avatarId Either a string ID to load an avatar or an existing Object3D to use as avatar
|
|
63
|
+
* @returns Promise resolving to an AvatarModel if successful, or null if failed
|
|
64
|
+
*/
|
|
32
65
|
async getOrCreateNewAvatarInstance(context, avatarId) {
|
|
33
66
|
if (!avatarId) {
|
|
34
67
|
console.error("Can not create avatar: failed to provide id or root object");
|
|
@@ -61,6 +94,12 @@ export class AvatarLoader {
|
|
|
61
94
|
return null;
|
|
62
95
|
}
|
|
63
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Loads an avatar model from a file or registry using the provided ID.
|
|
99
|
+
* @param context The engine context
|
|
100
|
+
* @param avatarId The ID of the avatar to load
|
|
101
|
+
* @returns Promise resolving to the loaded avatar's Object3D, or null if failed
|
|
102
|
+
*/
|
|
64
103
|
async loadAvatar(context, avatarId) {
|
|
65
104
|
console.assert(avatarId !== undefined && avatarId !== null && typeof avatarId === "string", "Avatar id must not be null");
|
|
66
105
|
if (avatarId.length <= 0)
|
|
@@ -114,10 +153,19 @@ export class AvatarLoader {
|
|
|
114
153
|
});
|
|
115
154
|
});
|
|
116
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Caches an avatar model for reuse.
|
|
158
|
+
* @param _id The ID to associate with the model
|
|
159
|
+
* @param _model The avatar model to cache
|
|
160
|
+
*/
|
|
117
161
|
cacheModel(_id, _model) {
|
|
118
162
|
// this.avatarModelCache.set(id, model);
|
|
119
163
|
}
|
|
120
|
-
|
|
164
|
+
/**
|
|
165
|
+
* Analyzes an Object3D to find avatar parts (head, hands) based on naming conventions.
|
|
166
|
+
* @param obj The Object3D to search for avatar parts
|
|
167
|
+
* @returns A structured AvatarModel with references to found parts
|
|
168
|
+
*/
|
|
121
169
|
findAvatar(obj) {
|
|
122
170
|
const root = obj;
|
|
123
171
|
let searchIn = root;
|
|
@@ -142,6 +190,12 @@ export class AvatarLoader {
|
|
|
142
190
|
const model = new AvatarModel(root, head, leftHand, rightHand);
|
|
143
191
|
return model;
|
|
144
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Recursively searches for an avatar part by name within an Object3D hierarchy.
|
|
195
|
+
* @param obj The Object3D to search within
|
|
196
|
+
* @param searchString Array of strings that should all be present in the object name
|
|
197
|
+
* @returns The found Object3D part or null if not found
|
|
198
|
+
*/
|
|
145
199
|
findAvatarPart(obj, searchString) {
|
|
146
200
|
const name = obj.name.toLowerCase();
|
|
147
201
|
let matchesAll = true;
|
|
@@ -162,6 +216,12 @@ export class AvatarLoader {
|
|
|
162
216
|
}
|
|
163
217
|
return null;
|
|
164
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Handles HTTP response errors from avatar loading operations.
|
|
221
|
+
* @param response The fetch API response to check
|
|
222
|
+
* @returns The response if it was ok
|
|
223
|
+
* @throws Error with status text if response was not ok
|
|
224
|
+
*/
|
|
165
225
|
handleCustomAvatarErrors(response) {
|
|
166
226
|
if (!response.ok) {
|
|
167
227
|
throw Error(response.statusText);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarLoader.js","sourceRoot":"","sources":["../../src/engine-components/AvatarLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAY,OAAO,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AAEtD,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE5C,MAAM,OAAO,WAAW;IACpB,IAAI,CAAW;IACf,IAAI,CAAW;IACf,QAAQ,CAAkB;IAC1B,SAAS,CAAkB;IAG3B,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACzD,CAAC;IAED,YAAY,IAAc,EAAE,IAAc,EAAE,QAAyB,EAAE,SAA0B;QAC7F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,6CAA6C;QAC7C,iDAAiD;QACjD,kDAAkD;IACtD,CAAC;CACJ;AAED,MAAM,OAAO,YAAY;IAEJ,iBAAiB,GAAkB,IAAI,CAAC;IACzD,qCAAqC;IACrC,qGAAqG;
|
|
1
|
+
{"version":3,"file":"AvatarLoader.js","sourceRoot":"","sources":["../../src/engine-components/AvatarLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
import { Behaviour } from "./Component.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Component that visualizes the axes of an object in the scene.
|
|
4
|
+
* Renders colored lines representing the X (red), Y (green) and Z (blue) axes.
|
|
4
5
|
* @category Helpers
|
|
5
6
|
* @group Components
|
|
6
7
|
*/
|
|
7
8
|
export declare class AxesHelper extends Behaviour {
|
|
9
|
+
/**
|
|
10
|
+
* The length of each axis line in scene units.
|
|
11
|
+
*/
|
|
8
12
|
length: number;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the axes should be occluded by objects in the scene.
|
|
15
|
+
* When set to false, axes will always appear on top regardless of their depth.
|
|
16
|
+
*/
|
|
9
17
|
depthTest: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* When true, this helper will only be visible if the debug flag `?gizmos` is enabled.
|
|
20
|
+
*/
|
|
10
21
|
isGizmo: boolean;
|
|
11
22
|
private _axes;
|
|
23
|
+
/**
|
|
24
|
+
* Creates and adds the axes visualization to the scene when the component is enabled.
|
|
25
|
+
* If marked as a gizmo, it will only be shown when gizmos are enabled in the global parameters.
|
|
26
|
+
*/
|
|
12
27
|
onEnable(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Removes the axes visualization from the scene when the component is disabled.
|
|
30
|
+
*/
|
|
13
31
|
onDisable(): void;
|
|
14
32
|
}
|