@mml-io/3d-web-threejs 0.0.0-experimental-2a3c26b-20251217
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/LICENSE +19 -0
- package/build/ThreeJSWorldRenderer.d.ts +55 -0
- package/build/ThreeJSWorldRenderer.d.ts.map +1 -0
- package/build/camera/ThreeJSCameraManager.d.ts +16 -0
- package/build/camera/ThreeJSCameraManager.d.ts.map +1 -0
- package/build/character/CanvasText.d.ts +35 -0
- package/build/character/CanvasText.d.ts.map +1 -0
- package/build/character/Character.d.ts +59 -0
- package/build/character/Character.d.ts.map +1 -0
- package/build/character/CharacterMaterial.d.ts +20 -0
- package/build/character/CharacterMaterial.d.ts.map +1 -0
- package/build/character/CharacterModel.d.ts +47 -0
- package/build/character/CharacterModel.d.ts.map +1 -0
- package/build/character/CharacterTooltip.d.ts +33 -0
- package/build/character/CharacterTooltip.d.ts.map +1 -0
- package/build/character/LowPolyModel.d.ts +2 -0
- package/build/character/LowPolyModel.d.ts.map +1 -0
- package/build/character/ThreeJSCharacterManager.d.ts +51 -0
- package/build/character/ThreeJSCharacterManager.d.ts.map +1 -0
- package/build/character/instancing/CharacterColourSamplingUtils.d.ts +15 -0
- package/build/character/instancing/CharacterColourSamplingUtils.d.ts.map +1 -0
- package/build/character/instancing/CharacterInstances.d.ts +92 -0
- package/build/character/instancing/CharacterInstances.d.ts.map +1 -0
- package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts +8 -0
- package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts.map +1 -0
- package/build/character/instancing/CharacterInstancingUtils.d.ts +4 -0
- package/build/character/instancing/CharacterInstancingUtils.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/InstancedEntity.d.ts +192 -0
- package/build/character/instancing/vendor/core/InstancedEntity.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/InstancedMesh2.d.ts +362 -0
- package/build/character/instancing/vendor/core/InstancedMesh2.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts +146 -0
- package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/Capacity.d.ts +14 -0
- package/build/character/instancing/vendor/core/feature/Capacity.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts +38 -0
- package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/Instances.d.ts +50 -0
- package/build/character/instancing/vendor/core/feature/Instances.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/LOD.d.ts +90 -0
- package/build/character/instancing/vendor/core/feature/LOD.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/Morph.d.ts +19 -0
- package/build/character/instancing/vendor/core/feature/Morph.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/Raycasting.d.ts +8 -0
- package/build/character/instancing/vendor/core/feature/Raycasting.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/Skeleton.d.ts +20 -0
- package/build/character/instancing/vendor/core/feature/Skeleton.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/feature/Uniforms.d.ts +43 -0
- package/build/character/instancing/vendor/core/feature/Uniforms.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts +43 -0
- package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts +26 -0
- package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts.map +1 -0
- package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts +157 -0
- package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts.map +1 -0
- package/build/character/instancing/vendor/index.d.ts +26 -0
- package/build/character/instancing/vendor/index.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts +2 -0
- package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts.map +1 -0
- package/build/character/instancing/vendor/utils/CreateFrom.d.ts +10 -0
- package/build/character/instancing/vendor/utils/CreateFrom.d.ts.map +1 -0
- package/build/character/instancing/vendor/utils/SortingUtils.d.ts +17 -0
- package/build/character/instancing/vendor/utils/SortingUtils.d.ts.map +1 -0
- package/build/character/loading/CharacterModelLoader.d.ts +12 -0
- package/build/character/loading/CharacterModelLoader.d.ts.map +1 -0
- package/build/character/loading/GLTFLoadingWorker.worker.d.ts +3 -0
- package/build/character/loading/GLTFLoadingWorker.worker.d.ts.map +1 -0
- package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts +9 -0
- package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts.map +1 -0
- package/build/character/loading/GLTFLoadingWorkerPool.d.ts +23 -0
- package/build/character/loading/GLTFLoadingWorkerPool.d.ts.map +1 -0
- package/build/character/loading/GLTFLoadingWorkerTypes.d.ts +19 -0
- package/build/character/loading/GLTFLoadingWorkerTypes.d.ts.map +1 -0
- package/build/collisions/ThreeJSCollisionManager.d.ts +18 -0
- package/build/collisions/ThreeJSCollisionManager.d.ts.map +1 -0
- package/build/composer.d.ts +108 -0
- package/build/composer.d.ts.map +1 -0
- package/build/ground-plane/GroundPlane.d.ts +10 -0
- package/build/ground-plane/GroundPlane.d.ts.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +10494 -0
- package/build/index.js.map +7 -0
- package/build/mml/ThreeJSMMLCompositionScene.d.ts +32 -0
- package/build/mml/ThreeJSMMLCompositionScene.d.ts.map +1 -0
- package/build/mml/ThreeJSMMLManager.d.ts +20 -0
- package/build/mml/ThreeJSMMLManager.d.ts.map +1 -0
- package/build/post-effects/PostProcessingManager.d.ts +102 -0
- package/build/post-effects/PostProcessingManager.d.ts.map +1 -0
- package/build/post-effects/bright-contrast-sat.d.ts +3 -0
- package/build/post-effects/bright-contrast-sat.d.ts.map +1 -0
- package/build/post-effects/gauss-grain.d.ts +3 -0
- package/build/post-effects/gauss-grain.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/BlueNoise.d.ts +2 -0
- package/build/post-effects/n8-ssao/BlueNoise.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/DepthDownSample.d.ts +18 -0
- package/build/post-effects/n8-ssao/DepthDownSample.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/EffectCompositer.d.ts +40 -0
- package/build/post-effects/n8-ssao/EffectCompositer.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/EffectShader.d.ts +32 -0
- package/build/post-effects/n8-ssao/EffectShader.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/FullScreenTriangle.d.ts +12 -0
- package/build/post-effects/n8-ssao/FullScreenTriangle.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/N8SSAOPass.d.ts +66 -0
- package/build/post-effects/n8-ssao/N8SSAOPass.d.ts.map +1 -0
- package/build/post-effects/n8-ssao/PoissionBlur.d.ts +31 -0
- package/build/post-effects/n8-ssao/PoissionBlur.d.ts.map +1 -0
- package/build/shaders/bayer-dither.d.ts +2 -0
- package/build/shaders/bayer-dither.d.ts.map +1 -0
- package/build/shaders/shader-helpers.d.ts +5 -0
- package/build/shaders/shader-helpers.d.ts.map +1 -0
- package/build/shaders/vertex-shader.d.ts +2 -0
- package/build/shaders/vertex-shader.d.ts.map +1 -0
- package/build/sun/Sun.d.ts +21 -0
- package/build/sun/Sun.d.ts.map +1 -0
- package/build/tweakpane/ThreeJSTweakPaneFolders.d.ts +31 -0
- package/build/tweakpane/ThreeJSTweakPaneFolders.d.ts.map +1 -0
- package/build/tweakpane/blades/collisionsStatsFolder.d.ts +10 -0
- package/build/tweakpane/blades/collisionsStatsFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/effects/bcsFolder.d.ts +15 -0
- package/build/tweakpane/blades/effects/bcsFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/effects/bloomAndGrain.d.ts +15 -0
- package/build/tweakpane/blades/effects/bloomAndGrain.d.ts.map +1 -0
- package/build/tweakpane/blades/effects/ssaoFolder.d.ts +52 -0
- package/build/tweakpane/blades/effects/ssaoFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/effects/toneMappingFolder.d.ts +22 -0
- package/build/tweakpane/blades/effects/toneMappingFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/environmentFolder.d.ts +58 -0
- package/build/tweakpane/blades/environmentFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/postProcessingFolder.d.ts +34 -0
- package/build/tweakpane/blades/postProcessingFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/rendererFolder.d.ts +17 -0
- package/build/tweakpane/blades/rendererFolder.d.ts.map +1 -0
- package/build/tweakpane/blades/rendererStatsFolder.d.ts +10 -0
- package/build/tweakpane/blades/rendererStatsFolder.d.ts.map +1 -0
- package/package.json +44 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright (c) 2023 Improbable MV Limited
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
in the Software without restriction, including without limitation the rights
|
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CameraManager, CollisionsManager, IRenderer, MMLDocumentConfiguration, RendererConfig, RenderState, TweakPane } from "@mml-io/3d-web-client-core";
|
|
2
|
+
import { LoadingProgressManager } from "@mml-io/mml-web";
|
|
3
|
+
import { ThreeJSMMLCompositionScene } from "./mml/ThreeJSMMLCompositionScene";
|
|
4
|
+
export interface ThreeJSRendererOptions {
|
|
5
|
+
targetElement: HTMLElement;
|
|
6
|
+
coreCameraManager: CameraManager;
|
|
7
|
+
collisionsManager: CollisionsManager;
|
|
8
|
+
config: RendererConfig;
|
|
9
|
+
tweakPane?: TweakPane | null;
|
|
10
|
+
mmlTargetWindow: Window;
|
|
11
|
+
mmlTargetElement: HTMLElement;
|
|
12
|
+
loadingProgressManager: LoadingProgressManager | null;
|
|
13
|
+
mmlDocuments: {
|
|
14
|
+
[key: string]: MMLDocumentConfiguration;
|
|
15
|
+
};
|
|
16
|
+
mmlAuthToken: string | null;
|
|
17
|
+
}
|
|
18
|
+
export declare class ThreeJSWorldRenderer implements IRenderer {
|
|
19
|
+
private scene;
|
|
20
|
+
private composer;
|
|
21
|
+
private audioListener;
|
|
22
|
+
private characterGroup;
|
|
23
|
+
private groundPlane;
|
|
24
|
+
private tweakPane;
|
|
25
|
+
private characterModelLoader;
|
|
26
|
+
private animationsPromise;
|
|
27
|
+
private config;
|
|
28
|
+
private localCharacterId;
|
|
29
|
+
mmlCompositionScene: ThreeJSMMLCompositionScene;
|
|
30
|
+
private threeJSCollisionManager;
|
|
31
|
+
private threeJSTweakPaneProvider;
|
|
32
|
+
private threeJSCameraManager;
|
|
33
|
+
private coreCameraManager;
|
|
34
|
+
private loadingProgressManager;
|
|
35
|
+
private targetElement;
|
|
36
|
+
private collisionsManager;
|
|
37
|
+
private mmlTargetWindow;
|
|
38
|
+
private mmlTargetElement;
|
|
39
|
+
private characterManager;
|
|
40
|
+
private mmlManager;
|
|
41
|
+
constructor({ targetElement, coreCameraManager, collisionsManager, config, tweakPane, mmlTargetWindow, mmlTargetElement, loadingProgressManager, mmlDocuments, mmlAuthToken, }: ThreeJSRendererOptions);
|
|
42
|
+
private setupTweakPane;
|
|
43
|
+
render(state: RenderState): void;
|
|
44
|
+
private updateAudioListenerPosition;
|
|
45
|
+
private setGroundPlaneEnabled;
|
|
46
|
+
fitContainer(): void;
|
|
47
|
+
dispose(): void;
|
|
48
|
+
addChatBubble(characterId: number, message: string): void;
|
|
49
|
+
updateConfig(config: Partial<RendererConfig>): void;
|
|
50
|
+
setMMLConfiguration(mmlDocuments: {
|
|
51
|
+
[key: string]: MMLDocumentConfiguration;
|
|
52
|
+
}, authToken: string | null): void;
|
|
53
|
+
onChatMessage(message: string): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ThreeJSWorldRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreeJSWorldRenderer.d.ts","sourceRoot":"","sources":["../src/ThreeJSWorldRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,SAAS,EACV,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAUzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAI9E,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,WAAW,CAAC;IAC3B,iBAAiB,EAAE,aAAa,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,WAAW,CAAC;IAC9B,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtD,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAA;KAAE,CAAC;IAC1D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qBAAa,oBAAqB,YAAW,SAAS;IACpD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAuB;IAExC,mBAAmB,EAAE,0BAA0B,CAAC;IAEvD,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,wBAAwB,CAAwC;IACxE,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,sBAAsB,CAAuC;IACrE,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAc;IAEtC,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,UAAU,CAAoB;gBAE1B,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,SAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,YAAY,GACb,EAAE,sBAAsB;IAiGzB,OAAO,CAAC,cAAc;IAoBtB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAwChC,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,qBAAqB;IAmB7B,YAAY,IAAI,IAAI;IAIpB,OAAO,IAAI,IAAI;IAkCf,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAoB5C,mBAAmB,CACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAA;KAAE,EACzD,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,IAAI;IAIP,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAGrC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CameraManager } from "@mml-io/3d-web-client-core";
|
|
2
|
+
import { PerspectiveCamera } from "three";
|
|
3
|
+
export declare class ThreeJSCameraManager {
|
|
4
|
+
private coreCameraManager;
|
|
5
|
+
readonly mainCamera: PerspectiveCamera;
|
|
6
|
+
private flyCamera;
|
|
7
|
+
constructor(coreCameraManager: CameraManager);
|
|
8
|
+
getActiveCamera(): PerspectiveCamera;
|
|
9
|
+
getDistance(): number;
|
|
10
|
+
update(): void;
|
|
11
|
+
private syncMainCamera;
|
|
12
|
+
private syncFlyCamera;
|
|
13
|
+
updateAspect(aspect: number): void;
|
|
14
|
+
dispose(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ThreeJSCameraManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreeJSCameraManager.d.ts","sourceRoot":"","sources":["../../src/camera/ThreeJSCameraManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,qBAAa,oBAAoB;IAInB,OAAO,CAAC,iBAAiB;IAHrC,SAAgB,UAAU,EAAE,iBAAiB,CAAC;IAC9C,OAAO,CAAC,SAAS,CAAoB;gBAEjB,iBAAiB,EAAE,aAAa;IAoBpD,eAAe,IAAI,iBAAiB;IAIpC,WAAW,IAAI,MAAM;IAId,MAAM,IAAI,IAAI;IAKrB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,aAAa;IAed,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQlC,OAAO,IAAI,IAAI;CAGvB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Texture } from "three";
|
|
2
|
+
export type RGBA = {
|
|
3
|
+
r: number;
|
|
4
|
+
g: number;
|
|
5
|
+
b: number;
|
|
6
|
+
a: number;
|
|
7
|
+
};
|
|
8
|
+
export type CanvasTextOptions = {
|
|
9
|
+
fontSize: number;
|
|
10
|
+
textColorRGB255A1: RGBA;
|
|
11
|
+
backgroundColorRGB255A1?: RGBA;
|
|
12
|
+
font?: string;
|
|
13
|
+
bold?: boolean;
|
|
14
|
+
paddingPx?: number;
|
|
15
|
+
alignment?: string;
|
|
16
|
+
dimensions?: {
|
|
17
|
+
maxWidth?: undefined;
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
} | {
|
|
21
|
+
maxWidth: number;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export declare class CanvasText {
|
|
25
|
+
private canvas;
|
|
26
|
+
private context;
|
|
27
|
+
constructor();
|
|
28
|
+
renderText(message: string, options: CanvasTextOptions): HTMLCanvasElement;
|
|
29
|
+
}
|
|
30
|
+
export declare function THREECanvasTextTexture(text: string, options: CanvasTextOptions): {
|
|
31
|
+
texture: Texture;
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=CanvasText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasText.d.ts","sourceRoot":"","sources":["../../src/character/CanvasText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,OAAO,CAAC;AAE1D,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,IAAI,CAAC;IACxB,uBAAuB,CAAC,EAAE,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EACP;QACE,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GACD;QACE,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACP,CAAC;AAoFF,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAA2B;;IAOnC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,iBAAiB;CA0FlF;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CASrD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { EulXYZ, Vect3, AnimationState, AnimationWeights, AnimationTimes, CharacterDescription } from "@mml-io/3d-web-client-core";
|
|
2
|
+
import { AnimationClip, Group, Object3D, Vector3 } from "three";
|
|
3
|
+
import { ThreeJSCameraManager } from "../camera/ThreeJSCameraManager";
|
|
4
|
+
import { Composer } from "../composer";
|
|
5
|
+
import { CharacterTooltip } from "./CharacterTooltip";
|
|
6
|
+
import { CharacterModelLoader } from "./loading/CharacterModelLoader";
|
|
7
|
+
export type AnimationConfig = {
|
|
8
|
+
idleAnimationFileUrl: string;
|
|
9
|
+
jogAnimationFileUrl: string;
|
|
10
|
+
sprintAnimationFileUrl: string;
|
|
11
|
+
airAnimationFileUrl: string;
|
|
12
|
+
doubleJumpAnimationFileUrl: string;
|
|
13
|
+
};
|
|
14
|
+
export type LoadedAnimations = {
|
|
15
|
+
idleAnimation: AnimationClip;
|
|
16
|
+
jogAnimation: AnimationClip;
|
|
17
|
+
sprintAnimation: AnimationClip;
|
|
18
|
+
airAnimation: AnimationClip;
|
|
19
|
+
doubleJumpAnimation: AnimationClip;
|
|
20
|
+
};
|
|
21
|
+
export type CharacterConfig = {
|
|
22
|
+
username: string;
|
|
23
|
+
characterDescription: CharacterDescription | null;
|
|
24
|
+
animationsPromise: Promise<LoadedAnimations>;
|
|
25
|
+
characterModelLoader: CharacterModelLoader;
|
|
26
|
+
characterId: number;
|
|
27
|
+
modelLoadedCallback: () => void;
|
|
28
|
+
modelLoadFailedCallback?: (error: Error) => void;
|
|
29
|
+
cameraManager: ThreeJSCameraManager;
|
|
30
|
+
composer: Composer;
|
|
31
|
+
isLocal: boolean;
|
|
32
|
+
abortController?: AbortController;
|
|
33
|
+
};
|
|
34
|
+
export declare class Character extends Group {
|
|
35
|
+
private config;
|
|
36
|
+
private model;
|
|
37
|
+
usernameTooltip: CharacterTooltip;
|
|
38
|
+
chatTooltips: CharacterTooltip[];
|
|
39
|
+
constructor(config: CharacterConfig);
|
|
40
|
+
getColors(): Array<[number, number, number]>;
|
|
41
|
+
updateCharacter(username: string, characterDescription: CharacterDescription | null, abortController: AbortController, onModelLoaded: () => void, onModelLoadFailed: (error: Error) => void): void;
|
|
42
|
+
private setTooltipHeights;
|
|
43
|
+
static loadAnimations(characterModelLoader: CharacterModelLoader, animationConfig: AnimationConfig): Promise<LoadedAnimations>;
|
|
44
|
+
private load;
|
|
45
|
+
updateAnimation(targetAnimation: AnimationState): void;
|
|
46
|
+
applyAnimationWeights(weights: AnimationWeights): void;
|
|
47
|
+
applyAnimationTimes(times: AnimationTimes): void;
|
|
48
|
+
update(deltaTime: number): void;
|
|
49
|
+
getPosition(): Vect3;
|
|
50
|
+
getRotation(): EulXYZ;
|
|
51
|
+
setPosition(x: number, y: number, z: number): void;
|
|
52
|
+
setRotation(x: number, y: number, z: number, w: number): void;
|
|
53
|
+
getCurrentAnimation(): AnimationState;
|
|
54
|
+
addChatBubble(message: string): void;
|
|
55
|
+
getMesh(): Object3D | null;
|
|
56
|
+
getHeadWorldPosition(): Vector3 | null;
|
|
57
|
+
dispose(): void;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=Character.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Character.d.ts","sourceRoot":"","sources":["../../src/character/Character.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Color, MeshStandardMaterial } from "three";
|
|
2
|
+
import { ThreeJSCameraManager } from "../camera/ThreeJSCameraManager";
|
|
3
|
+
export type CharacterMaterialConfig = {
|
|
4
|
+
isLocal: boolean;
|
|
5
|
+
cameraManager: ThreeJSCameraManager;
|
|
6
|
+
characterId: number;
|
|
7
|
+
originalMaterial: MeshStandardMaterial;
|
|
8
|
+
colorOverride?: Color;
|
|
9
|
+
};
|
|
10
|
+
export declare class CharacterMaterial extends MeshStandardMaterial {
|
|
11
|
+
private config;
|
|
12
|
+
private uniforms;
|
|
13
|
+
private colorsCube216;
|
|
14
|
+
private targetAlpha;
|
|
15
|
+
private currentAlpha;
|
|
16
|
+
constructor(config: CharacterMaterialConfig);
|
|
17
|
+
private generateColorCube;
|
|
18
|
+
update(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=CharacterMaterial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterMaterial.d.ts","sourceRoot":"","sources":["../../src/character/CharacterMaterial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAiB,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAMtE,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,oBAAoB,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,oBAAoB;IAU7C,OAAO,CAAC,MAAM;IAT1B,OAAO,CAAC,QAAQ,CAId;IACF,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAa;gBAEb,MAAM,EAAE,uBAAuB;IAyEnD,OAAO,CAAC,iBAAiB;IAclB,MAAM;CAgBd"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type MMLCharacterDescription } from "@mml-io/3d-web-avatar";
|
|
2
|
+
import { AnimationState, AnimationWeights, AnimationTimes, CharacterDescription } from "@mml-io/3d-web-client-core";
|
|
3
|
+
import { AnimationAction, AnimationMixer, Bone, Color, Object3D } from "three";
|
|
4
|
+
import { ThreeJSCameraManager } from "../camera/ThreeJSCameraManager";
|
|
5
|
+
import { LoadedAnimations } from "./Character";
|
|
6
|
+
import { CharacterModelLoader } from "./loading/CharacterModelLoader";
|
|
7
|
+
export declare const colorPartNamesIndex: readonly ["hair", "shirt_short", "shirt_long", "pants_short", "pants_long", "shoes", "skin", "lips"];
|
|
8
|
+
export type ColorPartName = (typeof colorPartNamesIndex)[number];
|
|
9
|
+
export declare function colorsToColorArray(colors: Map<ColorPartName, Color>): Array<[number, number, number]>;
|
|
10
|
+
export declare function colorArrayToColors(colorArray: Array<[number, number, number]>): Map<ColorPartName, Color>;
|
|
11
|
+
export type CharacterModelConfig = {
|
|
12
|
+
characterDescription: CharacterDescription;
|
|
13
|
+
animationsPromise: Promise<LoadedAnimations>;
|
|
14
|
+
characterModelLoader: CharacterModelLoader;
|
|
15
|
+
cameraManager: ThreeJSCameraManager;
|
|
16
|
+
characterId: number;
|
|
17
|
+
isLocal: boolean;
|
|
18
|
+
abortController?: AbortController;
|
|
19
|
+
};
|
|
20
|
+
export declare class CharacterModel {
|
|
21
|
+
private config;
|
|
22
|
+
mesh: Object3D | null;
|
|
23
|
+
headBone: Bone | null;
|
|
24
|
+
characterHeight: number | null;
|
|
25
|
+
private materials;
|
|
26
|
+
animations: Record<string, AnimationAction>;
|
|
27
|
+
animationMixer: AnimationMixer | null;
|
|
28
|
+
currentAnimation: AnimationState;
|
|
29
|
+
mmlCharacterDescription: MMLCharacterDescription;
|
|
30
|
+
private isPostDoubleJump;
|
|
31
|
+
private colors;
|
|
32
|
+
constructor(config: CharacterModelConfig);
|
|
33
|
+
init(): Promise<void>;
|
|
34
|
+
private applyCustomMaterials;
|
|
35
|
+
updateAnimation(targetAnimation: AnimationState): void;
|
|
36
|
+
applyAnimationWeights(weights: AnimationWeights): void;
|
|
37
|
+
applyAnimationTimes(times: AnimationTimes): void;
|
|
38
|
+
private composeMMLCharacter;
|
|
39
|
+
private loadCharacterFromDescription;
|
|
40
|
+
getColors(): Array<[number, number, number]>;
|
|
41
|
+
private cleanAnimationClips;
|
|
42
|
+
private setAnimationFromFile;
|
|
43
|
+
private transitionToAnimation;
|
|
44
|
+
update(time: number): void;
|
|
45
|
+
dispose(): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=CharacterModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterModel.d.ts","sourceRoot":"","sources":["../../src/character/CharacterModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,eAAe,EAEf,cAAc,EACd,IAAI,EACJ,KAAK,EAML,QAAQ,EAKT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,eAAO,MAAM,mBAAmB,sGAStB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,GAChC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAajC;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAS3B;AA8CD,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,aAAa,EAAE,oBAAoB,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAKF,qBAAa,cAAc;IAiBb,OAAO,CAAC,MAAM;IAhBnB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAC7B,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7C,OAAO,CAAC,SAAS,CAA6C;IAEvD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAM;IACjD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,gBAAgB,EAAE,cAAc,CAAuB;IAEvD,uBAAuB,EAAE,uBAAuB,CAAC;IAExD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,MAAM,CAAgD;gBAE1C,MAAM,EAAE,oBAAoB;IAEnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiElC,OAAO,CAAC,oBAAoB;IA+CrB,eAAe,CAAC,eAAe,EAAE,cAAc;IAe/C,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAiDtD,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;YAsBzC,mBAAmB;YA8CnB,4BAA4B;IAuCnC,SAAS,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBnD,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,qBAAqB;IAuC7B,MAAM,CAAC,IAAI,EAAE,MAAM;IAOnB,OAAO;CA0DR"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Color, Sprite } from "three";
|
|
2
|
+
declare enum LabelAlignment {
|
|
3
|
+
left = "left",
|
|
4
|
+
center = "center",
|
|
5
|
+
right = "right"
|
|
6
|
+
}
|
|
7
|
+
export type CharacterTooltipConfig = {
|
|
8
|
+
alignment: LabelAlignment;
|
|
9
|
+
fontSize: number;
|
|
10
|
+
padding: number;
|
|
11
|
+
color: Color;
|
|
12
|
+
fontColor: Color;
|
|
13
|
+
visibleOpacity: number;
|
|
14
|
+
maxWidth?: number;
|
|
15
|
+
secondsToFadeOut: number | null;
|
|
16
|
+
};
|
|
17
|
+
export declare class CharacterTooltip extends Sprite {
|
|
18
|
+
private targetOpacity;
|
|
19
|
+
private fadingSpeed;
|
|
20
|
+
private config;
|
|
21
|
+
private content;
|
|
22
|
+
private hideTimeout;
|
|
23
|
+
constructor(configArg?: Partial<CharacterTooltipConfig>);
|
|
24
|
+
setHeightOffset(height: number): void;
|
|
25
|
+
private redrawText;
|
|
26
|
+
setText(text: string, onRemove?: () => void): void;
|
|
27
|
+
hide(): void;
|
|
28
|
+
show(): void;
|
|
29
|
+
update(): void;
|
|
30
|
+
dispose(): void;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=CharacterTooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterTooltip.d.ts","sourceRoot":"","sources":["../../src/character/CharacterTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA2B,MAAM,EAAkB,MAAM,OAAO,CAAC;AAI/E,aAAK,cAAc;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAWD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,MAAM;IAC1C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAA+B;gBAEtC,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAwBhD,eAAe,CAAC,MAAM,EAAE,MAAM;IAIrC,OAAO,CAAC,UAAU;IAgDlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;IAoB3C,IAAI;IAIJ,IAAI;IAIJ,MAAM;IAyBN,OAAO;CAoBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LowPolyModel.d.ts","sourceRoot":"","sources":["../../src/character/LowPolyModel.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,KAA2B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { IVect3, RenderState } from "@mml-io/3d-web-client-core";
|
|
2
|
+
import { Group, Vector3 } from "three";
|
|
3
|
+
import { ThreeJSCameraManager } from "../camera/ThreeJSCameraManager";
|
|
4
|
+
import { Composer } from "../composer";
|
|
5
|
+
import { LoadedAnimations } from "./Character";
|
|
6
|
+
import { CharacterModelLoader } from "./loading/CharacterModelLoader";
|
|
7
|
+
export declare class ThreeJSCharacterManager {
|
|
8
|
+
private threeJSCameraManager;
|
|
9
|
+
private composer;
|
|
10
|
+
private characterGroup;
|
|
11
|
+
private characterModelLoader;
|
|
12
|
+
private animationsPromise;
|
|
13
|
+
private characterInstances;
|
|
14
|
+
private characterInstancesReady;
|
|
15
|
+
private pendingInstanceCharacters;
|
|
16
|
+
private loadedCharacters;
|
|
17
|
+
private loadingCharacters;
|
|
18
|
+
private charactersReadyForScene;
|
|
19
|
+
private readonly MAX_SCENE_ADDITIONS_PER_FRAME;
|
|
20
|
+
private readonly MAX_REAL_REMOTE_CHARACTERS;
|
|
21
|
+
private readonly LOD_CHANGE_COOLDOWN_MS;
|
|
22
|
+
private lastLODEvaluation;
|
|
23
|
+
private cachedHeadPosition;
|
|
24
|
+
constructor(characterGroup: Group, animationsPromise: Promise<LoadedAnimations>, characterModelLoader: CharacterModelLoader, threeJSCameraManager: ThreeJSCameraManager, composer: Composer);
|
|
25
|
+
update(state: RenderState, deltaTimeSeconds: number): void;
|
|
26
|
+
despawnCharacter(characterId: number): void;
|
|
27
|
+
getLocalCharacterPosition(localCharacterId: number | null): IVect3 | null;
|
|
28
|
+
getCharacterHeadPosition(characterId: number): Vector3 | null;
|
|
29
|
+
addChatBubble(characterId: number, message: string): void;
|
|
30
|
+
getLocalCharacterForMML(localCharacterId: number | null): {
|
|
31
|
+
position: {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
z: number;
|
|
35
|
+
};
|
|
36
|
+
rotation: {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
z: number;
|
|
40
|
+
};
|
|
41
|
+
} | null;
|
|
42
|
+
dispose(): void;
|
|
43
|
+
private spawnCharacter;
|
|
44
|
+
private spawnCharacterInstance;
|
|
45
|
+
private updateCharacterTransform;
|
|
46
|
+
private updateCharacterDescription;
|
|
47
|
+
private evaluateLOD;
|
|
48
|
+
private promoteToReal;
|
|
49
|
+
private demoteToInstance;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=ThreeJSCharacterManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreeJSCharacterManager.d.ts","sourceRoot":"","sources":["../../src/character/ThreeJSCharacterManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAEN,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAS,KAAK,EAAc,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAa,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAatE,qBAAa,uBAAuB;IAwBhC,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ;IAxBlB,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,yBAAyB,CAA2C;IAG5E,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,uBAAuB,CAAgC;IAE/D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAK;IACnD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAM;IACjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAE/C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,kBAAkB,CAAiB;gBAGzC,cAAc,EAAE,KAAK,EACrB,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAC5C,oBAAoB,EAAE,oBAAoB,EAClC,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ;IA0B5B,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IA4E1D,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IA8B3C,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAazE,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAY7D,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOzD,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG;QACxD,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9C,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,GAAG,IAAI;IAiBR,OAAO,IAAI,IAAI;IAqBf,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,WAAW;IAuEnB,OAAO,CAAC,aAAa;IAyFrB,OAAO,CAAC,gBAAgB;CAwDzB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Color, Object3D } from "three";
|
|
2
|
+
import { ColorPartName } from "../CharacterModel";
|
|
3
|
+
import { InstancedMesh2 } from "./vendor/";
|
|
4
|
+
export type ColorSamplingOptions = {
|
|
5
|
+
circularSamplingRadius?: number;
|
|
6
|
+
topDownSamplingSize?: {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
debug?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function captureCharacterColors(characterMesh: Object3D, options: ColorSamplingOptions): Map<ColorPartName, Color>;
|
|
13
|
+
export declare function captureCharacterColorsFromObject3D(object3D: Object3D, options: ColorSamplingOptions): Map<ColorPartName, Color>;
|
|
14
|
+
export declare function updateDebugTextureCanvas(instancedMesh: InstancedMesh2): void;
|
|
15
|
+
//# sourceMappingURL=CharacterColourSamplingUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterColourSamplingUtils.d.ts","sourceRoot":"","sources":["../../../src/character/instancing/CharacterColourSamplingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,EAQL,QAAQ,EACT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAqB,MAAM,WAAW,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAcF,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,QAAQ,EACvB,OAAO,EAAE,oBAAoB,GAC5B,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CA0J3B;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,oBAAoB,GAC5B,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAgB3B;AAmbD,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAmD5E"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { EulXYZ, Vect3, AnimationState, AnimationWeights } from "@mml-io/3d-web-client-core";
|
|
2
|
+
import { Color, Object3D, Quaternion, Vector3 } from "three";
|
|
3
|
+
import { ThreeJSCameraManager } from "../../camera/ThreeJSCameraManager";
|
|
4
|
+
import { LoadedAnimations } from "../Character";
|
|
5
|
+
import { ColorPartName } from "../CharacterModel";
|
|
6
|
+
import { CharacterModelLoader } from "../loading/CharacterModelLoader";
|
|
7
|
+
export type CharacterInstancesConfig = {
|
|
8
|
+
animationsPromise: Promise<LoadedAnimations>;
|
|
9
|
+
characterModelLoader: CharacterModelLoader;
|
|
10
|
+
cameraManager: ThreeJSCameraManager;
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type InstanceData = {
|
|
14
|
+
characterId: number;
|
|
15
|
+
instanceId: number;
|
|
16
|
+
isActive: boolean;
|
|
17
|
+
isShadowed: boolean;
|
|
18
|
+
time: number;
|
|
19
|
+
speed: number;
|
|
20
|
+
offset: number;
|
|
21
|
+
currentAnimationState: string;
|
|
22
|
+
animationTime: number;
|
|
23
|
+
targetPosition: Vector3;
|
|
24
|
+
targetQuaternion: Quaternion;
|
|
25
|
+
lerpSpeed: number;
|
|
26
|
+
hasNewTarget: boolean;
|
|
27
|
+
};
|
|
28
|
+
export declare class CharacterInstances {
|
|
29
|
+
private config;
|
|
30
|
+
private mixer;
|
|
31
|
+
private action;
|
|
32
|
+
private instancedMesh;
|
|
33
|
+
private skinnedMesh;
|
|
34
|
+
private clonedMaterials;
|
|
35
|
+
private propertyBindings;
|
|
36
|
+
private interpolants;
|
|
37
|
+
private propertyBindingsLOD;
|
|
38
|
+
private interpolantsLOD;
|
|
39
|
+
private invMatrixWorld;
|
|
40
|
+
private cameraLocalPosition;
|
|
41
|
+
private delta;
|
|
42
|
+
private characterScale;
|
|
43
|
+
private currentBindingMode;
|
|
44
|
+
private debug;
|
|
45
|
+
private animationClip;
|
|
46
|
+
private animationSegments;
|
|
47
|
+
private characterIdToInstanceIdMap;
|
|
48
|
+
private animationStateToSegmentName;
|
|
49
|
+
/**
|
|
50
|
+
* Apply colors to an instance at the given index
|
|
51
|
+
* @param instanceIndex The index of the instance to apply colors to
|
|
52
|
+
* @param colors Optional specific colors to apply, if not provided, random colors will be used
|
|
53
|
+
*/
|
|
54
|
+
private applyInstanceColors;
|
|
55
|
+
constructor(config: CharacterInstancesConfig);
|
|
56
|
+
initialize(): Promise<Object3D | null>;
|
|
57
|
+
spawnInstance(characterId: number, colors: Map<ColorPartName, Color>, position: Vect3, rotation: EulXYZ, animationState: AnimationState): void;
|
|
58
|
+
despawnInstance(characterId: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Shadows an instance instead of fully despawning it. This keeps the instance data
|
|
61
|
+
* intact (including colors) while hiding it when a real character is promoted.
|
|
62
|
+
* This avoids texture updates when the character is later demoted back to an instance.
|
|
63
|
+
*/
|
|
64
|
+
shadowInstance(characterId: number): void;
|
|
65
|
+
/**
|
|
66
|
+
* Reactivates a previously shadowed instance. This is used when a real character
|
|
67
|
+
* is demoted back to an instance, allowing us to reuse the existing instance data
|
|
68
|
+
* and avoid texture updates from creating a new instance.
|
|
69
|
+
*/
|
|
70
|
+
unshadowInstance(characterId: number, position: Vect3, rotation: EulXYZ, animationState: AnimationState): void;
|
|
71
|
+
updateInstance(characterId: number, position: Vect3, rotation: EulXYZ, animationState: AnimationState, animationWeights?: AnimationWeights): void;
|
|
72
|
+
updateInstanceColors(characterId: number, colors: Map<string, Color>): void;
|
|
73
|
+
private updateInstancedMeshBounds;
|
|
74
|
+
private setMainMesh;
|
|
75
|
+
private loadAnimation;
|
|
76
|
+
private createInstancedMesh;
|
|
77
|
+
private setupAnimationOptimization;
|
|
78
|
+
private initializeSkeletonData;
|
|
79
|
+
hasInstance(characterId: number): boolean;
|
|
80
|
+
getPositionForInstance(characterId: number): Vect3 | null;
|
|
81
|
+
private updateAllInstanceLerping;
|
|
82
|
+
update(deltaTime: number): void;
|
|
83
|
+
setupFrustumCulling(): void;
|
|
84
|
+
clear(): void;
|
|
85
|
+
dispose(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Immediately sets an instance position without lerping. Used when unshadowing
|
|
88
|
+
* instances to position them at the real character's last known position.
|
|
89
|
+
*/
|
|
90
|
+
setInstancePositionImmediate(characterId: number, position: Vect3, rotation: EulXYZ, animationState: AnimationState): boolean;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=CharacterInstances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterInstances.d.ts","sourceRoot":"","sources":["../../../src/character/instancing/CharacterInstances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AnimationClip } from "three";
|
|
2
|
+
export type SegmentTime = {
|
|
3
|
+
startTime: number;
|
|
4
|
+
endTime: number;
|
|
5
|
+
duration: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function createSingleTimeline(individualClips: Map<string, AnimationClip>): [Map<string, SegmentTime>, AnimationClip];
|
|
8
|
+
//# sourceMappingURL=CharacterInstancingAnimationUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterInstancingAnimationUtils.d.ts","sourceRoot":"","sources":["../../../src/character/instancing/CharacterInstancingAnimationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAId,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAC1C,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CA6I3C"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SkinnedMesh } from "three";
|
|
2
|
+
export declare function mergeSkinnedMeshes(skinnedMeshes: SkinnedMesh[], debug?: boolean): SkinnedMesh;
|
|
3
|
+
export declare function validateAndCleanSkeleton(skinnedMesh: SkinnedMesh): void;
|
|
4
|
+
//# sourceMappingURL=CharacterInstancingUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterInstancingUtils.d.ts","sourceRoot":"","sources":["../../../src/character/instancing/CharacterInstancingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,WAAW,EAAE,MAAM,OAAO,CAAC;AAG/E,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,CAiD7F;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAYvE"}
|