UNPKG

sandai-react

Version:

React components and utilities for the Sandai 3D AI Characters.

71 lines 2.26 kB
import { VRM } from "@pixiv/three-vrm"; export interface FaceExpression<T = any> { duration: number; angry?: number; happy?: number; neutral?: number; relaxed?: number; sad?: number; surprised?: number; metadata?: T; blinkLeft?: number; blinkRight?: number; blink?: number; lookX?: number; lookY?: number; } export declare class FaceExpressionManager { private _vrm; private _currentExpressionIndex; private _expressionsQueue; private _elapsedTime; private _isActive; private _vrmUrl; private _vrmHasBlink; private _autoBlinkManager; private _frameOverride; private _currentEmotionExpressionTargets; constructor(vrm: VRM, vrmUrl: string); get currentExpression(): { angry: number; happy: number; neutral: number; relaxed: number; sad: number; surprised: number; }; private _getExpression; private _lerpExpressions; applyExpressions(expressions: FaceExpression[], ease?: boolean): void; frameOverride(onFrame: (() => FaceExpression) | null): void; processExpressions(delta: number): void; normalizeExpression(expression: FaceExpression): { duration: number; angry?: number; happy?: number; neutral?: number; relaxed?: number; sad?: number; surprised?: number; metadata?: any; blinkLeft?: number; blinkRight?: number; blink?: number; lookX?: number; lookY?: number; }; private applyExpression; /** * * @param key: expression key * @param value: raw expression value * @param negationOffset: if a different expression influences the same vertices already, this should be provided * to negate that influence. For example, if "happy" closes the eyes, then "blink" should have a negative offset of 1. * That way, since happy already sets the underlying blendshape to have a weight of 1, if "blink" is 1, blink will be set to 0. * If "blink" is 0, then blink will be set to -1 to negate that effect. * @param ease */ private applySingleExpression; destroy(): void; } //# sourceMappingURL=FaceExpressionManager.d.ts.map