@memori.ai/memori-react 7.19.2 → 7.21.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.
Files changed (111) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +3 -2
  3. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js +13 -6
  4. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js.map +1 -1
  5. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +14 -18
  6. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +19 -77
  7. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  8. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +17 -2
  9. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +95 -70
  10. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  11. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.d.ts +65 -0
  12. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js +747 -0
  13. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js.map +1 -0
  14. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.d.ts +9 -2
  15. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js +60 -2
  16. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
  17. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +3 -4
  18. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +5 -11
  19. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
  20. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +13 -52
  21. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +68 -70
  22. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  23. package/dist/components/Avatar/AvatarView/index.d.ts +1 -1
  24. package/dist/components/Avatar/AvatarView/index.js +2 -2
  25. package/dist/components/Avatar/AvatarView/index.js.map +1 -1
  26. package/dist/components/ChatBubble/ChatBubble.css +9 -0
  27. package/dist/components/ChatBubble/ChatBubble.js +7 -1
  28. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  29. package/dist/components/MemoriWidget/MemoriWidget.js +130 -62
  30. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  31. package/dist/components/UploadButton/UploadButton.js +2 -2
  32. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  33. package/dist/components/WhyThisAnswer/WhyThisAnswer.css +43 -0
  34. package/dist/components/WhyThisAnswer/WhyThisAnswer.js +2 -1
  35. package/dist/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  36. package/dist/context/visemeContext.js +0 -39
  37. package/dist/context/visemeContext.js.map +1 -1
  38. package/dist/locales/de.json +1 -0
  39. package/dist/locales/en.json +1 -0
  40. package/dist/locales/es.json +1 -0
  41. package/dist/locales/fr.json +1 -0
  42. package/dist/locales/it.json +1 -0
  43. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +3 -2
  44. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js +13 -6
  45. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js.map +1 -1
  46. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +14 -18
  47. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +20 -78
  48. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  49. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +17 -2
  50. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +99 -74
  51. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  52. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.d.ts +65 -0
  53. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js +743 -0
  54. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js.map +1 -0
  55. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.d.ts +9 -2
  56. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js +61 -3
  57. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
  58. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +3 -4
  59. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +5 -11
  60. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
  61. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +13 -52
  62. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +67 -69
  63. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  64. package/esm/components/Avatar/AvatarView/index.d.ts +1 -1
  65. package/esm/components/Avatar/AvatarView/index.js +2 -2
  66. package/esm/components/Avatar/AvatarView/index.js.map +1 -1
  67. package/esm/components/ChatBubble/ChatBubble.css +9 -0
  68. package/esm/components/ChatBubble/ChatBubble.js +7 -1
  69. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  70. package/esm/components/MemoriWidget/MemoriWidget.js +130 -62
  71. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  72. package/esm/components/UploadButton/UploadButton.js +2 -2
  73. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  74. package/esm/components/WhyThisAnswer/WhyThisAnswer.css +43 -0
  75. package/esm/components/WhyThisAnswer/WhyThisAnswer.js +2 -1
  76. package/esm/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  77. package/esm/context/visemeContext.js +0 -39
  78. package/esm/context/visemeContext.js.map +1 -1
  79. package/esm/locales/de.json +1 -0
  80. package/esm/locales/en.json +1 -0
  81. package/esm/locales/es.json +1 -0
  82. package/esm/locales/fr.json +1 -0
  83. package/esm/locales/it.json +1 -0
  84. package/package.json +2 -2
  85. package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +15 -8
  86. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +64 -219
  87. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +221 -124
  88. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.ts +1250 -0
  89. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +164 -8
  90. package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +19 -17
  91. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +80 -79
  92. package/src/components/Avatar/AvatarView/index.tsx +1 -7
  93. package/src/components/ChatBubble/ChatBubble.css +9 -0
  94. package/src/components/ChatBubble/ChatBubble.tsx +14 -2
  95. package/src/components/MemoriWidget/MemoriWidget.tsx +168 -76
  96. package/src/components/UploadButton/UploadButton.tsx +4 -4
  97. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +1 -1
  98. package/src/components/WhyThisAnswer/WhyThisAnswer.css +43 -0
  99. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +44 -3
  100. package/src/components/WhyThisAnswer/WhyThisAnswer.test.tsx +128 -8
  101. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +28 -3
  102. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +15 -1
  103. package/src/components/layouts/layouts.stories.tsx +0 -8
  104. package/src/context/visemeContext.tsx +40 -41
  105. package/src/index.stories.tsx +63 -65
  106. package/src/locales/de.json +1 -0
  107. package/src/locales/en.json +1 -0
  108. package/src/locales/es.json +1 -0
  109. package/src/locales/fr.json +1 -0
  110. package/src/locales/it.json +1 -0
  111. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.ts +0 -308
@@ -1,27 +1,38 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useMemo } from 'react';
3
- import { AnimationMixer, SkinnedMesh } from 'three';
4
- import { useAnimations, useGLTF } from '@react-three/drei';
2
+ import { useEffect, useRef, useMemo, useCallback, useState } from 'react';
3
+ import { SkinnedMesh } from 'three';
4
+ import { useGLTF, useAnimations } from '@react-three/drei';
5
5
  import { useFrame } from '@react-three/fiber';
6
- import { AnimationState } from './types';
7
- import { AnimationController } from '../controllers/AnimationController';
8
6
  import { MorphTargetController } from '../controllers/MorphTargetController';
9
7
  import { AvatarPositionController } from '../controllers/AvatarPositionController';
10
- import { AVATAR_POSITION, AVATAR_ROTATION, ANIMATION_URLS, DEFAULT_CONFIG, SCALE_LERP_FACTOR, } from '../../constants';
8
+ import { AvatarAnimator } from '../controllers/AvatarAnimator';
9
+ import { ANIMATION_URLS, AVATAR_POSITION, AVATAR_ROTATION, SCALE_LERP_FACTOR, } from '../../constants';
11
10
  import DynamicShadow from '../../Shadow/DynamicShadow';
12
- export function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScale, eyeBlink, updateCurrentViseme, setMorphTargetDictionary, setMorphTargetInfluences, emotionMorphTargets, avatarHeight = 50, avatarDepth = 0, onCameraZChange, }) {
13
- const { scene } = useGLTF(url);
14
- const { animations: baseAnimations } = useGLTF(url);
11
+ export function FullbodyAvatar({ url, sex, eyeBlink, updateCurrentViseme, avatarHeight = 50, avatarDepth = 0, onCameraZChange, chatEmission, loading, setAnimatorRef, }) {
12
+ const { scene, animations: baseAnimations } = useGLTF(url);
15
13
  const { animations: additionalAnimations } = useGLTF(ANIMATION_URLS[sex]);
16
- const mergedAnimations = useMemo(() => [...baseAnimations, ...additionalAnimations], [baseAnimations, additionalAnimations]);
14
+ const needsAdditionalAnimations = useMemo(() => {
15
+ let found = false;
16
+ scene.traverse((object) => {
17
+ if (object instanceof SkinnedMesh &&
18
+ (object.name === 'GBNL__Head' ||
19
+ object.name === 'Wolf3D_Avatar' ||
20
+ object.name === 'Wolf3D_Avatar006_1')) {
21
+ found = true;
22
+ }
23
+ });
24
+ return found;
25
+ }, [scene]);
26
+ const mergedAnimations = useMemo(() => needsAdditionalAnimations ? [...baseAnimations, ...additionalAnimations] : baseAnimations, [baseAnimations, additionalAnimations, needsAdditionalAnimations]);
17
27
  const { actions } = useAnimations(mergedAnimations, scene);
18
- const animationControllerRef = useRef();
19
- const morphTargetControllerRef = useRef();
20
- const positionControllerRef = useRef();
28
+ const morphTargetControllerRef = useRef(null);
29
+ const positionControllerRef = useRef(null);
30
+ const animatorRef = useRef(null);
31
+ const isInitializedRef = useRef(false);
21
32
  const lastPositionRef = useRef(AVATAR_POSITION.clone());
22
33
  const positionUpdateThrottleRef = useRef(0);
23
34
  const POSITION_UPDATE_INTERVAL = 1;
24
- const POSITION_THRESHOLD = 0.000001;
35
+ const [isRpm, setIsRpm] = useState(false);
25
36
  const blinkStateRef = useRef({
26
37
  isBlinking: false,
27
38
  lastBlinkTime: 0,
@@ -29,27 +40,35 @@ export function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScal
29
40
  blinkStartTime: 0,
30
41
  });
31
42
  useEffect(() => {
32
- if (!positionControllerRef.current) {
33
- positionControllerRef.current = new AvatarPositionController(AVATAR_POSITION);
34
- }
35
- if (!actions || !scene)
43
+ if (!scene)
36
44
  return;
37
- const mixer = new AnimationMixer(scene);
38
- animationControllerRef.current = new AnimationController(mixer, actions, { ...DEFAULT_CONFIG });
45
+ let headMesh = null;
46
+ scene.traverse((object) => {
47
+ if (object instanceof SkinnedMesh &&
48
+ (object.name === 'GBNL__Head' ||
49
+ object.name === 'Wolf3D_Avatar' ||
50
+ object.name === 'Wolf3D_Avatar006_1')) {
51
+ if (object.name === 'Wolf3D_Avatar' ||
52
+ object.name === 'Wolf3D_Avatar006_1') {
53
+ setIsRpm(true);
54
+ console.log('RPM avatar detected');
55
+ }
56
+ headMesh = object;
57
+ }
58
+ });
39
59
  if (headMesh) {
40
- morphTargetControllerRef.current = new MorphTargetController(headMesh);
41
- if (headMesh.morphTargetDictionary && headMesh.morphTargetInfluences) {
42
- setMorphTargetDictionary(headMesh.morphTargetDictionary);
43
- const initialInfluences = Object.keys(headMesh.morphTargetDictionary)
44
- .reduce((acc, key) => ({ ...acc, [key]: 0 }), {});
45
- setMorphTargetInfluences(initialInfluences);
60
+ if (!morphTargetControllerRef.current) {
61
+ morphTargetControllerRef.current = new MorphTargetController(headMesh);
46
62
  }
47
63
  }
48
- const initialPosition = AVATAR_POSITION.clone();
49
- initialPosition.setX(Number(initialPosition.x.toFixed(6)));
50
- initialPosition.setY(Number(initialPosition.y.toFixed(6)));
51
- initialPosition.setZ(Number(initialPosition.z.toFixed(6)));
52
- }, [actions, scene]);
64
+ }, [scene]);
65
+ useEffect(() => {
66
+ if (!positionControllerRef.current) {
67
+ positionControllerRef.current = new AvatarPositionController(AVATAR_POSITION);
68
+ }
69
+ return () => {
70
+ };
71
+ }, []);
53
72
  useEffect(() => {
54
73
  if (positionControllerRef.current) {
55
74
  positionControllerRef.current.updateHeight(avatarHeight, false);
@@ -61,69 +80,75 @@ export function FullbodyAvatar({ url, sex, setIsRpm, currentBaseAction, timeScal
61
80
  onCameraZChange(newCameraZ);
62
81
  }
63
82
  }, [avatarDepth, onCameraZChange]);
64
- const headMesh = useMemo(() => {
65
- let foundMesh;
66
- scene === null || scene === void 0 ? void 0 : scene.traverse((object) => {
67
- if (object instanceof SkinnedMesh &&
68
- (object.name === 'GBNL__Head' || object.name === 'Wolf3D_Avatar' || object.name === 'Wolf3D_Avatar006_1')) {
69
- if (object.name === 'GBNL__Head') {
70
- setIsRpm(false);
71
- }
72
- else {
73
- setIsRpm(true);
74
- }
75
- foundMesh = object;
76
- }
77
- });
78
- return foundMesh;
79
- }, [scene]);
80
83
  useEffect(() => {
81
- if (!animationControllerRef.current)
84
+ if (!scene || !actions || isInitializedRef.current) {
82
85
  return;
83
- if (currentBaseAction.action.startsWith('Loading')) {
84
- animationControllerRef.current.updateIsChatAlreadyStarted(true);
85
- animationControllerRef.current.transitionTo(AnimationState.LOADING, currentBaseAction.action);
86
86
  }
87
- else if (currentBaseAction.action.includes('->')) {
88
- animationControllerRef.current.playSequence(currentBaseAction.action);
87
+ console.log('Initializing animator');
88
+ if (!animatorRef.current) {
89
+ animatorRef.current = new AvatarAnimator();
89
90
  }
90
- else if (currentBaseAction.action.startsWith('Idle')) {
91
- animationControllerRef.current.transitionTo(AnimationState.IDLE);
92
- }
93
- else {
94
- animationControllerRef.current.transitionTo(AnimationState.EMOTION, currentBaseAction.action);
95
- }
96
- }, [currentBaseAction]);
97
- useEffect(() => {
98
- var _a;
99
- (_a = animationControllerRef.current) === null || _a === void 0 ? void 0 : _a.setTimeScale(timeScale);
100
- }, [timeScale]);
101
- useFrame((state, delta) => {
102
- var _a;
91
+ const animator = animatorRef.current;
92
+ const initWithPreloadedAnimations = async () => {
93
+ try {
94
+ if (animator.isInitialized()) {
95
+ console.log('Animator already initialized, skipping initialization');
96
+ return;
97
+ }
98
+ await animator.initialize(scene, actions, mergedAnimations, isRpm ? 'RPM' : 'CUSTOM_GLB');
99
+ console.log('AvatarAnimator initialized with', Object.keys(actions).length, 'animations');
100
+ if (setAnimatorRef) {
101
+ setAnimatorRef(animator);
102
+ }
103
+ isInitializedRef.current = true;
104
+ animator.setTimeScale(0.8);
105
+ }
106
+ catch (error) {
107
+ console.error('Error initializing AvatarAnimator:', error);
108
+ }
109
+ };
110
+ initWithPreloadedAnimations();
111
+ return () => {
112
+ if (animatorRef.current && isInitializedRef.current) {
113
+ console.log('Cleaning up animator');
114
+ if ('mixer' in animatorRef.current && animatorRef.current['mixer']) {
115
+ animatorRef.current['mixer'].stopAllAction();
116
+ }
117
+ if (setAnimatorRef) {
118
+ setAnimatorRef(null);
119
+ }
120
+ isInitializedRef.current = false;
121
+ }
122
+ };
123
+ }, [scene, actions, mergedAnimations, sex, setAnimatorRef]);
124
+ const frameCallback = useCallback((state, delta) => {
103
125
  const currentTime = state.clock.elapsedTime * 1000;
104
- (_a = animationControllerRef.current) === null || _a === void 0 ? void 0 : _a.update(delta);
126
+ if (animatorRef.current && isInitializedRef.current) {
127
+ animatorRef.current.update(delta);
128
+ }
105
129
  if (morphTargetControllerRef.current) {
106
130
  const currentViseme = updateCurrentViseme(currentTime / 1000);
107
- morphTargetControllerRef.current.updateMorphTargets(currentTime, emotionMorphTargets, currentViseme, eyeBlink || false, blinkStateRef.current);
131
+ morphTargetControllerRef.current.updateMorphTargets(currentTime, chatEmission, loading, currentViseme, eyeBlink, blinkStateRef.current);
108
132
  }
109
133
  if (scene && positionControllerRef.current) {
110
134
  const newScale = positionControllerRef.current.updateScale(SCALE_LERP_FACTOR);
111
135
  scene.scale.copy(newScale);
112
- if (currentTime - positionUpdateThrottleRef.current >= POSITION_UPDATE_INTERVAL) {
136
+ if (currentTime - positionUpdateThrottleRef.current >=
137
+ POSITION_UPDATE_INTERVAL) {
113
138
  const currentPosition = positionControllerRef.current.getPosition();
114
139
  currentPosition.setX(Number(currentPosition.x.toFixed(6)));
115
140
  currentPosition.setY(Number(currentPosition.y.toFixed(6)));
116
141
  currentPosition.setZ(Number(currentPosition.z.toFixed(6)));
117
- const positionDelta = currentPosition.distanceTo(lastPositionRef.current);
118
142
  lastPositionRef.current.copy(currentPosition);
119
143
  positionUpdateThrottleRef.current = currentTime;
120
144
  }
121
145
  }
122
- });
146
+ }, [scene, updateCurrentViseme, chatEmission, loading, eyeBlink]);
147
+ useFrame(frameCallback);
123
148
  const position = useMemo(() => {
124
149
  var _a;
125
- return ((_a = positionControllerRef.current) === null || _a === void 0 ? void 0 : _a.getPosition()) || AVATAR_POSITION.clone();
126
- }, [positionControllerRef.current]);
127
- return (_jsxs(_Fragment, { children: [_jsx(DynamicShadow, { currentBaseAction: currentBaseAction, avatarPosition: position }), _jsx("group", { position: position, rotation: AVATAR_ROTATION, children: _jsx("primitive", { object: scene }) })] }));
150
+ return (((_a = positionControllerRef.current) === null || _a === void 0 ? void 0 : _a.getPosition()) || AVATAR_POSITION.clone());
151
+ }, []);
152
+ return (_jsxs(_Fragment, { children: [_jsx(DynamicShadow, { animator: animatorRef.current, avatarPosition: position }), _jsx("group", { position: position, rotation: AVATAR_ROTATION, children: _jsx("primitive", { object: scene }) })] }));
128
153
  }
129
154
  //# sourceMappingURL=fullbodyAvatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fullbodyAvatar.js","sourceRoot":"","sources":["../../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fullbodyAvatar.js","sourceRoot":"","sources":["../../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { AnimationAction, AnimationClip, Scene } from 'three';
2
+ export type AnimationCategory = 'IDLE' | 'LOADING' | 'ACTION';
3
+ export interface AnimationInfo {
4
+ name: string;
5
+ category: AnimationCategory;
6
+ duration: number;
7
+ canLoop: boolean;
8
+ defaultLoopCount: number;
9
+ }
10
+ export interface AnimationPlayOptions {
11
+ fadeInDuration?: number;
12
+ fadeOutDuration?: number;
13
+ timeScale?: number;
14
+ loopCount?: number;
15
+ fallbackToIdle?: boolean;
16
+ }
17
+ export declare class AvatarAnimator {
18
+ private mixer;
19
+ private actions;
20
+ private animations;
21
+ private currentAnimation;
22
+ private currentSequence;
23
+ private sequenceIndex;
24
+ private isTransitioning;
25
+ private timeScale;
26
+ private fadeInDuration;
27
+ private fadeOutDuration;
28
+ private avatarType;
29
+ private eventListeners;
30
+ private initialized;
31
+ private idleRotationCount;
32
+ private currentIdleAnimation;
33
+ private idleRotationLimit;
34
+ private lastAnimationTime;
35
+ initialize(scene: Scene, preloadedActions: Record<string, AnimationAction>, animations?: AnimationClip[], avatarType?: 'RPM' | 'CUSTOM_GLB'): Promise<void>;
36
+ private registerClipsDirectly;
37
+ private registerAnimations;
38
+ private registerAnimation;
39
+ play(animationName: string, options?: AnimationPlayOptions): void;
40
+ execute(command: string): void;
41
+ processChatEmission(chatEmission: string | null | undefined, isLoading: boolean): void;
42
+ private calculateTransitionOptions;
43
+ private executeWithTransition;
44
+ idle(options?: AnimationPlayOptions): void;
45
+ loading(options?: AnimationPlayOptions): void;
46
+ playSequence(sequence: string[], options?: AnimationPlayOptions): void;
47
+ forceIdle(): void;
48
+ update(delta: number): void;
49
+ private isAnimationPlaying;
50
+ private setupMixerEvents;
51
+ private handleSequenceProgressionIfNeeded;
52
+ private handleIdleRotationIfNeeded;
53
+ setTimeScale(timeScale: number): void;
54
+ private getRandomAnimation;
55
+ private getAnimationInfo;
56
+ private getAnimationCategory;
57
+ on(event: 'start' | 'complete' | 'loop' | 'transition' | 'error', callback: (data: any) => void): void;
58
+ off(event: 'start' | 'complete' | 'loop' | 'transition' | 'error', callback: (data: any) => void): void;
59
+ private emit;
60
+ getCurrentAnimationName(): string | null;
61
+ getAvatarType(): 'RPM' | 'CUSTOM_GLB';
62
+ isInitialized(): boolean;
63
+ getAllAnimationNames(): string[];
64
+ getAnimationsByCategory(category: AnimationCategory): AnimationInfo[];
65
+ }