import { Matrix } from "@babylonjs/core/Maths/math.vector"; import type { Mesh } from "@babylonjs/core/Meshes/mesh"; import type { TransformNode } from "@babylonjs/core/Meshes/transformNode"; import type { IMmdModel } from "../IMmdModel"; import type { IMmdRuntime } from "../IMmdRuntime"; /** * Options for creating MMD model from humanoid */ export interface ICreateMmdModelFromHumanoidOptions { /** * Humanoid bone name to MMD bone name map (default: {}) * * Usually created by `MmdHumanoidMapper` * * Bones where the map is not defined will be ignored */ boneMap?: { [key: string]: string; }; /** * Humanoid morph name to MMD morph name map (default: {}) * * Morphs where the map is not defined will be mapped to the same name */ morphMap?: { [key: string]: string; }; /** * Transform offset for match skeleton space (default: Matrix.Identity()) */ transformOffset?: TransformNode | Matrix; } /** * Virtualizes the humanoid model as MMD model */ export declare class HumanoidMmd { private static readonly _StandardSkeletonMetaData; private _createMetadata; private _removeScaleFromOffsetMatrix; private _copyBonePosition; private _getAverageBonePosition; private _buildBoneProxyTree; /** * Force Create MMD model from humanoid mesh * @param mmdRuntime MMD runtime * @param humanoidMesh Humanoid model root mesh * @param meshes Meshes * @param options Options * @returns MMD model created from humanoid mesh */ createMmdModelFromHumanoid(mmdRuntime: IMmdRuntime, humanoidMesh: Mesh, meshes: readonly Mesh[], options?: ICreateMmdModelFromHumanoidOptions): T; }