/** * HumanoidSkeleton.ts * * 65-bone humanoid skeleton template compatible with VRM, Mixamo, * Ready Player Me, Apple ARKit, and Unreal MetaHuman. * * Hierarchy: * root → hips → spine chain → neck/head (+ FACS bones) * → shoulder → arm → forearm → hand (+ 15 finger bones) * → upper_leg → lower_leg → foot → toes * * @see W.244: Seven-stage pipeline enables single-source multi-platform deploy * @see P.CHAR.004: Multi-Platform Export * @module character */ export interface BoneDefinition { name: string; parent: string | null; /** Local-space position relative to parent */ position: [number, number, number]; /** Bone length in meters */ length: number; /** Rotation limits in degrees [minX, maxX, minY, maxY, minZ, maxZ] */ rotationLimits?: [number, number, number, number, number, number]; } export declare const HUMANOID_BONE_NAMES: readonly ["root", "hips", "spine", "spine1", "spine2", "neck", "head", "left_shoulder", "left_upper_arm", "left_forearm", "left_hand", "left_thumb_proximal", "left_thumb_intermediate", "left_thumb_distal", "left_index_proximal", "left_index_intermediate", "left_index_distal", "left_middle_proximal", "left_middle_intermediate", "left_middle_distal", "left_ring_proximal", "left_ring_intermediate", "left_ring_distal", "left_pinky_proximal", "left_pinky_intermediate", "left_pinky_distal", "right_shoulder", "right_upper_arm", "right_forearm", "right_hand", "right_thumb_proximal", "right_thumb_intermediate", "right_thumb_distal", "right_index_proximal", "right_index_intermediate", "right_index_distal", "right_middle_proximal", "right_middle_intermediate", "right_middle_distal", "right_ring_proximal", "right_ring_intermediate", "right_ring_distal", "right_pinky_proximal", "right_pinky_intermediate", "right_pinky_distal", "left_upper_leg", "left_lower_leg", "left_foot", "left_toes", "left_toe_end", "right_upper_leg", "right_lower_leg", "right_foot", "right_toes", "right_toe_end"]; export type HumanoidBoneName = (typeof HUMANOID_BONE_NAMES)[number]; /** Average adult male proportions (1.75m height). */ export declare const HUMANOID_65_SKELETON: BoneDefinition[]; /** Maps HumanoidBoneName → Mixamo bone name for animation retargeting. */ export declare const MIXAMO_BONE_MAP: Partial>; /** Maps HumanoidBoneName → VRM 1.0 humanBones key. */ export declare const VRM_BONE_MAP: Partial>; /** Maps HumanoidBoneName → standard URDF joint name for humanoid robots. */ export declare const URDF_BONE_MAP: Partial>; /** * Get all children of a bone in the skeleton hierarchy. */ export declare function getBoneChildren(boneName: string, skeleton?: BoneDefinition[]): BoneDefinition[]; /** * Get the chain of bones from root to target bone. */ export declare function getBoneChain(boneName: string, skeleton?: BoneDefinition[]): BoneDefinition[]; /** * Validate that a skeleton definition has no orphaned bones. */ export declare function validateSkeleton(skeleton: BoneDefinition[]): { valid: boolean; errors: string[]; }; //# sourceMappingURL=HumanoidSkeleton.d.ts.map