@mml-io/3d-web-client-core 0.14.0 → 0.16.0
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/build/character/Character.d.ts +21 -10
- package/build/character/CharacterManager.d.ts +23 -14
- package/build/character/CharacterMaterial.d.ts +9 -6
- package/build/character/CharacterModel.d.ts +12 -7
- package/build/character/CharacterModelLoader.d.ts +1 -2
- package/build/character/CharacterState.d.ts +9 -0
- package/build/character/CharacterTooltip.d.ts +19 -3
- package/build/character/LocalController.d.ts +12 -7
- package/build/character/RemoteController.d.ts +6 -3
- package/build/ground-plane/GroundPlane.d.ts +9 -0
- package/build/index.d.ts +3 -0
- package/build/index.js +625 -409
- package/build/index.js.map +4 -4
- package/build/input/KeyInputManager.d.ts +0 -1
- package/build/input/VirtualJoystick.d.ts +2 -4
- package/build/loading-screen/LoadingScreen.d.ts +19 -0
- package/build/mml/MMLCompositionScene.d.ts +12 -7
- package/build/rendering/composer.d.ts +1 -0
- package/build/tweakpane/TweakPane.d.ts +2 -1
- package/package.json +10 -8
@@ -15,21 +15,32 @@ export type CharacterDescription = {
|
|
15
15
|
meshFileUrl?: string;
|
16
16
|
mmlCharacterUrl?: string;
|
17
17
|
mmlCharacterString?: string;
|
18
|
+
} & ({
|
19
|
+
meshFileUrl: string;
|
20
|
+
} | {
|
21
|
+
mmlCharacterUrl: string;
|
22
|
+
} | {
|
23
|
+
mmlCharacterString: string;
|
24
|
+
});
|
25
|
+
export type CharacterConfig = {
|
26
|
+
username: string;
|
27
|
+
characterDescription: CharacterDescription;
|
28
|
+
animationConfig: AnimationConfig;
|
29
|
+
characterModelLoader: CharacterModelLoader;
|
30
|
+
characterId: number;
|
31
|
+
modelLoadedCallback: () => void;
|
32
|
+
cameraManager: CameraManager;
|
33
|
+
composer: Composer;
|
34
|
+
isLocal: boolean;
|
18
35
|
};
|
19
36
|
export declare class Character extends Group {
|
20
|
-
private
|
21
|
-
private readonly animationConfig;
|
22
|
-
private readonly characterModelLoader;
|
23
|
-
private readonly characterId;
|
24
|
-
private readonly modelLoadedCallback;
|
25
|
-
private readonly cameraManager;
|
26
|
-
private readonly composer;
|
27
|
-
private readonly isLocal;
|
37
|
+
private config;
|
28
38
|
private model;
|
29
39
|
color: Color;
|
30
|
-
tooltip: CharacterTooltip
|
40
|
+
tooltip: CharacterTooltip;
|
31
41
|
speakingIndicator: CharacterSpeakingIndicator | null;
|
32
|
-
constructor(
|
42
|
+
constructor(config: CharacterConfig);
|
43
|
+
updateCharacter(username: string, characterDescription: CharacterDescription): void;
|
33
44
|
private load;
|
34
45
|
updateAnimation(targetAnimation: AnimationState): void;
|
35
46
|
update(time: number, deltaTime: number): void;
|
@@ -3,26 +3,34 @@ import { Euler, Group, Vector3 } from "three";
|
|
3
3
|
import { CameraManager } from "../camera/CameraManager";
|
4
4
|
import { CollisionsManager } from "../collisions/CollisionsManager";
|
5
5
|
import { KeyInputManager } from "../input/KeyInputManager";
|
6
|
+
import { VirtualJoystick } from "../input/VirtualJoystick";
|
6
7
|
import { Composer } from "../rendering/composer";
|
7
8
|
import { TimeManager } from "../time/TimeManager";
|
8
9
|
import { AnimationConfig, Character, CharacterDescription } from "./Character";
|
9
10
|
import { CharacterModelLoader } from "./CharacterModelLoader";
|
10
11
|
import { CharacterState } from "./CharacterState";
|
11
12
|
import { RemoteController } from "./RemoteController";
|
13
|
+
export type CharacterManagerConfig = {
|
14
|
+
composer: Composer;
|
15
|
+
characterModelLoader: CharacterModelLoader;
|
16
|
+
collisionsManager: CollisionsManager;
|
17
|
+
cameraManager: CameraManager;
|
18
|
+
timeManager: TimeManager;
|
19
|
+
keyInputManager: KeyInputManager;
|
20
|
+
virtualJoystick?: VirtualJoystick;
|
21
|
+
remoteUserStates: Map<number, CharacterState>;
|
22
|
+
sendUpdate: (update: CharacterState) => void;
|
23
|
+
animationConfig: AnimationConfig;
|
24
|
+
characterResolve: (clientId: number) => {
|
25
|
+
username: string;
|
26
|
+
characterDescription: CharacterDescription;
|
27
|
+
};
|
28
|
+
};
|
12
29
|
export declare class CharacterManager {
|
13
|
-
private
|
14
|
-
private readonly characterModelLoader;
|
15
|
-
private readonly collisionsManager;
|
16
|
-
private readonly cameraManager;
|
17
|
-
private readonly timeManager;
|
18
|
-
private readonly keyInputManager;
|
19
|
-
private readonly clientStates;
|
20
|
-
private readonly sendUpdate;
|
21
|
-
private readonly animationConfig;
|
22
|
-
private readonly characterDescription;
|
30
|
+
private config;
|
23
31
|
private updateLocationHash;
|
24
32
|
readonly headTargetOffset: Vector3;
|
25
|
-
private
|
33
|
+
private localClientId;
|
26
34
|
remoteCharacters: Map<number, Character>;
|
27
35
|
remoteCharacterControllers: Map<number, RemoteController>;
|
28
36
|
private localCharacterSpawned;
|
@@ -30,11 +38,12 @@ export declare class CharacterManager {
|
|
30
38
|
localCharacter: Character | null;
|
31
39
|
private speakingCharacters;
|
32
40
|
readonly group: Group;
|
33
|
-
constructor(
|
34
|
-
spawnLocalCharacter(
|
35
|
-
spawnRemoteCharacter(
|
41
|
+
constructor(config: CharacterManagerConfig);
|
42
|
+
spawnLocalCharacter(id: number, username: string, characterDescription: CharacterDescription, spawnPosition?: Vector3, spawnRotation?: Euler): void;
|
43
|
+
spawnRemoteCharacter(id: number, username: string, characterDescription: CharacterDescription, spawnPosition?: Vector3, spawnRotation?: Euler): void;
|
36
44
|
getLocalCharacterPositionAndRotation(): PositionAndRotation;
|
37
45
|
clear(): void;
|
38
46
|
setSpeakingCharacter(id: number, value: boolean): void;
|
47
|
+
respawnIfPresent(id: number): void;
|
39
48
|
update(): void;
|
40
49
|
}
|
@@ -1,16 +1,19 @@
|
|
1
1
|
import { Color, MeshStandardMaterial } from "three";
|
2
2
|
import { CameraManager } from "../camera/CameraManager";
|
3
|
+
export type CharacterMaterialConfig = {
|
4
|
+
isLocal: boolean;
|
5
|
+
cameraManager: CameraManager;
|
6
|
+
characterId: number;
|
7
|
+
originalMaterial: MeshStandardMaterial;
|
8
|
+
colorOverride?: Color;
|
9
|
+
};
|
3
10
|
export declare class CharacterMaterial extends MeshStandardMaterial {
|
4
|
-
private
|
5
|
-
private cameraManager;
|
6
|
-
private characterId;
|
7
|
-
private originalMaterial;
|
8
|
-
private colorOverride?;
|
11
|
+
private config;
|
9
12
|
private uniforms;
|
10
13
|
private colorsCube216;
|
11
14
|
private targetAlpha;
|
12
15
|
private currentAlpha;
|
13
|
-
constructor(
|
16
|
+
constructor(config: CharacterMaterialConfig);
|
14
17
|
private generateColorCube;
|
15
18
|
update(): void;
|
16
19
|
}
|
@@ -1,16 +1,21 @@
|
|
1
1
|
import { type MMLCharacterDescription } from "@mml-io/3d-web-avatar";
|
2
|
+
import { ModelLoader } from "@mml-io/model-loader";
|
2
3
|
import { AnimationAction, AnimationMixer, Bone, Object3D } from "three";
|
3
4
|
import { CameraManager } from "../camera/CameraManager";
|
4
5
|
import { AnimationConfig, CharacterDescription } from "./Character";
|
5
6
|
import { CharacterModelLoader } from "./CharacterModelLoader";
|
6
7
|
import { AnimationState } from "./CharacterState";
|
8
|
+
export type CharacterModelConfig = {
|
9
|
+
characterDescription: CharacterDescription;
|
10
|
+
animationConfig: AnimationConfig;
|
11
|
+
characterModelLoader: CharacterModelLoader;
|
12
|
+
cameraManager: CameraManager;
|
13
|
+
characterId: number;
|
14
|
+
isLocal: boolean;
|
15
|
+
};
|
7
16
|
export declare class CharacterModel {
|
8
|
-
private
|
9
|
-
|
10
|
-
private characterModelLoader;
|
11
|
-
private readonly cameraManager;
|
12
|
-
private readonly characterId;
|
13
|
-
private readonly isLocal;
|
17
|
+
private config;
|
18
|
+
static ModelLoader: ModelLoader;
|
14
19
|
mesh: Object3D | null;
|
15
20
|
headBone: Bone | null;
|
16
21
|
private materials;
|
@@ -18,7 +23,7 @@ export declare class CharacterModel {
|
|
18
23
|
animationMixer: AnimationMixer | null;
|
19
24
|
currentAnimation: AnimationState;
|
20
25
|
mmlCharacterDescription: MMLCharacterDescription;
|
21
|
-
constructor(
|
26
|
+
constructor(config: CharacterModelConfig);
|
22
27
|
init(): Promise<void>;
|
23
28
|
private applyCustomMaterials;
|
24
29
|
updateAnimation(targetAnimation: AnimationState): void;
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import { AnimationClip, Object3D } from "three";
|
2
2
|
export declare class CharacterModelLoader {
|
3
3
|
private debug;
|
4
|
-
private readonly
|
5
|
-
private readonly gltfLoader;
|
4
|
+
private readonly modelLoader;
|
6
5
|
private modelCache;
|
7
6
|
private ongoingLoads;
|
8
7
|
constructor(maxCacheSize?: number, debug?: boolean);
|
@@ -1,14 +1,30 @@
|
|
1
|
-
import { Camera, Mesh } from "three";
|
1
|
+
import { Camera, Color, Mesh } from "three";
|
2
|
+
declare enum LabelAlignment {
|
3
|
+
left = "left",
|
4
|
+
center = "center",
|
5
|
+
right = "right"
|
6
|
+
}
|
7
|
+
export type CharacterTooltipConfig = {
|
8
|
+
alignment: LabelAlignment;
|
9
|
+
width: number;
|
10
|
+
height: number;
|
11
|
+
fontSize: number;
|
12
|
+
padding: number;
|
13
|
+
color: Color;
|
14
|
+
fontColor: Color;
|
15
|
+
castShadows: boolean;
|
16
|
+
};
|
2
17
|
export declare class CharacterTooltip extends Mesh {
|
3
18
|
private tooltipMaterial;
|
4
19
|
private visibleOpacity;
|
5
20
|
private targetOpacity;
|
6
21
|
private fadingSpeed;
|
7
22
|
private secondsToFadeOut;
|
8
|
-
private
|
9
|
-
constructor();
|
23
|
+
private config;
|
24
|
+
constructor(configArg?: Partial<CharacterTooltipConfig>);
|
10
25
|
private redrawText;
|
11
26
|
setText(text: string, temporary?: boolean): void;
|
12
27
|
hide(): void;
|
13
28
|
update(camera: Camera): void;
|
14
29
|
}
|
30
|
+
export {};
|
@@ -2,16 +2,21 @@ import { Line3, Quaternion, Vector3 } from "three";
|
|
2
2
|
import { CameraManager } from "../camera/CameraManager";
|
3
3
|
import { CollisionsManager } from "../collisions/CollisionsManager";
|
4
4
|
import { KeyInputManager } from "../input/KeyInputManager";
|
5
|
+
import { VirtualJoystick } from "../input/VirtualJoystick";
|
5
6
|
import { TimeManager } from "../time/TimeManager";
|
6
7
|
import { Character } from "./Character";
|
7
8
|
import { CharacterState } from "./CharacterState";
|
9
|
+
export type LocalControllerConfig = {
|
10
|
+
id: number;
|
11
|
+
character: Character;
|
12
|
+
collisionsManager: CollisionsManager;
|
13
|
+
keyInputManager: KeyInputManager;
|
14
|
+
virtualJoystick?: VirtualJoystick;
|
15
|
+
cameraManager: CameraManager;
|
16
|
+
timeManager: TimeManager;
|
17
|
+
};
|
8
18
|
export declare class LocalController {
|
9
|
-
private
|
10
|
-
private readonly id;
|
11
|
-
private readonly collisionsManager;
|
12
|
-
private readonly keyInputManager;
|
13
|
-
private readonly cameraManager;
|
14
|
-
private readonly timeManager;
|
19
|
+
private config;
|
15
20
|
capsuleInfo: {
|
16
21
|
radius: number;
|
17
22
|
segment: Line3;
|
@@ -57,7 +62,7 @@ export declare class LocalController {
|
|
57
62
|
private anyDirection;
|
58
63
|
private conflictingDirections;
|
59
64
|
networkState: CharacterState;
|
60
|
-
constructor(
|
65
|
+
constructor(config: LocalControllerConfig);
|
61
66
|
private updateControllerState;
|
62
67
|
update(): void;
|
63
68
|
private getTargetAnimation;
|
@@ -1,11 +1,14 @@
|
|
1
1
|
import { Character } from "./Character";
|
2
2
|
import { AnimationState, CharacterState } from "./CharacterState";
|
3
|
+
export type RemoteControllerConfig = {
|
4
|
+
id: number;
|
5
|
+
character: Character;
|
6
|
+
};
|
3
7
|
export declare class RemoteController {
|
4
|
-
|
5
|
-
readonly id: number;
|
8
|
+
private config;
|
6
9
|
currentAnimation: AnimationState;
|
7
10
|
networkState: CharacterState;
|
8
|
-
constructor(
|
11
|
+
constructor(config: RemoteControllerConfig);
|
9
12
|
update(clientUpdate: CharacterState, time: number, deltaTime: number): void;
|
10
13
|
private updateFromNetwork;
|
11
14
|
}
|
package/build/index.d.ts
CHANGED
@@ -6,9 +6,12 @@ export * from "./helpers/math-helpers";
|
|
6
6
|
export { CharacterModelLoader } from "./character/CharacterModelLoader";
|
7
7
|
export { CharacterState, AnimationState } from "./character/CharacterState";
|
8
8
|
export { KeyInputManager } from "./input/KeyInputManager";
|
9
|
+
export { VirtualJoystick } from "./input/VirtualJoystick";
|
9
10
|
export { MMLCompositionScene } from "./mml/MMLCompositionScene";
|
10
11
|
export { TweakPane } from "./tweakpane/TweakPane";
|
11
12
|
export { Composer } from "./rendering/composer";
|
12
13
|
export { TimeManager } from "./time/TimeManager";
|
13
14
|
export { CollisionsManager } from "./collisions/CollisionsManager";
|
14
15
|
export { Sun } from "./sun/Sun";
|
16
|
+
export { GroundPlane } from "./ground-plane/GroundPlane";
|
17
|
+
export { LoadingScreen } from "./loading-screen/LoadingScreen";
|