UNPKG

sandai-react

Version:

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

52 lines 2.22 kB
import { VRM, VRMHumanBoneName, VRMPose } from "@davidcks/r3f-vrm"; type PartialPosePositoins = Partial<Record<VRMHumanBoneName, { position: [number, number, number]; }>>; export declare class PoseConversionProfileManager { private _leftArmPoseProfileManager; private _bodyPoseProfileManager; private _managerPrefixRecords; private _basePosesPrefixRecords; private _mode; private _vrm; private _poseConversionManager; private _poseConverterPrefixRecords; constructor(vrm: VRM, mode?: "default" | "normalized", opt?: { preset?: ""; }); private _getGlobalBonePositions; private _getNormalizedRelevantBonePositionsByBodyPart; autoCalibrate(onPose: (pose: VRMPose) => Promise<void> | void): Promise<void>; private _spreadPosePositions; private _getRelevantPosePositionsByBodyPart; private _getRelevantBlendShapesByPrefix; /** * Predict emotions from current blendshape values with better scoring */ predictPose(posePositions: PartialPosePositoins, slerp?: boolean): VRMPose; predictBodyPose(blendshapes: Map<string, number>, slerp?: boolean): { score: [name: string, value: number][]; slerpedScore: number; pose: VRMPose; }; predictLeftArmPose(blendshapes: Map<string, number>, slerp?: boolean): { score: [name: string, value: number][]; slerpedScore: number; pose: VRMPose; }; /** * * @param data - Array of pose preset keys and scores. The scores should go * from [0] - worst score, to [data.length - 1] - best score * @param basePoses - Pose presets corresponding with the keys of data */ private _slerpPoseData; private _resolvePoseKey; addSample(key: ReturnType<typeof this.getProfileKeys>[number], posePositions: PartialPosePositoins): void; trainProfiles(): Promise<void>; hasProfile(key: ReturnType<typeof this.getProfileKeys>[number]): boolean; getProfileKeys(): (`la__${string}` | `la__${number}` | `bo__${string}` | `bo__${number}`)[]; getVRMPoseForProfileKey(key: ReturnType<typeof this.getProfileKeys>[number]): VRMPose; } export {}; //# sourceMappingURL=PoseConversionProfileManager.d.ts.map