@spatialwalk/avatarkit 1.0.0-beta.7 → 1.0.0-beta.71
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 +602 -10
- package/README.md +475 -312
- package/dist/StreamingAudioPlayer-D8Q8WiEg.js +638 -0
- package/dist/animation/AnimationWebSocketClient.d.ts +6 -50
- package/dist/animation/utils/eventEmitter.d.ts +1 -9
- package/dist/animation/utils/flameConverter.d.ts +3 -24
- package/dist/audio/AnimationPlayer.d.ts +6 -57
- package/dist/audio/StreamingAudioPlayer.d.ts +2 -118
- package/dist/avatar_core_wasm-Dv943JJl.js +2696 -0
- package/dist/{avatar_core_wasm.wasm → avatar_core_wasm-e68766db.wasm} +0 -0
- package/dist/config/app-config.d.ts +3 -4
- package/dist/config/constants.d.ts +10 -18
- package/dist/config/sdk-config-loader.d.ts +4 -10
- package/dist/core/Avatar.d.ts +2 -14
- package/dist/core/AvatarController.d.ts +95 -85
- package/dist/core/AvatarDownloader.d.ts +7 -92
- package/dist/core/AvatarManager.d.ts +22 -12
- package/dist/core/AvatarSDK.d.ts +35 -0
- package/dist/core/AvatarView.d.ts +55 -140
- package/dist/core/NetworkLayer.d.ts +7 -59
- package/dist/generated/common/v1/models.d.ts +36 -0
- package/dist/generated/driveningress/v1/driveningress.d.ts +0 -1
- package/dist/generated/driveningress/v2/driveningress.d.ts +82 -1
- package/dist/generated/google/protobuf/struct.d.ts +0 -1
- package/dist/generated/google/protobuf/timestamp.d.ts +0 -1
- package/dist/index-U8QcNdma.js +16477 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.js +17 -18
- package/dist/renderer/RenderSystem.d.ts +9 -79
- package/dist/renderer/covariance.d.ts +3 -11
- package/dist/renderer/renderer.d.ts +6 -2
- package/dist/renderer/sortSplats.d.ts +3 -10
- package/dist/renderer/webgl/reorderData.d.ts +4 -11
- package/dist/renderer/webgl/webglRenderer.d.ts +34 -4
- package/dist/renderer/webgpu/webgpuRenderer.d.ts +30 -5
- package/dist/types/character-settings.d.ts +1 -1
- package/dist/types/character.d.ts +3 -15
- package/dist/types/index.d.ts +123 -43
- package/dist/utils/animation-interpolation.d.ts +4 -15
- package/dist/utils/client-id.d.ts +6 -0
- package/dist/utils/conversationId.d.ts +10 -0
- package/dist/utils/error-utils.d.ts +0 -1
- package/dist/utils/id-manager.d.ts +34 -0
- package/dist/utils/logger.d.ts +2 -11
- package/dist/utils/posthog-tracker.d.ts +8 -0
- package/dist/utils/pwa-cache-manager.d.ts +17 -0
- package/dist/utils/usage-tracker.d.ts +6 -0
- package/dist/vanilla/vite.config.d.ts +2 -0
- package/dist/vite.d.ts +19 -0
- package/dist/wasm/avatarCoreAdapter.d.ts +15 -126
- package/dist/wasm/avatarCoreMemory.d.ts +5 -2
- package/package.json +19 -8
- package/vite.d.ts +20 -0
- package/vite.js +126 -0
- package/dist/StreamingAudioPlayer-D7s8q5h0.js +0 -319
- package/dist/StreamingAudioPlayer-D7s8q5h0.js.map +0 -1
- package/dist/animation/AnimationWebSocketClient.d.ts.map +0 -1
- package/dist/animation/utils/eventEmitter.d.ts.map +0 -1
- package/dist/animation/utils/flameConverter.d.ts.map +0 -1
- package/dist/audio/AnimationPlayer.d.ts.map +0 -1
- package/dist/audio/StreamingAudioPlayer.d.ts.map +0 -1
- package/dist/avatar_core_wasm-D4eEi7Eh.js +0 -1666
- package/dist/avatar_core_wasm-D4eEi7Eh.js.map +0 -1
- package/dist/config/app-config.d.ts.map +0 -1
- package/dist/config/constants.d.ts.map +0 -1
- package/dist/config/sdk-config-loader.d.ts.map +0 -1
- package/dist/core/Avatar.d.ts.map +0 -1
- package/dist/core/AvatarController.d.ts.map +0 -1
- package/dist/core/AvatarDownloader.d.ts.map +0 -1
- package/dist/core/AvatarKit.d.ts +0 -66
- package/dist/core/AvatarKit.d.ts.map +0 -1
- package/dist/core/AvatarManager.d.ts.map +0 -1
- package/dist/core/AvatarView.d.ts.map +0 -1
- package/dist/core/NetworkLayer.d.ts.map +0 -1
- package/dist/generated/driveningress/v1/driveningress.d.ts.map +0 -1
- package/dist/generated/driveningress/v2/driveningress.d.ts.map +0 -1
- package/dist/generated/google/protobuf/struct.d.ts.map +0 -1
- package/dist/generated/google/protobuf/timestamp.d.ts.map +0 -1
- package/dist/index-CpSvWi6A.js +0 -6026
- package/dist/index-CpSvWi6A.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/renderer/RenderSystem.d.ts.map +0 -1
- package/dist/renderer/covariance.d.ts.map +0 -1
- package/dist/renderer/renderer.d.ts.map +0 -1
- package/dist/renderer/sortSplats.d.ts.map +0 -1
- package/dist/renderer/webgl/reorderData.d.ts.map +0 -1
- package/dist/renderer/webgl/webglRenderer.d.ts.map +0 -1
- package/dist/renderer/webgpu/webgpuRenderer.d.ts.map +0 -1
- package/dist/types/character-settings.d.ts.map +0 -1
- package/dist/types/character.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/animation-interpolation.d.ts.map +0 -1
- package/dist/utils/cls-tracker.d.ts +0 -17
- package/dist/utils/cls-tracker.d.ts.map +0 -1
- package/dist/utils/error-utils.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/reqId.d.ts +0 -20
- package/dist/utils/reqId.d.ts.map +0 -1
- package/dist/wasm/avatarCoreAdapter.d.ts.map +0 -1
- package/dist/wasm/avatarCoreMemory.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* AvatarKit SDK - Unified Public API
|
|
3
3
|
*/
|
|
4
|
-
export { APP_CONFIG } from './config/app-config';
|
|
5
4
|
export { Avatar } from './core/Avatar';
|
|
6
5
|
export { AvatarController } from './core/AvatarController';
|
|
7
|
-
export {
|
|
6
|
+
export { AvatarSDK } from './core/AvatarSDK';
|
|
8
7
|
export { AvatarManager } from './core/AvatarManager';
|
|
9
8
|
export { AvatarView } from './core/AvatarView';
|
|
10
9
|
export * from './types';
|
|
11
10
|
export type { CharacterInfo, FlameInfo } from './wasm/avatarCoreAdapter';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b, c, m, f, d, j, g, C, i, D, E, k, h, L, R, n } from "./index-U8QcNdma.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
b as Avatar,
|
|
4
|
+
c as AvatarController,
|
|
5
|
+
m as AvatarError,
|
|
6
|
+
f as AvatarManager,
|
|
7
|
+
d as AvatarSDK,
|
|
8
|
+
j as AvatarState,
|
|
9
|
+
g as AvatarView,
|
|
10
|
+
C as ConnectionState,
|
|
11
|
+
i as ConversationState,
|
|
12
|
+
D as DrivingServiceMode,
|
|
13
|
+
E as Environment,
|
|
14
|
+
k as ErrorCode,
|
|
15
|
+
h as LoadProgress,
|
|
16
|
+
L as LogLevel,
|
|
17
|
+
R as ResourceType,
|
|
18
|
+
n as extractResourceUrls
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,79 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
private renderer;
|
|
11
|
-
private backend;
|
|
12
|
-
private canvas;
|
|
13
|
-
private options;
|
|
14
|
-
private camera;
|
|
15
|
-
private viewMatrix;
|
|
16
|
-
private projectionMatrix;
|
|
17
|
-
private originalPackedData;
|
|
18
|
-
renderTime: number;
|
|
19
|
-
sortTime: number;
|
|
20
|
-
constructor(options: RenderSystemOptions);
|
|
21
|
-
/**
|
|
22
|
-
* 初始化渲染系统
|
|
23
|
-
*/
|
|
24
|
-
initialize(): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
* 加载已打包的 Splat 数据(零拷贝,GPU 格式)
|
|
27
|
-
* 直接接收 WASM 的 packed 数据
|
|
28
|
-
*
|
|
29
|
-
* @param packedData Float32Array [pos3, color4, cov6] x N 个点
|
|
30
|
-
*/
|
|
31
|
-
loadSplatsFromPackedData(packedData: Float32Array): void;
|
|
32
|
-
/**
|
|
33
|
-
* 渲染一帧
|
|
34
|
-
*/
|
|
35
|
-
renderFrame(): void;
|
|
36
|
-
/**
|
|
37
|
-
* 更新相机参数
|
|
38
|
-
*/
|
|
39
|
-
updateCamera(params: Partial<CameraConfig>): void;
|
|
40
|
-
/**
|
|
41
|
-
* 处理窗口大小变化
|
|
42
|
-
*/
|
|
43
|
-
handleResize(): void;
|
|
44
|
-
/**
|
|
45
|
-
* 获取当前使用的后端
|
|
46
|
-
*/
|
|
47
|
-
getBackend(): RenderBackend | null;
|
|
48
|
-
/**
|
|
49
|
-
* 清理资源
|
|
50
|
-
*/
|
|
51
|
-
dispose(): void;
|
|
52
|
-
/**
|
|
53
|
-
* 检查 WebGPU 支持
|
|
54
|
-
*/
|
|
55
|
-
private checkWebGPUSupport;
|
|
56
|
-
/**
|
|
57
|
-
* 更新相机长宽比
|
|
58
|
-
*/
|
|
59
|
-
private updateCameraAspect;
|
|
60
|
-
/**
|
|
61
|
-
* 更新相机矩阵
|
|
62
|
-
*/
|
|
63
|
-
private updateCameraMatrices;
|
|
64
|
-
/**
|
|
65
|
-
* 获取相机前向向量
|
|
66
|
-
*/
|
|
67
|
-
private getCameraForward;
|
|
68
|
-
/**
|
|
69
|
-
* 更新透视投影矩阵(复用缓冲区)
|
|
70
|
-
*/
|
|
71
|
-
private updatePerspectiveMatrix;
|
|
72
|
-
/**
|
|
73
|
-
* 更新视图矩阵(直接更新预分配的缓冲区,避免每帧分配)
|
|
74
|
-
* 等价于:inverse(translation) * inverse(rotation) = T^(-1) * R^(-1)
|
|
75
|
-
* 其中 T 是平移矩阵,R 是旋转矩阵
|
|
76
|
-
*/
|
|
77
|
-
private updateViewMatrix;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=RenderSystem.d.ts.map
|
|
1
|
+
/**
|
|
2
|
+
* Render System - Unified WebGL/WebGPU rendering management
|
|
3
|
+
*
|
|
4
|
+
* Responsibilities:
|
|
5
|
+
* 1. Automatically select rendering backend (WebGPU preferred, fallback to WebGL)
|
|
6
|
+
* 2. Camera management
|
|
7
|
+
* 3. Matrix calculations
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 3D
|
|
3
|
-
*
|
|
2
|
+
* 3D Covariance Matrix Calculation Utility
|
|
3
|
+
* Used to calculate Gaussian Splat covariance matrix from scale and rotation parameters
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
* 计算 3D 协方差矩阵
|
|
7
|
-
*
|
|
8
|
-
* @param scale - 缩放向量 [sx, sy, sz]
|
|
9
|
-
* @param rotation - 四元数旋转 [qx, qy, qz, qw]
|
|
10
|
-
* @returns 3x3 协方差矩阵
|
|
11
|
-
*/
|
|
12
|
-
export declare function computeCovariance3D(scale: number[], rotation: number[]): number[][];
|
|
13
|
-
//# sourceMappingURL=covariance.d.ts.map
|
|
5
|
+
export {};
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
export interface Transform {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
scale: number;
|
|
5
|
+
}
|
|
1
6
|
export interface I3DGSRenderer {
|
|
2
7
|
initialize: () => Promise<void>;
|
|
3
8
|
loadSplatsFromPackedData: (packedData: Float32Array, pointCount: number, sortOrder?: Uint32Array) => void;
|
|
4
|
-
render: (viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number]) => void;
|
|
9
|
+
render: (viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number], transform?: Transform) => void;
|
|
5
10
|
dispose: () => void;
|
|
6
11
|
}
|
|
7
12
|
export type RenderBackend = 'webgl' | 'webgpu';
|
|
8
|
-
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Splat
|
|
3
|
-
*
|
|
2
|
+
* Splat depth sorting (Radix Sort optimized version)
|
|
3
|
+
* Uses 11-bit radix sort, O(n) time complexity
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
* 对 splats 进行深度排序(Radix Sort)
|
|
7
|
-
* @param packedData Packed 格式数据 [pos3, color4, cov6] x N
|
|
8
|
-
* @param cameraPosition 相机位置
|
|
9
|
-
* @param cameraForward 相机前向向量
|
|
10
|
-
*/
|
|
11
|
-
export declare function sortSplats(packedData: Float32Array, cameraPosition: [number, number, number], cameraForward: [number, number, number]): Uint32Array;
|
|
12
|
-
//# sourceMappingURL=sortSplats.d.ts.map
|
|
5
|
+
export {};
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Packed Data
|
|
2
|
+
* Packed Data utility functions
|
|
3
3
|
*
|
|
4
|
-
* Packed
|
|
5
|
-
*
|
|
4
|
+
* Packed format: [pos3, color4, cov6] x N points
|
|
5
|
+
* Each point has 13 floats, 52 bytes total
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
* 重新排序 packed 数据(复用缓冲区)
|
|
9
|
-
* @param packedData 原始数据 [pos3, color4, cov6] x N
|
|
10
|
-
* @param sortOrder 排序索引数组
|
|
11
|
-
* @returns 重排序后的数据(复用的缓冲区引用)
|
|
12
|
-
*/
|
|
13
|
-
export declare function reorderPackedData(packedData: Float32Array, sortOrder: Uint32Array): Float32Array;
|
|
14
|
-
//# sourceMappingURL=reorderData.d.ts.map
|
|
7
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I3DGSRenderer } from '../renderer';
|
|
1
|
+
import { I3DGSRenderer, Transform } from '../renderer';
|
|
2
2
|
export declare class WebGLRenderer implements I3DGSRenderer {
|
|
3
3
|
private canvas;
|
|
4
4
|
private backgroundColor;
|
|
@@ -12,7 +12,18 @@ export declare class WebGLRenderer implements I3DGSRenderer {
|
|
|
12
12
|
private splatCount;
|
|
13
13
|
private isInitialized;
|
|
14
14
|
private splatBufferSize;
|
|
15
|
-
|
|
15
|
+
private framebuffer;
|
|
16
|
+
private renderTexture;
|
|
17
|
+
private depthBuffer;
|
|
18
|
+
private framebufferWidth;
|
|
19
|
+
private framebufferHeight;
|
|
20
|
+
private blitShaderProgram;
|
|
21
|
+
private blitUniformLocations;
|
|
22
|
+
private blitAttributeLocations;
|
|
23
|
+
private blitQuadBuffer;
|
|
24
|
+
private blitVAO;
|
|
25
|
+
constructor(canvas: HTMLCanvasElement, backgroundColor?: [number, number, number, number], alpha?: boolean);
|
|
26
|
+
private alpha;
|
|
16
27
|
/**
|
|
17
28
|
* 初始化 WebGL 渲染器
|
|
18
29
|
*/
|
|
@@ -53,14 +64,33 @@ export declare class WebGLRenderer implements I3DGSRenderer {
|
|
|
53
64
|
/**
|
|
54
65
|
* 渲染一帧
|
|
55
66
|
*/
|
|
56
|
-
render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number]): void;
|
|
67
|
+
render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number], transform?: Transform): void;
|
|
57
68
|
/**
|
|
58
69
|
* 创建着色器程序
|
|
59
70
|
*/
|
|
60
71
|
private createShaderProgram;
|
|
72
|
+
/**
|
|
73
|
+
* 更新背景颜色
|
|
74
|
+
*/
|
|
75
|
+
updateBackgroundColor(backgroundColor: [number, number, number, number]): void;
|
|
76
|
+
/**
|
|
77
|
+
* 渲染 3DGS 场景(公共方法,用于直接渲染和渲染到 framebuffer)
|
|
78
|
+
*/
|
|
79
|
+
private render3DGS;
|
|
80
|
+
/**
|
|
81
|
+
* 创建 framebuffer 和 render texture
|
|
82
|
+
*/
|
|
83
|
+
private createFramebuffer;
|
|
84
|
+
/**
|
|
85
|
+
* 创建 blit shader(用于绘制 render texture 到屏幕)
|
|
86
|
+
*/
|
|
87
|
+
private createBlitShader;
|
|
88
|
+
/**
|
|
89
|
+
* 将 render texture 绘制到屏幕(应用 transform)
|
|
90
|
+
*/
|
|
91
|
+
private blitToScreen;
|
|
61
92
|
/**
|
|
62
93
|
* 清理资源
|
|
63
94
|
*/
|
|
64
95
|
dispose(): void;
|
|
65
96
|
}
|
|
66
|
-
//# sourceMappingURL=webglRenderer.d.ts.map
|
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
import { I3DGSRenderer } from '../renderer';
|
|
1
|
+
import { I3DGSRenderer, Transform } from '../renderer';
|
|
2
2
|
export declare class WebGPURenderer implements I3DGSRenderer {
|
|
3
3
|
private canvas;
|
|
4
4
|
private backgroundColor;
|
|
5
5
|
private device;
|
|
6
6
|
private context;
|
|
7
7
|
private renderPipeline;
|
|
8
|
+
private renderTexturePipeline;
|
|
8
9
|
private quadVertexBuffer;
|
|
9
10
|
private uniformBuffer;
|
|
10
11
|
private uniformBindGroup;
|
|
11
12
|
private sortIndexBuffer;
|
|
12
13
|
private splatDataBuffer;
|
|
13
14
|
private storageBindGroup;
|
|
14
|
-
private lastSortOrder;
|
|
15
15
|
private bindGroupNeedsUpdate;
|
|
16
16
|
private splatCount;
|
|
17
17
|
private presentationFormat;
|
|
18
|
-
|
|
18
|
+
private alpha;
|
|
19
|
+
private renderTexture;
|
|
20
|
+
private renderTextureView;
|
|
21
|
+
private depthTexture;
|
|
22
|
+
private framebufferWidth;
|
|
23
|
+
private framebufferHeight;
|
|
24
|
+
private blitPipeline;
|
|
25
|
+
private blitUniformBuffer;
|
|
26
|
+
private blitQuadBuffer;
|
|
27
|
+
private blitSampler;
|
|
28
|
+
constructor(canvas: HTMLCanvasElement, backgroundColor?: [number, number, number, number], alpha?: boolean);
|
|
19
29
|
/**
|
|
20
30
|
* 初始化 WebGPU 渲染器
|
|
21
31
|
*/
|
|
@@ -32,6 +42,14 @@ export declare class WebGPURenderer implements I3DGSRenderer {
|
|
|
32
42
|
* 创建 Render Pipeline
|
|
33
43
|
*/
|
|
34
44
|
private createRenderPipeline;
|
|
45
|
+
/**
|
|
46
|
+
* 创建 Blit Pipeline(用于绘制 render texture 到屏幕)
|
|
47
|
+
*/
|
|
48
|
+
private createBlitPipeline;
|
|
49
|
+
/**
|
|
50
|
+
* 创建 render texture 和 depth texture
|
|
51
|
+
*/
|
|
52
|
+
private createRenderTexture;
|
|
35
53
|
/**
|
|
36
54
|
* 从已打包数据加载
|
|
37
55
|
* 🚀 间接索引渲染:packedData 是原始数据,sortOrder 是排序索引
|
|
@@ -41,14 +59,21 @@ export declare class WebGPURenderer implements I3DGSRenderer {
|
|
|
41
59
|
/**
|
|
42
60
|
* 渲染一帧
|
|
43
61
|
*/
|
|
44
|
-
render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number]): void;
|
|
62
|
+
render(viewMatrix: Float32Array, projectionMatrix: Float32Array, screenSize: [number, number], transform?: Transform): void;
|
|
63
|
+
/**
|
|
64
|
+
* 将 render texture 绘制到屏幕(应用 transform)
|
|
65
|
+
*/
|
|
66
|
+
private blitToScreen;
|
|
45
67
|
/**
|
|
46
68
|
* 更新 Uniform Buffer
|
|
47
69
|
*/
|
|
48
70
|
private updateUniforms;
|
|
71
|
+
/**
|
|
72
|
+
* 更新背景颜色
|
|
73
|
+
*/
|
|
74
|
+
updateBackgroundColor(backgroundColor: [number, number, number, number]): void;
|
|
49
75
|
/**
|
|
50
76
|
* 清理资源
|
|
51
77
|
*/
|
|
52
78
|
dispose(): void;
|
|
53
79
|
}
|
|
54
|
-
//# sourceMappingURL=webgpuRenderer.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CharacterAsset } from '../generated/driveningress/v2/driveningress';
|
|
2
2
|
import { CameraSettings, CharacterSettings } from './character-settings';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Character metadata
|
|
5
5
|
*/
|
|
6
6
|
export type CharacterMeta = CharacterAsset & {
|
|
7
7
|
characterSettings?: CharacterSettings;
|
|
@@ -13,27 +13,15 @@ export type PreloadCameraSettings = PreloadResources<{
|
|
|
13
13
|
camera: CameraSettings;
|
|
14
14
|
}>;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Resource type enumeration
|
|
17
17
|
*/
|
|
18
18
|
export declare enum ResourceType {
|
|
19
19
|
CAMERA = "camera",
|
|
20
20
|
ANIMATION_IDLE = "frameIdle",
|
|
21
|
-
ANIMATION_MONO = "frameMono",
|
|
22
|
-
AUDIO_MONO = "audioMono",
|
|
23
21
|
MODEL_SHAPE = "shape",
|
|
24
22
|
MODEL_GS = "gsStandard"
|
|
25
23
|
}
|
|
26
24
|
/**
|
|
27
|
-
*
|
|
25
|
+
* Extract all resource URLs
|
|
28
26
|
*/
|
|
29
27
|
export declare function extractResourceUrls(meta: CharacterMeta): Record<ResourceType, string | null>;
|
|
30
|
-
/**
|
|
31
|
-
* 检查角色是否有完整的独白资源
|
|
32
|
-
*/
|
|
33
|
-
export declare function hasMonologue(meta: CharacterMeta): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* 从 RealtimeCharacter 的 modelInfo JSON 中解析是否有独白
|
|
36
|
-
* modelInfo 是一个 JSON 字符串,包含角色的模型信息
|
|
37
|
-
*/
|
|
38
|
-
export declare function hasMonologueFromModelInfo(modelInfo: string): boolean;
|
|
39
|
-
//# sourceMappingURL=character.d.ts.map
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,20 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Unified public types & interfaces
|
|
3
3
|
*/
|
|
4
4
|
export declare enum Environment {
|
|
5
5
|
cn = "cn",
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
intl = "intl"
|
|
7
|
+
}
|
|
8
|
+
export declare enum DrivingServiceMode {
|
|
9
|
+
/** Driven by SDK directly */
|
|
10
|
+
sdk = "sdk",
|
|
11
|
+
/** Driven by host application */
|
|
12
|
+
host = "host"
|
|
13
|
+
}
|
|
14
|
+
export declare enum LogLevel {
|
|
15
|
+
/** Disable all logs */
|
|
16
|
+
off = "off",
|
|
17
|
+
/** Error logs only */
|
|
18
|
+
error = "error",
|
|
19
|
+
/** Warning and error logs */
|
|
20
|
+
warning = "warning",
|
|
21
|
+
/** All logs (info, warning, error), default value */
|
|
22
|
+
all = "all"
|
|
23
|
+
}
|
|
24
|
+
export interface AudioFormat {
|
|
25
|
+
/** Channel count, fixed to 1 (mono) */
|
|
26
|
+
readonly channelCount: 1;
|
|
27
|
+
/** Sample rate, supported: 8000, 16000, 22050, 24000, 32000, 44100, 48000, default: 16000 */
|
|
28
|
+
readonly sampleRate: number;
|
|
8
29
|
}
|
|
9
30
|
export interface Configuration {
|
|
10
31
|
readonly environment: Environment;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
32
|
+
/** Driving service mode, default is sdk */
|
|
33
|
+
readonly drivingServiceMode?: DrivingServiceMode;
|
|
34
|
+
/** Log level, default is off */
|
|
35
|
+
readonly logLevel?: LogLevel;
|
|
36
|
+
/** Audio format configuration, default is { channelCount: 1, sampleRate: 16000 } */
|
|
37
|
+
readonly audioFormat?: AudioFormat;
|
|
38
|
+
/** Custom character data API base URL (optional, if provided will be used preferentially, otherwise use environment-configured sdkApiBaseUrl) */
|
|
39
|
+
readonly characterApiBaseUrl?: string;
|
|
18
40
|
}
|
|
19
41
|
export declare enum LoadProgress {
|
|
20
42
|
downloading = "downloading",
|
|
@@ -32,22 +54,31 @@ export declare enum ConnectionState {
|
|
|
32
54
|
connected = "connected",
|
|
33
55
|
failed = "failed"
|
|
34
56
|
}
|
|
35
|
-
export declare enum
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
57
|
+
export declare enum ConversationState {
|
|
58
|
+
/** Idle state (breathing animation) */
|
|
59
|
+
idle = "idle",
|
|
60
|
+
/** Playing state */
|
|
61
|
+
playing = "playing",
|
|
62
|
+
/** Pausing state */
|
|
63
|
+
pausing = "pausing"
|
|
39
64
|
}
|
|
40
|
-
export declare
|
|
41
|
-
|
|
42
|
-
|
|
65
|
+
export declare enum ErrorCode {
|
|
66
|
+
/** AppID not recognized (reserved, future appID validation logic) */
|
|
67
|
+
appIDUnrecognized = "appIDUnrecognized",
|
|
68
|
+
/** AvatarID not recognized */
|
|
69
|
+
avatarIDUnrecognized = "avatarIDUnrecognized",
|
|
70
|
+
/** Session Token invalid */
|
|
71
|
+
sessionTokenInvalid = "sessionTokenInvalid",
|
|
72
|
+
/** Session Token expired */
|
|
73
|
+
sessionTokenExpired = "sessionTokenExpired",
|
|
74
|
+
/** Failed to fetch avatar metadata */
|
|
75
|
+
failedToFetchAvatarMetadata = "failedToFetchAvatarMetadata",
|
|
76
|
+
/** Failed to download avatar assets */
|
|
77
|
+
failedToDownloadAvatarAssets = "failedToDownloadAvatarAssets"
|
|
43
78
|
}
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
rotations: Float32Array;
|
|
48
|
-
colors: Float32Array;
|
|
49
|
-
opacities: Float32Array;
|
|
50
|
-
pointCount: number;
|
|
79
|
+
export declare class AvatarError extends Error {
|
|
80
|
+
code?: (string | ErrorCode) | undefined;
|
|
81
|
+
constructor(message: string, code?: (string | ErrorCode) | undefined);
|
|
51
82
|
}
|
|
52
83
|
export interface CameraConfig {
|
|
53
84
|
position: [number, number, number];
|
|
@@ -58,29 +89,78 @@ export interface CameraConfig {
|
|
|
58
89
|
up?: [number, number, number];
|
|
59
90
|
aspect?: number;
|
|
60
91
|
}
|
|
61
|
-
export interface RenderPerformanceStats {
|
|
62
|
-
renderTime: number;
|
|
63
|
-
sortTime: number;
|
|
64
|
-
backend: 'webgpu' | 'webgl' | null;
|
|
65
|
-
pointCount?: number;
|
|
66
|
-
}
|
|
67
92
|
/**
|
|
68
|
-
*
|
|
93
|
+
* Animation keyframe data
|
|
94
|
+
* Used to represent avatar pose and expression parameters
|
|
69
95
|
*/
|
|
70
|
-
export
|
|
71
|
-
/**
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
|
|
96
|
+
export interface KeyframeData {
|
|
97
|
+
/** Translation [x, y, z] */
|
|
98
|
+
translation: number[];
|
|
99
|
+
/** Rotation [x, y, z] (Euler angles, in radians) */
|
|
100
|
+
rotation: number[];
|
|
101
|
+
/** Neck pose [x, y, z] (in radians) */
|
|
102
|
+
neckPose: number[];
|
|
103
|
+
/** Jaw pose [x, y, z] (in radians) */
|
|
104
|
+
jawPose: number[];
|
|
105
|
+
/** Eye pose [x, y, z, x, y, z] (3 parameters for each eye) */
|
|
106
|
+
eyePose: number[];
|
|
107
|
+
/** Eyelid [x, y] */
|
|
108
|
+
eyeLid: number[];
|
|
109
|
+
/** Expression parameters array */
|
|
110
|
+
expression: number[];
|
|
75
111
|
}
|
|
76
112
|
/**
|
|
77
|
-
*
|
|
113
|
+
* Post-processing parameter configuration
|
|
114
|
+
* Used to overlay in real-time on animation parameters returned by the server
|
|
78
115
|
*/
|
|
79
|
-
export interface
|
|
80
|
-
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
116
|
+
export interface PostProcessingConfig {
|
|
117
|
+
/** Rotation (Euler angles, in radians) */
|
|
118
|
+
rotation?: {
|
|
119
|
+
x?: number;
|
|
120
|
+
y?: number;
|
|
121
|
+
z?: number;
|
|
122
|
+
};
|
|
123
|
+
/** Translation (position offset) */
|
|
124
|
+
translation?: {
|
|
125
|
+
x?: number;
|
|
126
|
+
y?: number;
|
|
127
|
+
z?: number;
|
|
128
|
+
};
|
|
129
|
+
/** Neck pose offset (in radians) */
|
|
130
|
+
neckPose?: {
|
|
131
|
+
x?: number;
|
|
132
|
+
y?: number;
|
|
133
|
+
z?: number;
|
|
134
|
+
weightX?: number;
|
|
135
|
+
weightY?: number;
|
|
136
|
+
weightZ?: number;
|
|
137
|
+
};
|
|
138
|
+
/** Jaw pose offset (in radians) */
|
|
139
|
+
jawPose?: {
|
|
140
|
+
x?: number;
|
|
141
|
+
y?: number;
|
|
142
|
+
z?: number;
|
|
143
|
+
weight?: number;
|
|
144
|
+
};
|
|
145
|
+
/** Eye pose offset (in radians) */
|
|
146
|
+
eyePose?: {
|
|
147
|
+
x?: number;
|
|
148
|
+
y?: number;
|
|
149
|
+
z?: number;
|
|
150
|
+
weightX?: number;
|
|
151
|
+
weightY?: number;
|
|
152
|
+
weightZ?: number;
|
|
153
|
+
};
|
|
154
|
+
/** Eye blink value (-1.0 to 1.0, larger value means more closed) */
|
|
155
|
+
eyeBlink?: number;
|
|
156
|
+
/** Expression weight (0.0-2.0, 0=no expression, 1=normal, >1=enhanced) */
|
|
157
|
+
expressionWeight?: number;
|
|
158
|
+
/** Eye tracking complete configuration (real-time control of eye_focus, must provide complete configuration) */
|
|
159
|
+
eyefocus?: {
|
|
160
|
+
enabled: boolean;
|
|
161
|
+
auto_eyelid_adjustment?: boolean;
|
|
162
|
+
eyelid_threshold?: number;
|
|
163
|
+
targets?: number[];
|
|
164
|
+
};
|
|
84
165
|
}
|
|
85
166
|
export * from './character';
|
|
86
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
import { Flame } from '../generated/driveningress/v1/driveningress';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Animation Interpolation Utilities (SDK)
|
|
3
|
+
* Layered interpolation with different timing for each facial component
|
|
4
|
+
* Aligned with app implementation and iOS behavior
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
7
|
-
/**
|
|
8
|
-
* Generate transition keyframes between two Flame states
|
|
9
|
-
* @param durationMs Transition duration (e.g. 400ms)
|
|
10
|
-
* @param fps Frames per second (default 25)
|
|
11
|
-
*/
|
|
12
|
-
export declare function generateTransitionFrames(from: Flame, to: Flame, durationMs: number, fps?: number): Flame[];
|
|
13
|
-
/**
|
|
14
|
-
* Create a neutral Flame
|
|
15
|
-
*/
|
|
16
|
-
export declare function createNeutralFlame(): Flame;
|
|
17
|
-
//# sourceMappingURL=animation-interpolation.d.ts.map
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation ID generation utility
|
|
3
|
+
*
|
|
4
|
+
* Unified format: timestamp (UTC time, second-level, format: YYYYMMDDHHmmss) + underscore + 12-digit NanoID
|
|
5
|
+
* Example: 20251027143034_aB3dEf9hIjKl
|
|
6
|
+
*
|
|
7
|
+
* Time part uses UTC time for easier cross-platform log troubleshooting with unified timezone conversion
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export {};
|