@lovelace_lol/loom3 1.0.34 → 1.0.36

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/dist/index.d.cts CHANGED
@@ -317,6 +317,19 @@ type RotationsState = Record<string, CompositeRotationState>;
317
317
  type AnimationSource = 'baked' | 'clip' | 'snippet';
318
318
  /** Shared blend-mode surface for downstream animation UIs. */
319
319
  type AnimationBlendMode = 'replace' | 'additive';
320
+ /** Runtime channel classes derived from one authored baked source clip. */
321
+ type BakedClipChannel = 'face' | 'body' | 'scene';
322
+ /** Metadata describing one derived baked runtime channel. */
323
+ interface BakedClipChannelInfo {
324
+ /** Logical channel key surfaced to downstream UIs. */
325
+ channel: BakedClipChannel;
326
+ /** Number of tracks routed into this channel. */
327
+ trackCount: number;
328
+ /** Whether Loom3 can play this channel directly. */
329
+ playable: boolean;
330
+ /** Effective/default blend mode for this channel when playable. */
331
+ blendMode?: AnimationBlendMode;
332
+ }
320
333
  /** Shared easing labels for downstream animation UIs. */
321
334
  type AnimationEasing = 'linear' | 'easeInOut' | 'easeInOutCubic' | 'easeIn' | 'easeOut';
322
335
  /**
@@ -366,6 +379,8 @@ interface AnimationClipInfo {
366
379
  trackCount: number;
367
380
  /** Source of the clip for downstream UI grouping */
368
381
  source?: AnimationSource;
382
+ /** Derived channel metadata for partitioned baked clips. */
383
+ channels?: BakedClipChannelInfo[];
369
384
  }
370
385
  /**
371
386
  * State of a currently playing animation.
@@ -395,8 +410,12 @@ interface AnimationState {
395
410
  weight: number;
396
411
  /** Shared balance metadata for downstream UIs */
397
412
  balance: number;
413
+ /** Requested source-level blend mode before per-channel routing. */
414
+ requestedBlendMode: AnimationBlendMode;
398
415
  /** Shared blend metadata for downstream UIs */
399
416
  blendMode: AnimationBlendMode;
417
+ /** Derived channel metadata for partitioned baked clips. */
418
+ channels?: BakedClipChannelInfo[];
400
419
  /** Shared easing metadata for downstream UIs */
401
420
  easing: AnimationEasing;
402
421
  /** Whether the animation is looping */
@@ -1360,6 +1379,7 @@ declare class Loom3 implements LoomLarge {
1360
1379
  private bones;
1361
1380
  private mixWeights;
1362
1381
  private visemeValues;
1382
+ private visemeJawScales;
1363
1383
  private static readonly VISEME_JAW_AMOUNTS;
1364
1384
  private bakedAnimations;
1365
1385
  private hairPhysics;
@@ -1453,6 +1473,7 @@ declare class Loom3 implements LoomLarge {
1453
1473
  clearTransitions(): void;
1454
1474
  getActiveTransitionCount(): number;
1455
1475
  resetToNeutral(): void;
1476
+ private reinitializeRuntimeStateFromCurrentControls;
1456
1477
  getMeshList(): MeshInfo[];
1457
1478
  /** Get all morph targets grouped by mesh name */
1458
1479
  getMorphTargets(): Record<string, string[]>;
@@ -1556,6 +1577,10 @@ declare class Loom3 implements LoomLarge {
1556
1577
  private getMorphValueByIndex;
1557
1578
  private getMorphKeyCacheKey;
1558
1579
  private getMorphIndexCacheKey;
1580
+ private syncVisemeRuntimeState;
1581
+ private getVisemeJawAmount;
1582
+ private collectResolvedExpressionMorphTargets;
1583
+ private resetMorphTargetHandles;
1559
1584
  private isMixedAU;
1560
1585
  private getEffectiveBoneAUValue;
1561
1586
  private getCompositeAxisValueForNode;
package/dist/index.d.ts CHANGED
@@ -317,6 +317,19 @@ type RotationsState = Record<string, CompositeRotationState>;
317
317
  type AnimationSource = 'baked' | 'clip' | 'snippet';
318
318
  /** Shared blend-mode surface for downstream animation UIs. */
319
319
  type AnimationBlendMode = 'replace' | 'additive';
320
+ /** Runtime channel classes derived from one authored baked source clip. */
321
+ type BakedClipChannel = 'face' | 'body' | 'scene';
322
+ /** Metadata describing one derived baked runtime channel. */
323
+ interface BakedClipChannelInfo {
324
+ /** Logical channel key surfaced to downstream UIs. */
325
+ channel: BakedClipChannel;
326
+ /** Number of tracks routed into this channel. */
327
+ trackCount: number;
328
+ /** Whether Loom3 can play this channel directly. */
329
+ playable: boolean;
330
+ /** Effective/default blend mode for this channel when playable. */
331
+ blendMode?: AnimationBlendMode;
332
+ }
320
333
  /** Shared easing labels for downstream animation UIs. */
321
334
  type AnimationEasing = 'linear' | 'easeInOut' | 'easeInOutCubic' | 'easeIn' | 'easeOut';
322
335
  /**
@@ -366,6 +379,8 @@ interface AnimationClipInfo {
366
379
  trackCount: number;
367
380
  /** Source of the clip for downstream UI grouping */
368
381
  source?: AnimationSource;
382
+ /** Derived channel metadata for partitioned baked clips. */
383
+ channels?: BakedClipChannelInfo[];
369
384
  }
370
385
  /**
371
386
  * State of a currently playing animation.
@@ -395,8 +410,12 @@ interface AnimationState {
395
410
  weight: number;
396
411
  /** Shared balance metadata for downstream UIs */
397
412
  balance: number;
413
+ /** Requested source-level blend mode before per-channel routing. */
414
+ requestedBlendMode: AnimationBlendMode;
398
415
  /** Shared blend metadata for downstream UIs */
399
416
  blendMode: AnimationBlendMode;
417
+ /** Derived channel metadata for partitioned baked clips. */
418
+ channels?: BakedClipChannelInfo[];
400
419
  /** Shared easing metadata for downstream UIs */
401
420
  easing: AnimationEasing;
402
421
  /** Whether the animation is looping */
@@ -1360,6 +1379,7 @@ declare class Loom3 implements LoomLarge {
1360
1379
  private bones;
1361
1380
  private mixWeights;
1362
1381
  private visemeValues;
1382
+ private visemeJawScales;
1363
1383
  private static readonly VISEME_JAW_AMOUNTS;
1364
1384
  private bakedAnimations;
1365
1385
  private hairPhysics;
@@ -1453,6 +1473,7 @@ declare class Loom3 implements LoomLarge {
1453
1473
  clearTransitions(): void;
1454
1474
  getActiveTransitionCount(): number;
1455
1475
  resetToNeutral(): void;
1476
+ private reinitializeRuntimeStateFromCurrentControls;
1456
1477
  getMeshList(): MeshInfo[];
1457
1478
  /** Get all morph targets grouped by mesh name */
1458
1479
  getMorphTargets(): Record<string, string[]>;
@@ -1556,6 +1577,10 @@ declare class Loom3 implements LoomLarge {
1556
1577
  private getMorphValueByIndex;
1557
1578
  private getMorphKeyCacheKey;
1558
1579
  private getMorphIndexCacheKey;
1580
+ private syncVisemeRuntimeState;
1581
+ private getVisemeJawAmount;
1582
+ private collectResolvedExpressionMorphTargets;
1583
+ private resetMorphTargetHandles;
1559
1584
  private isMixedAU;
1560
1585
  private getEffectiveBoneAUValue;
1561
1586
  private getCompositeAxisValueForNode;