@mml-io/3d-web-client-core 0.7.0 → 0.9.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.
@@ -16,16 +16,17 @@ export declare class CameraManager {
16
16
  private dampingFactor;
17
17
  targetDistance: number;
18
18
  private distance;
19
+ private desiredDistance;
19
20
  private targetPhi;
20
21
  private phi;
21
22
  private targetTheta;
22
23
  private theta;
23
- private dragging;
24
+ dragging: boolean;
24
25
  private target;
25
26
  private hadTarget;
26
27
  private rayCaster;
27
- constructor(collisionsManager: CollisionsManager);
28
- private onResize;
28
+ private eventHandlerCollection;
29
+ constructor(targetElement: HTMLElement, collisionsManager: CollisionsManager, initialPhi?: number, initialTheta?: number);
29
30
  private onMouseDown;
30
31
  private onMouseUp;
31
32
  private onMouseMove;
@@ -33,5 +34,6 @@ export declare class CameraManager {
33
34
  setTarget(target: Vector3): void;
34
35
  private reverseUpdateFromPositions;
35
36
  adjustCameraPosition(): void;
37
+ dispose(): void;
36
38
  update(): void;
37
39
  }
@@ -2,8 +2,11 @@ import { Color, 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 { Composer } from "../rendering/composer";
5
6
  import { TimeManager } from "../time/TimeManager";
6
7
  import { CharacterModel } from "./CharacterModel";
8
+ import { CharacterModelLoader } from "./CharacterModelLoader";
9
+ import { CharacterSpeakingIndicator } from "./CharacterSpeakingIndicator";
7
10
  import { CharacterTooltip } from "./CharacterTooltip";
8
11
  import { LocalController } from "./LocalController";
9
12
  export type CharacterDescription = {
@@ -16,6 +19,7 @@ export type CharacterDescription = {
16
19
  };
17
20
  export declare class Character {
18
21
  private readonly characterDescription;
22
+ private readonly characterModelLoader;
19
23
  private readonly id;
20
24
  private readonly isLocal;
21
25
  private readonly modelLoadedCallback;
@@ -23,13 +27,15 @@ export declare class Character {
23
27
  private readonly keyInputManager;
24
28
  private readonly cameraManager;
25
29
  private readonly timeManager;
30
+ private readonly composer;
26
31
  controller: LocalController | null;
27
32
  name: string | null;
28
33
  model: CharacterModel | null;
29
34
  color: Color;
30
35
  position: Vector3;
31
36
  tooltip: CharacterTooltip | null;
32
- constructor(characterDescription: CharacterDescription, id: number, isLocal: boolean, modelLoadedCallback: () => void, collisionsManager: CollisionsManager, keyInputManager: KeyInputManager, cameraManager: CameraManager, timeManager: TimeManager);
37
+ speakingIndicator: CharacterSpeakingIndicator | null;
38
+ constructor(characterDescription: CharacterDescription, characterModelLoader: CharacterModelLoader, id: number, isLocal: boolean, modelLoadedCallback: () => void, collisionsManager: CollisionsManager, keyInputManager: KeyInputManager, cameraManager: CameraManager, timeManager: TimeManager, composer: Composer);
33
39
  private load;
34
40
  update(time: number): void;
35
41
  }
@@ -1,13 +1,17 @@
1
1
  import { PositionAndRotation } from "mml-web";
2
- import { Group, Vector3 } from "three";
2
+ 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 { Composer } from "../rendering/composer";
6
7
  import { TimeManager } from "../time/TimeManager";
7
8
  import { Character, CharacterDescription } from "./Character";
9
+ import { CharacterModelLoader } from "./CharacterModelLoader";
8
10
  import { CharacterState } from "./CharacterState";
9
11
  import { RemoteController } from "./RemoteController";
10
12
  export declare class CharacterManager {
13
+ private readonly composer;
14
+ private readonly characterModelLoader;
11
15
  private readonly collisionsManager;
12
16
  private readonly cameraManager;
13
17
  private readonly timeManager;
@@ -15,6 +19,7 @@ export declare class CharacterManager {
15
19
  private readonly clientStates;
16
20
  private readonly sendUpdate;
17
21
  private updateLocationHash;
22
+ private id;
18
23
  loadingCharacters: Map<number, Promise<Character>>;
19
24
  remoteCharacters: Map<number, Character>;
20
25
  remoteCharacterControllers: Map<number, RemoteController>;
@@ -22,10 +27,12 @@ export declare class CharacterManager {
22
27
  character: Character | null;
23
28
  private cameraOffsetTarget;
24
29
  private cameraOffset;
30
+ private speakingCharacters;
25
31
  readonly group: Group;
26
- constructor(collisionsManager: CollisionsManager, cameraManager: CameraManager, timeManager: TimeManager, inputManager: KeyInputManager, clientStates: Map<number, CharacterState>, sendUpdate: (update: CharacterState) => void);
27
- spawnCharacter(characterDescription: CharacterDescription, id: number, isLocal?: boolean, spawnPosition?: Vector3): Promise<Character>;
32
+ constructor(composer: Composer, characterModelLoader: CharacterModelLoader, collisionsManager: CollisionsManager, cameraManager: CameraManager, timeManager: TimeManager, inputManager: KeyInputManager, clientStates: Map<number, CharacterState>, sendUpdate: (update: CharacterState) => void);
33
+ spawnCharacter(characterDescription: CharacterDescription, id: number, isLocal?: boolean, spawnPosition?: Vector3, spawnRotation?: Euler): Promise<Character>;
28
34
  getLocalCharacterPositionAndRotation(): PositionAndRotation;
29
35
  clear(): void;
36
+ setSpeakingCharacter(id: number, value: boolean): void;
30
37
  update(): void;
31
38
  }
@@ -1,16 +1,18 @@
1
- import { AnimationAction, AnimationMixer, Object3D } from "three";
1
+ import { AnimationAction, AnimationMixer, Bone, Object3D } from "three";
2
2
  import { CharacterDescription } from "./Character";
3
3
  import { CharacterMaterial } from "./CharacterMaterial";
4
+ import { CharacterModelLoader } from "./CharacterModelLoader";
4
5
  import { AnimationState } from "./CharacterState";
5
6
  export declare class CharacterModel {
6
7
  private readonly characterDescription;
7
- private modelLoader;
8
+ private characterModelLoader;
8
9
  mesh: Object3D | null;
9
10
  material: CharacterMaterial;
11
+ headBone: Bone | null;
10
12
  animations: Record<string, AnimationAction>;
11
13
  animationMixer: AnimationMixer | null;
12
14
  currentAnimation: AnimationState;
13
- constructor(characterDescription: CharacterDescription);
15
+ constructor(characterDescription: CharacterDescription, characterModelLoader: CharacterModelLoader);
14
16
  init(): Promise<void>;
15
17
  updateAnimation(targetAnimation: AnimationState, deltaTime: number): void;
16
18
  hideMaterialByMeshName(meshName: any): void;
@@ -1,14 +1,14 @@
1
1
  import { AnimationClip, Object3D } from "three";
2
- export declare class ModelLoader {
2
+ export declare class CharacterModelLoader {
3
3
  private static instance;
4
4
  private readonly loadingManager;
5
5
  private readonly gltfLoader;
6
6
  private modelCache;
7
7
  private ongoingLoads;
8
8
  constructor(maxCacheSize?: number);
9
- static getInstance(): ModelLoader;
9
+ static getInstance(): CharacterModelLoader;
10
10
  load(fileUrl: string, fileType: "model" | "animation"): Promise<Object3D | AnimationClip | undefined>;
11
11
  private loadFromUrl;
12
12
  }
13
- declare const MODEL_LOADER: ModelLoader;
13
+ declare const MODEL_LOADER: CharacterModelLoader;
14
14
  export default MODEL_LOADER;
@@ -0,0 +1,17 @@
1
+ import { Camera, Object3D, Scene, Vector3 } from "three";
2
+ export declare class CharacterSpeakingIndicator {
3
+ private scene;
4
+ private vertexShader;
5
+ private fragmentShader;
6
+ private uniforms;
7
+ private geometry;
8
+ private material;
9
+ private mesh;
10
+ private currentAlpha;
11
+ private targetAlpha;
12
+ constructor(scene: Scene | Object3D);
13
+ setBillboarding(position: Vector3, camera: Camera): void;
14
+ setTime(value: number): void;
15
+ setSpeaking(value: boolean): void;
16
+ dispose(): void;
17
+ }
@@ -1,16 +1,17 @@
1
1
  import { Object3D } from "three";
2
2
  import { Character } from "./Character";
3
+ import { CharacterModelLoader } from "./CharacterModelLoader";
3
4
  import { AnimationState, CharacterState } from "./CharacterState";
4
5
  export declare class RemoteController {
5
6
  readonly character: Character;
7
+ private readonly characterModelLoader;
6
8
  readonly id: number;
7
- private modelLoader;
8
9
  characterModel: Object3D | null;
9
10
  private animationMixer;
10
11
  private animations;
11
12
  currentAnimation: AnimationState;
12
13
  networkState: CharacterState;
13
- constructor(character: Character, id: number);
14
+ constructor(character: Character, characterModelLoader: CharacterModelLoader, id: number);
14
15
  update(clientUpdate: CharacterState, time: number, deltaTime: number): void;
15
16
  setAnimationFromFile(animationType: AnimationState, fileName: string): Promise<void>;
16
17
  private transitionToAnimation;
@@ -1,4 +1,6 @@
1
- import { Vector3 } from "three";
1
+ import { Quaternion, Vector3, Vector4 } from "three";
2
+ export declare const roundToDecimalPlaces: (value: number, decimalPlaces: number) => number;
3
+ export declare const toArray: (origin: Vector3 | Vector4 | Quaternion, precision?: number) => number[];
2
4
  export declare const getSpawnPositionInsideCircle: (radius: number, positions: number, id: number, yPos?: number) => Vector3;
3
5
  export declare const round: (n: number, digits: number) => number;
4
6
  export declare const ease: (target: number, n: number, factor: number) => number;
package/build/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  export { CameraManager } from "./camera/CameraManager";
2
2
  export { CharacterDescription } from "./character/Character";
3
3
  export { CharacterManager } from "./character/CharacterManager";
4
+ export { CharacterModelLoader } from "./character/CharacterModelLoader";
4
5
  export { CharacterState, AnimationState } from "./character/CharacterState";
5
6
  export { KeyInputManager } from "./input/KeyInputManager";
6
7
  export { MMLCompositionScene } from "./mml/MMLCompositionScene";
8
+ export { TweakPane } from "./tweakpane/TweakPane";
7
9
  export { Composer } from "./rendering/composer";
8
10
  export { TimeManager } from "./time/TimeManager";
9
11
  export { CollisionsManager } from "./collisions/CollisionsManager";