@lovelace_lol/loom3 1.0.3 → 1.0.6
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/README.md +1 -1
- package/dist/index.cjs +241 -154
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +35 -33
- package/dist/index.d.ts +35 -33
- package/dist/index.js +241 -154
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.d.cts
CHANGED
|
@@ -374,14 +374,16 @@ interface BoneBinding {
|
|
|
374
374
|
/** Optional side hint for balance-aware AUs. */
|
|
375
375
|
side?: 'left' | 'right';
|
|
376
376
|
}
|
|
377
|
+
/** A single AU id or a grouped list of AU ids that share one semantic direction. */
|
|
378
|
+
type AUSelector = number | number[];
|
|
377
379
|
/**
|
|
378
380
|
* RotationAxis - Defines which AUs control a specific rotation axis
|
|
379
381
|
*/
|
|
380
382
|
interface RotationAxis {
|
|
381
383
|
aus: number[];
|
|
382
384
|
axis: 'rx' | 'ry' | 'rz';
|
|
383
|
-
negative?:
|
|
384
|
-
positive?:
|
|
385
|
+
negative?: AUSelector;
|
|
386
|
+
positive?: AUSelector;
|
|
385
387
|
}
|
|
386
388
|
/**
|
|
387
389
|
* CompositeRotation - Defines unified rotation axes for bones
|
|
@@ -658,8 +660,19 @@ interface Profile {
|
|
|
658
660
|
rightMorphSuffixes?: string[];
|
|
659
661
|
/** Morph category to mesh names (e.g., 'face' → ['CC_Base_Body_1']) */
|
|
660
662
|
morphToMesh: Record<string, string[]>;
|
|
663
|
+
/**
|
|
664
|
+
* Optional map from AU `facePart` labels (from `auInfo`) to `morphToMesh` categories.
|
|
665
|
+
* This makes AU mesh routing fully preset/profile configurable.
|
|
666
|
+
* Example: { Eye: 'eye', Eyes: 'eye', Eyelids: 'eye', Tongue: 'tongue' }.
|
|
667
|
+
*/
|
|
668
|
+
auFacePartToMeshCategory?: Record<string, string>;
|
|
661
669
|
/** Viseme targets in order (typically 15 phoneme positions) */
|
|
662
670
|
visemeKeys: MorphTargetRef[];
|
|
671
|
+
/**
|
|
672
|
+
* Optional `morphToMesh` category to use for viseme morph routing.
|
|
673
|
+
* Falls back to `morphToMesh.viseme` (if present), then `morphToMesh.face`.
|
|
674
|
+
*/
|
|
675
|
+
visemeMeshCategory?: string;
|
|
663
676
|
/** Optional: Jaw opening amounts per viseme index (0-1). Used for auto-generating jaw rotation in clips. */
|
|
664
677
|
visemeJawAmounts?: number[];
|
|
665
678
|
/** Optional: Default mix weights for bone/morph blending (0 = morph only, 1 = bone only) */
|
|
@@ -1516,9 +1529,10 @@ declare class Loom3 implements LoomLarge {
|
|
|
1516
1529
|
getProfile(): Profile;
|
|
1517
1530
|
/**
|
|
1518
1531
|
* Get the mesh names that should receive morph influences for a given AU.
|
|
1519
|
-
*
|
|
1532
|
+
* Routing is driven by `auFacePartToMeshCategory` in profile config.
|
|
1520
1533
|
*/
|
|
1521
1534
|
getMeshNamesForAU(auId: number): string[];
|
|
1535
|
+
getMeshNamesForViseme(): string[];
|
|
1522
1536
|
registerHairObjects(objects: Object3D[]): Array<{
|
|
1523
1537
|
name: string;
|
|
1524
1538
|
isMesh: boolean;
|
|
@@ -1571,6 +1585,9 @@ declare class Loom3 implements LoomLarge {
|
|
|
1571
1585
|
private getMorphKeyCacheKey;
|
|
1572
1586
|
private getMorphIndexCacheKey;
|
|
1573
1587
|
private isMixedAU;
|
|
1588
|
+
private getEffectiveBoneAUValue;
|
|
1589
|
+
private getCompositeAxisValueForNode;
|
|
1590
|
+
private getCompositeAxisBindingForNode;
|
|
1574
1591
|
private initBoneRotations;
|
|
1575
1592
|
/** Update rotation state - just stores -1 to 1 value like stable version */
|
|
1576
1593
|
private updateBoneRotation;
|
|
@@ -2031,23 +2048,24 @@ declare class HairPhysics {
|
|
|
2031
2048
|
reset(): void;
|
|
2032
2049
|
}
|
|
2033
2050
|
|
|
2034
|
-
|
|
2035
|
-
* Loom3 - Mapping Corrections
|
|
2036
|
-
*
|
|
2037
|
-
* Attempts to generate a corrected mapping configuration using fuzzy matching.
|
|
2038
|
-
* This is a best-effort helper that can be layered on top of validation.
|
|
2039
|
-
*/
|
|
2040
|
-
|
|
2041
|
-
interface MorphMesh$1 {
|
|
2051
|
+
interface ValidationMorphMesh {
|
|
2042
2052
|
name: string;
|
|
2043
2053
|
morphTargetDictionary?: Record<string, number>;
|
|
2044
2054
|
morphTargetInfluences?: number[];
|
|
2045
2055
|
}
|
|
2046
|
-
interface
|
|
2056
|
+
interface ValidationSkeleton {
|
|
2047
2057
|
bones: Array<{
|
|
2048
2058
|
name: string;
|
|
2049
2059
|
}>;
|
|
2050
2060
|
}
|
|
2061
|
+
|
|
2062
|
+
/**
|
|
2063
|
+
* Loom3 - Mapping Corrections
|
|
2064
|
+
*
|
|
2065
|
+
* Attempts to generate a corrected mapping configuration using fuzzy matching.
|
|
2066
|
+
* This is a best-effort helper that can be layered on top of validation.
|
|
2067
|
+
*/
|
|
2068
|
+
|
|
2051
2069
|
interface MappingCorrection {
|
|
2052
2070
|
type: 'bone' | 'morph' | 'viseme' | 'mesh';
|
|
2053
2071
|
source: string;
|
|
@@ -2071,7 +2089,7 @@ interface MappingCorrectionOptions {
|
|
|
2071
2089
|
*/
|
|
2072
2090
|
useResolvedNames?: boolean;
|
|
2073
2091
|
}
|
|
2074
|
-
declare function generateMappingCorrections(meshes:
|
|
2092
|
+
declare function generateMappingCorrections(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, config: Profile, options?: MappingCorrectionOptions): MappingCorrectionResult;
|
|
2075
2093
|
|
|
2076
2094
|
/**
|
|
2077
2095
|
* Loom3 - Mapping Validation
|
|
@@ -2131,36 +2149,20 @@ interface MappingConsistencyResult {
|
|
|
2131
2149
|
interface ValidateMappingOptions extends MappingCorrectionOptions {
|
|
2132
2150
|
suggestCorrections?: boolean;
|
|
2133
2151
|
}
|
|
2134
|
-
/**
|
|
2135
|
-
* Interface for mesh with morph targets (compatible with Three.js Mesh)
|
|
2136
|
-
*/
|
|
2137
|
-
interface MorphMesh {
|
|
2138
|
-
name: string;
|
|
2139
|
-
morphTargetDictionary?: Record<string, number>;
|
|
2140
|
-
morphTargetInfluences?: number[];
|
|
2141
|
-
}
|
|
2142
|
-
/**
|
|
2143
|
-
* Interface for skeleton (compatible with Three.js Skeleton)
|
|
2144
|
-
*/
|
|
2145
|
-
interface Skeleton {
|
|
2146
|
-
bones: Array<{
|
|
2147
|
-
name: string;
|
|
2148
|
-
}>;
|
|
2149
|
-
}
|
|
2150
2152
|
/**
|
|
2151
2153
|
* Validate that the mapping dictionaries are internally consistent.
|
|
2152
2154
|
*/
|
|
2153
2155
|
declare function validateMappingConfig(config: Profile): MappingConsistencyResult;
|
|
2154
|
-
declare function validateMappings(meshes:
|
|
2156
|
+
declare function validateMappings(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, config: Profile, options?: ValidateMappingOptions): ValidationResult;
|
|
2155
2157
|
/**
|
|
2156
2158
|
* Quick check if a preset is compatible with a model.
|
|
2157
2159
|
* Returns true if at least 50% of mappings are found.
|
|
2158
2160
|
*/
|
|
2159
|
-
declare function isPresetCompatible(meshes:
|
|
2161
|
+
declare function isPresetCompatible(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, config: Profile): boolean;
|
|
2160
2162
|
/**
|
|
2161
2163
|
* Suggest the best preset from a list based on validation scores.
|
|
2162
2164
|
*/
|
|
2163
|
-
declare function suggestBestPreset<T extends Profile>(meshes:
|
|
2165
|
+
declare function suggestBestPreset<T extends Profile>(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, presets: T[]): {
|
|
2164
2166
|
preset: T;
|
|
2165
2167
|
score: number;
|
|
2166
2168
|
} | null;
|
|
@@ -2387,4 +2389,4 @@ declare function detectFacingDirection(model: THREE.Object3D, eyeBoneNames?: {
|
|
|
2387
2389
|
right: string[];
|
|
2388
2390
|
}): 'forward' | 'backward' | 'unknown';
|
|
2389
2391
|
|
|
2390
|
-
export { type AUInfo, AU_INFO, AU_MIX_DEFAULTS, AU_TO_MORPHS, type AnalyzeModelOptions, type Animation, type AnimationActionHandle, type AnimationAnalysis, type AnimationClipInfo, type AnimationInfo, type AnimationPlayOptions, type AnimationState, AnimationThree, BETTA_FISH_PRESET, BLENDING_MODES, BONE_AU_TO_BINDINGS, type BlendingMode, type BoneBinding, type BoneInfo, type BoneKey, CC4_BONE_NODES, CC4_BONE_PREFIX, CC4_EYE_MESH_NODES, CC4_MESHES, CC4_PRESET, CC4_SUFFIX_PATTERN, COMPOSITE_ROTATIONS, CONTINUUM_LABELS, CONTINUUM_PAIRS_MAP, type CharacterConfig, type CharacterRegistry, type ClipHandle, type ClipOptions, type CompositeRotation, type CompositeRotationState, type CurvePoint, type CurvesMap, DEFAULT_HAIR_PHYSICS_CONFIG, type ExpandAnimation, type ExpandedRegionState, AU_MAPPING_CONFIG as FISH_AU_MAPPING_CONFIG, type FaceCenterResult, type FallbackConfig, type FindFaceCenterOptions, type Hair, type HairMorphAxis, type HairMorphOutput$1 as HairMorphOutput, type HairMorphTargetMapping, type HairMorphTargetValueMapping, type HairMorphTargetsConfig, type HairObjectRef, type HairObjectState, HairPhysics, type HairPhysicsConfig$1 as HairPhysicsConfig, type HairPhysicsDirectionConfig$1 as HairPhysicsDirectionConfig, type HairPhysics$1 as HairPhysicsInterface, type HairMorphOutput as HairPhysicsMorphOutput, type HairPhysicsProfileConfig, type HairPhysicsRuntimeConfig, type HairPhysicsRuntimeConfigUpdate, type HairPhysicsState, type HairState, type HairStrand, type HeadState$1 as HeadState, type LineConfig, type LineCurve, type LineStyle, Loom3, type Loom3Config, Loom3 as Loom3Three, type LoomLarge, type LoomLargeConfig, Loom3 as LoomLargeThree, MORPH_TO_MESH, type MappingConsistencyResult, type MappingCorrection, type MappingCorrectionOptions, type MappingCorrectionResult, type MappingIssue, type MarkerGroup, type MarkerStyle, type MarkerStyleOverrides, type MeshCategory, type MeshInfo, type MeshMaterialSettings, type MixerLoopMode, type ModelAnalysisReport, type ModelData, type ModelMeshInfo, type MorphCategory, type MorphInfo, type MorphTargetRef, type MorphTargetsBySide, type NamedDirection, type PresetType, type Profile, type ReadyPayload, type Region, type RotationAxis, type RotationsState, type Snippet, type TrackInfo, type TransitionHandle, VISEME_JAW_AMOUNTS, VISEME_KEYS, type ValidateMappingOptions, type ValidationResult, analyzeModel, collectMorphMeshes, detectFacingDirection, extractFromGLTF, extractModelData, findFaceCenter, fuzzyNameMatch, generateMappingCorrections, getModelForwardDirection, hasLeftRightMorphs, isMixedAU, isPresetCompatible, resolveBoneName, resolveBoneNames, resolveFaceCenter, resolvePreset, resolvePresetWithOverrides, resolveProfile, suggestBestPreset, validateMappingConfig, validateMappings };
|
|
2392
|
+
export { type AUInfo, type AUSelector, AU_INFO, AU_MIX_DEFAULTS, AU_TO_MORPHS, type AnalyzeModelOptions, type Animation, type AnimationActionHandle, type AnimationAnalysis, type AnimationClipInfo, type AnimationInfo, type AnimationPlayOptions, type AnimationState, AnimationThree, BETTA_FISH_PRESET, BLENDING_MODES, BONE_AU_TO_BINDINGS, type BlendingMode, type BoneBinding, type BoneInfo, type BoneKey, CC4_BONE_NODES, CC4_BONE_PREFIX, CC4_EYE_MESH_NODES, CC4_MESHES, CC4_PRESET, CC4_SUFFIX_PATTERN, COMPOSITE_ROTATIONS, CONTINUUM_LABELS, CONTINUUM_PAIRS_MAP, type CharacterConfig, type CharacterRegistry, type ClipHandle, type ClipOptions, type CompositeRotation, type CompositeRotationState, type CurvePoint, type CurvesMap, DEFAULT_HAIR_PHYSICS_CONFIG, type ExpandAnimation, type ExpandedRegionState, AU_MAPPING_CONFIG as FISH_AU_MAPPING_CONFIG, type FaceCenterResult, type FallbackConfig, type FindFaceCenterOptions, type Hair, type HairMorphAxis, type HairMorphOutput$1 as HairMorphOutput, type HairMorphTargetMapping, type HairMorphTargetValueMapping, type HairMorphTargetsConfig, type HairObjectRef, type HairObjectState, HairPhysics, type HairPhysicsConfig$1 as HairPhysicsConfig, type HairPhysicsDirectionConfig$1 as HairPhysicsDirectionConfig, type HairPhysics$1 as HairPhysicsInterface, type HairMorphOutput as HairPhysicsMorphOutput, type HairPhysicsProfileConfig, type HairPhysicsRuntimeConfig, type HairPhysicsRuntimeConfigUpdate, type HairPhysicsState, type HairState, type HairStrand, type HeadState$1 as HeadState, type LineConfig, type LineCurve, type LineStyle, Loom3, type Loom3Config, Loom3 as Loom3Three, type LoomLarge, type LoomLargeConfig, Loom3 as LoomLargeThree, MORPH_TO_MESH, type MappingConsistencyResult, type MappingCorrection, type MappingCorrectionOptions, type MappingCorrectionResult, type MappingIssue, type MarkerGroup, type MarkerStyle, type MarkerStyleOverrides, type MeshCategory, type MeshInfo, type MeshMaterialSettings, type MixerLoopMode, type ModelAnalysisReport, type ModelData, type ModelMeshInfo, type MorphCategory, type MorphInfo, type MorphTargetRef, type MorphTargetsBySide, type NamedDirection, type PresetType, type Profile, type ReadyPayload, type Region, type RotationAxis, type RotationsState, type Snippet, type TrackInfo, type TransitionHandle, VISEME_JAW_AMOUNTS, VISEME_KEYS, type ValidateMappingOptions, type ValidationResult, analyzeModel, collectMorphMeshes, detectFacingDirection, extractFromGLTF, extractModelData, findFaceCenter, fuzzyNameMatch, generateMappingCorrections, getModelForwardDirection, hasLeftRightMorphs, isMixedAU, isPresetCompatible, resolveBoneName, resolveBoneNames, resolveFaceCenter, resolvePreset, resolvePresetWithOverrides, resolveProfile, suggestBestPreset, validateMappingConfig, validateMappings };
|
package/dist/index.d.ts
CHANGED
|
@@ -374,14 +374,16 @@ interface BoneBinding {
|
|
|
374
374
|
/** Optional side hint for balance-aware AUs. */
|
|
375
375
|
side?: 'left' | 'right';
|
|
376
376
|
}
|
|
377
|
+
/** A single AU id or a grouped list of AU ids that share one semantic direction. */
|
|
378
|
+
type AUSelector = number | number[];
|
|
377
379
|
/**
|
|
378
380
|
* RotationAxis - Defines which AUs control a specific rotation axis
|
|
379
381
|
*/
|
|
380
382
|
interface RotationAxis {
|
|
381
383
|
aus: number[];
|
|
382
384
|
axis: 'rx' | 'ry' | 'rz';
|
|
383
|
-
negative?:
|
|
384
|
-
positive?:
|
|
385
|
+
negative?: AUSelector;
|
|
386
|
+
positive?: AUSelector;
|
|
385
387
|
}
|
|
386
388
|
/**
|
|
387
389
|
* CompositeRotation - Defines unified rotation axes for bones
|
|
@@ -658,8 +660,19 @@ interface Profile {
|
|
|
658
660
|
rightMorphSuffixes?: string[];
|
|
659
661
|
/** Morph category to mesh names (e.g., 'face' → ['CC_Base_Body_1']) */
|
|
660
662
|
morphToMesh: Record<string, string[]>;
|
|
663
|
+
/**
|
|
664
|
+
* Optional map from AU `facePart` labels (from `auInfo`) to `morphToMesh` categories.
|
|
665
|
+
* This makes AU mesh routing fully preset/profile configurable.
|
|
666
|
+
* Example: { Eye: 'eye', Eyes: 'eye', Eyelids: 'eye', Tongue: 'tongue' }.
|
|
667
|
+
*/
|
|
668
|
+
auFacePartToMeshCategory?: Record<string, string>;
|
|
661
669
|
/** Viseme targets in order (typically 15 phoneme positions) */
|
|
662
670
|
visemeKeys: MorphTargetRef[];
|
|
671
|
+
/**
|
|
672
|
+
* Optional `morphToMesh` category to use for viseme morph routing.
|
|
673
|
+
* Falls back to `morphToMesh.viseme` (if present), then `morphToMesh.face`.
|
|
674
|
+
*/
|
|
675
|
+
visemeMeshCategory?: string;
|
|
663
676
|
/** Optional: Jaw opening amounts per viseme index (0-1). Used for auto-generating jaw rotation in clips. */
|
|
664
677
|
visemeJawAmounts?: number[];
|
|
665
678
|
/** Optional: Default mix weights for bone/morph blending (0 = morph only, 1 = bone only) */
|
|
@@ -1516,9 +1529,10 @@ declare class Loom3 implements LoomLarge {
|
|
|
1516
1529
|
getProfile(): Profile;
|
|
1517
1530
|
/**
|
|
1518
1531
|
* Get the mesh names that should receive morph influences for a given AU.
|
|
1519
|
-
*
|
|
1532
|
+
* Routing is driven by `auFacePartToMeshCategory` in profile config.
|
|
1520
1533
|
*/
|
|
1521
1534
|
getMeshNamesForAU(auId: number): string[];
|
|
1535
|
+
getMeshNamesForViseme(): string[];
|
|
1522
1536
|
registerHairObjects(objects: Object3D[]): Array<{
|
|
1523
1537
|
name: string;
|
|
1524
1538
|
isMesh: boolean;
|
|
@@ -1571,6 +1585,9 @@ declare class Loom3 implements LoomLarge {
|
|
|
1571
1585
|
private getMorphKeyCacheKey;
|
|
1572
1586
|
private getMorphIndexCacheKey;
|
|
1573
1587
|
private isMixedAU;
|
|
1588
|
+
private getEffectiveBoneAUValue;
|
|
1589
|
+
private getCompositeAxisValueForNode;
|
|
1590
|
+
private getCompositeAxisBindingForNode;
|
|
1574
1591
|
private initBoneRotations;
|
|
1575
1592
|
/** Update rotation state - just stores -1 to 1 value like stable version */
|
|
1576
1593
|
private updateBoneRotation;
|
|
@@ -2031,23 +2048,24 @@ declare class HairPhysics {
|
|
|
2031
2048
|
reset(): void;
|
|
2032
2049
|
}
|
|
2033
2050
|
|
|
2034
|
-
|
|
2035
|
-
* Loom3 - Mapping Corrections
|
|
2036
|
-
*
|
|
2037
|
-
* Attempts to generate a corrected mapping configuration using fuzzy matching.
|
|
2038
|
-
* This is a best-effort helper that can be layered on top of validation.
|
|
2039
|
-
*/
|
|
2040
|
-
|
|
2041
|
-
interface MorphMesh$1 {
|
|
2051
|
+
interface ValidationMorphMesh {
|
|
2042
2052
|
name: string;
|
|
2043
2053
|
morphTargetDictionary?: Record<string, number>;
|
|
2044
2054
|
morphTargetInfluences?: number[];
|
|
2045
2055
|
}
|
|
2046
|
-
interface
|
|
2056
|
+
interface ValidationSkeleton {
|
|
2047
2057
|
bones: Array<{
|
|
2048
2058
|
name: string;
|
|
2049
2059
|
}>;
|
|
2050
2060
|
}
|
|
2061
|
+
|
|
2062
|
+
/**
|
|
2063
|
+
* Loom3 - Mapping Corrections
|
|
2064
|
+
*
|
|
2065
|
+
* Attempts to generate a corrected mapping configuration using fuzzy matching.
|
|
2066
|
+
* This is a best-effort helper that can be layered on top of validation.
|
|
2067
|
+
*/
|
|
2068
|
+
|
|
2051
2069
|
interface MappingCorrection {
|
|
2052
2070
|
type: 'bone' | 'morph' | 'viseme' | 'mesh';
|
|
2053
2071
|
source: string;
|
|
@@ -2071,7 +2089,7 @@ interface MappingCorrectionOptions {
|
|
|
2071
2089
|
*/
|
|
2072
2090
|
useResolvedNames?: boolean;
|
|
2073
2091
|
}
|
|
2074
|
-
declare function generateMappingCorrections(meshes:
|
|
2092
|
+
declare function generateMappingCorrections(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, config: Profile, options?: MappingCorrectionOptions): MappingCorrectionResult;
|
|
2075
2093
|
|
|
2076
2094
|
/**
|
|
2077
2095
|
* Loom3 - Mapping Validation
|
|
@@ -2131,36 +2149,20 @@ interface MappingConsistencyResult {
|
|
|
2131
2149
|
interface ValidateMappingOptions extends MappingCorrectionOptions {
|
|
2132
2150
|
suggestCorrections?: boolean;
|
|
2133
2151
|
}
|
|
2134
|
-
/**
|
|
2135
|
-
* Interface for mesh with morph targets (compatible with Three.js Mesh)
|
|
2136
|
-
*/
|
|
2137
|
-
interface MorphMesh {
|
|
2138
|
-
name: string;
|
|
2139
|
-
morphTargetDictionary?: Record<string, number>;
|
|
2140
|
-
morphTargetInfluences?: number[];
|
|
2141
|
-
}
|
|
2142
|
-
/**
|
|
2143
|
-
* Interface for skeleton (compatible with Three.js Skeleton)
|
|
2144
|
-
*/
|
|
2145
|
-
interface Skeleton {
|
|
2146
|
-
bones: Array<{
|
|
2147
|
-
name: string;
|
|
2148
|
-
}>;
|
|
2149
|
-
}
|
|
2150
2152
|
/**
|
|
2151
2153
|
* Validate that the mapping dictionaries are internally consistent.
|
|
2152
2154
|
*/
|
|
2153
2155
|
declare function validateMappingConfig(config: Profile): MappingConsistencyResult;
|
|
2154
|
-
declare function validateMappings(meshes:
|
|
2156
|
+
declare function validateMappings(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, config: Profile, options?: ValidateMappingOptions): ValidationResult;
|
|
2155
2157
|
/**
|
|
2156
2158
|
* Quick check if a preset is compatible with a model.
|
|
2157
2159
|
* Returns true if at least 50% of mappings are found.
|
|
2158
2160
|
*/
|
|
2159
|
-
declare function isPresetCompatible(meshes:
|
|
2161
|
+
declare function isPresetCompatible(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, config: Profile): boolean;
|
|
2160
2162
|
/**
|
|
2161
2163
|
* Suggest the best preset from a list based on validation scores.
|
|
2162
2164
|
*/
|
|
2163
|
-
declare function suggestBestPreset<T extends Profile>(meshes:
|
|
2165
|
+
declare function suggestBestPreset<T extends Profile>(meshes: ValidationMorphMesh[], skeleton: ValidationSkeleton | null, presets: T[]): {
|
|
2164
2166
|
preset: T;
|
|
2165
2167
|
score: number;
|
|
2166
2168
|
} | null;
|
|
@@ -2387,4 +2389,4 @@ declare function detectFacingDirection(model: THREE.Object3D, eyeBoneNames?: {
|
|
|
2387
2389
|
right: string[];
|
|
2388
2390
|
}): 'forward' | 'backward' | 'unknown';
|
|
2389
2391
|
|
|
2390
|
-
export { type AUInfo, AU_INFO, AU_MIX_DEFAULTS, AU_TO_MORPHS, type AnalyzeModelOptions, type Animation, type AnimationActionHandle, type AnimationAnalysis, type AnimationClipInfo, type AnimationInfo, type AnimationPlayOptions, type AnimationState, AnimationThree, BETTA_FISH_PRESET, BLENDING_MODES, BONE_AU_TO_BINDINGS, type BlendingMode, type BoneBinding, type BoneInfo, type BoneKey, CC4_BONE_NODES, CC4_BONE_PREFIX, CC4_EYE_MESH_NODES, CC4_MESHES, CC4_PRESET, CC4_SUFFIX_PATTERN, COMPOSITE_ROTATIONS, CONTINUUM_LABELS, CONTINUUM_PAIRS_MAP, type CharacterConfig, type CharacterRegistry, type ClipHandle, type ClipOptions, type CompositeRotation, type CompositeRotationState, type CurvePoint, type CurvesMap, DEFAULT_HAIR_PHYSICS_CONFIG, type ExpandAnimation, type ExpandedRegionState, AU_MAPPING_CONFIG as FISH_AU_MAPPING_CONFIG, type FaceCenterResult, type FallbackConfig, type FindFaceCenterOptions, type Hair, type HairMorphAxis, type HairMorphOutput$1 as HairMorphOutput, type HairMorphTargetMapping, type HairMorphTargetValueMapping, type HairMorphTargetsConfig, type HairObjectRef, type HairObjectState, HairPhysics, type HairPhysicsConfig$1 as HairPhysicsConfig, type HairPhysicsDirectionConfig$1 as HairPhysicsDirectionConfig, type HairPhysics$1 as HairPhysicsInterface, type HairMorphOutput as HairPhysicsMorphOutput, type HairPhysicsProfileConfig, type HairPhysicsRuntimeConfig, type HairPhysicsRuntimeConfigUpdate, type HairPhysicsState, type HairState, type HairStrand, type HeadState$1 as HeadState, type LineConfig, type LineCurve, type LineStyle, Loom3, type Loom3Config, Loom3 as Loom3Three, type LoomLarge, type LoomLargeConfig, Loom3 as LoomLargeThree, MORPH_TO_MESH, type MappingConsistencyResult, type MappingCorrection, type MappingCorrectionOptions, type MappingCorrectionResult, type MappingIssue, type MarkerGroup, type MarkerStyle, type MarkerStyleOverrides, type MeshCategory, type MeshInfo, type MeshMaterialSettings, type MixerLoopMode, type ModelAnalysisReport, type ModelData, type ModelMeshInfo, type MorphCategory, type MorphInfo, type MorphTargetRef, type MorphTargetsBySide, type NamedDirection, type PresetType, type Profile, type ReadyPayload, type Region, type RotationAxis, type RotationsState, type Snippet, type TrackInfo, type TransitionHandle, VISEME_JAW_AMOUNTS, VISEME_KEYS, type ValidateMappingOptions, type ValidationResult, analyzeModel, collectMorphMeshes, detectFacingDirection, extractFromGLTF, extractModelData, findFaceCenter, fuzzyNameMatch, generateMappingCorrections, getModelForwardDirection, hasLeftRightMorphs, isMixedAU, isPresetCompatible, resolveBoneName, resolveBoneNames, resolveFaceCenter, resolvePreset, resolvePresetWithOverrides, resolveProfile, suggestBestPreset, validateMappingConfig, validateMappings };
|
|
2392
|
+
export { type AUInfo, type AUSelector, AU_INFO, AU_MIX_DEFAULTS, AU_TO_MORPHS, type AnalyzeModelOptions, type Animation, type AnimationActionHandle, type AnimationAnalysis, type AnimationClipInfo, type AnimationInfo, type AnimationPlayOptions, type AnimationState, AnimationThree, BETTA_FISH_PRESET, BLENDING_MODES, BONE_AU_TO_BINDINGS, type BlendingMode, type BoneBinding, type BoneInfo, type BoneKey, CC4_BONE_NODES, CC4_BONE_PREFIX, CC4_EYE_MESH_NODES, CC4_MESHES, CC4_PRESET, CC4_SUFFIX_PATTERN, COMPOSITE_ROTATIONS, CONTINUUM_LABELS, CONTINUUM_PAIRS_MAP, type CharacterConfig, type CharacterRegistry, type ClipHandle, type ClipOptions, type CompositeRotation, type CompositeRotationState, type CurvePoint, type CurvesMap, DEFAULT_HAIR_PHYSICS_CONFIG, type ExpandAnimation, type ExpandedRegionState, AU_MAPPING_CONFIG as FISH_AU_MAPPING_CONFIG, type FaceCenterResult, type FallbackConfig, type FindFaceCenterOptions, type Hair, type HairMorphAxis, type HairMorphOutput$1 as HairMorphOutput, type HairMorphTargetMapping, type HairMorphTargetValueMapping, type HairMorphTargetsConfig, type HairObjectRef, type HairObjectState, HairPhysics, type HairPhysicsConfig$1 as HairPhysicsConfig, type HairPhysicsDirectionConfig$1 as HairPhysicsDirectionConfig, type HairPhysics$1 as HairPhysicsInterface, type HairMorphOutput as HairPhysicsMorphOutput, type HairPhysicsProfileConfig, type HairPhysicsRuntimeConfig, type HairPhysicsRuntimeConfigUpdate, type HairPhysicsState, type HairState, type HairStrand, type HeadState$1 as HeadState, type LineConfig, type LineCurve, type LineStyle, Loom3, type Loom3Config, Loom3 as Loom3Three, type LoomLarge, type LoomLargeConfig, Loom3 as LoomLargeThree, MORPH_TO_MESH, type MappingConsistencyResult, type MappingCorrection, type MappingCorrectionOptions, type MappingCorrectionResult, type MappingIssue, type MarkerGroup, type MarkerStyle, type MarkerStyleOverrides, type MeshCategory, type MeshInfo, type MeshMaterialSettings, type MixerLoopMode, type ModelAnalysisReport, type ModelData, type ModelMeshInfo, type MorphCategory, type MorphInfo, type MorphTargetRef, type MorphTargetsBySide, type NamedDirection, type PresetType, type Profile, type ReadyPayload, type Region, type RotationAxis, type RotationsState, type Snippet, type TrackInfo, type TransitionHandle, VISEME_JAW_AMOUNTS, VISEME_KEYS, type ValidateMappingOptions, type ValidationResult, analyzeModel, collectMorphMeshes, detectFacingDirection, extractFromGLTF, extractModelData, findFaceCenter, fuzzyNameMatch, generateMappingCorrections, getModelForwardDirection, hasLeftRightMorphs, isMixedAU, isPresetCompatible, resolveBoneName, resolveBoneNames, resolveFaceCenter, resolvePreset, resolvePresetWithOverrides, resolveProfile, suggestBestPreset, validateMappingConfig, validateMappings };
|