@voqalize/avatar 0.4.3 → 0.4.4

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/assets/tanvi.glb CHANGED
Binary file
package/assets/tanya.glb CHANGED
Binary file
package/assets/tara.glb CHANGED
Binary file
package/assets/tess.glb CHANGED
Binary file
package/assets/tushar.glb CHANGED
Binary file
@@ -11,7 +11,7 @@
11
11
  * state or an emotion; it receives a fully mixed pose and moves geometry.
12
12
  */
13
13
 
14
- import { REST } from "../internal.js";
14
+ import { JAW_OF_OPEN, REST, VISEME_SHAPES } from "../internal.js";
15
15
  import type { AvatarFrame, AvatarRig, RigPose } from "../internal.js";
16
16
  import * as THREE from "three";
17
17
  import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
@@ -448,15 +448,6 @@ const INTERIOR: ReadonlyArray<readonly [number, readonly [number, number, number
448
448
  [0.90, [40, 12, 12]],
449
449
  ];
450
450
 
451
- /**
452
- * The same photograph across the opening: the middle two-fifths hold the
453
- * midline's colour and the rest falls to a fifth of it at the commissure — her
454
- * 0.65 of enamel at the widest row is 0.44 halfway out and 0.1–0.2 at the
455
- * corner. `from` is where the fall starts and `to` what is left at the corner,
456
- * both as a share of the opening's half-width.
457
- */
458
- const INTERIOR_RIM = { from: 0.4, to: 0.2 };
459
-
460
451
  /**
461
452
  * The photograph's enamel is 158 of 255 and the rendered upper arch's is about
462
453
  * 232, so the profile is carried over at the ratio of the two: the interior is
@@ -465,6 +456,9 @@ const INTERIOR_RIM = { from: 0.4, to: 0.2 };
465
456
  */
466
457
  const INTERIOR_GAIN = 232 / 158;
467
458
 
459
+ /** The same, applied to the photograph in linear light, where its tile is read. */
460
+ const INTERIOR_GAIN_LINEAR = INTERIOR_GAIN ** 2.2;
461
+
468
462
  /**
469
463
  * How open her mouth is in that photograph: 185 px between the inner rims at the
470
464
  * midline over 229 between the inner corners (MediaPipe 13/14 and 78/308). A
@@ -481,10 +475,13 @@ const OPENNESS = `sqrt(clamp(uAperture.w / (2.0 * uAperture.z * ${INTERIOR_OPEN.
481
475
 
482
476
  /**
483
477
  * Where a raised tongue is read from: `tongue` = 1 paints the surface it lifts
484
- * into the opening as if it were at this depth — the photograph's brightest
485
- * row — rather than in the shadow of the upper arch it has moved into.
478
+ * into the opening from `from` down to `at` — `at` the photograph's brightest
479
+ * row — rather than in the shadow of the upper arch it has moved into. A span
480
+ * and not a row: read at one row, every height of it took the same texels,
481
+ * and the photograph's tongue drew as vertical streaks down a slab. Squeezed
482
+ * into the span it keeps its crown, rolling off toward the teeth.
486
483
  */
487
- const TONGUE_LIFT_AT = 0.60;
484
+ const TONGUE_LIFT = { from: 0.25, at: 0.60 };
488
485
 
489
486
  /** An `INTERIOR` knot as linear light, at `INTERIOR_GAIN`. */
490
487
  function interiorKnot(rgb: readonly [number, number, number]) {
@@ -521,14 +518,26 @@ function interiorProfile() {
521
518
  * Emitted rather than lit, and entirely: this is sampled light, like the 75%
522
519
  * of the face that is the photograph verbatim, and a key from above lights the
523
520
  * dorsum brightest at its back, which is the one thing a mouth never looks
524
- * like. Both surfaces take the same profile, so her mouth's absence of any
521
+ * like. Both surfaces read the same picture, so her mouth's absence of any
525
522
  * tongue-to-cavity edge carries over; only a raised tongue is told apart, by
526
523
  * `lift`, because a tongue tip at the teeth is what viseme H is.
527
524
  */
528
525
  function mouthInterior(base: THREE.MeshStandardMaterial,
529
- aperture: { value: THREE.Vector4 }, lift: { value: number }) {
526
+ aperture: { value: THREE.Vector4 }, lift: { value: number },
527
+ extent: readonly number[] | null) {
530
528
  const material = base.clone();
531
- const profile = interiorProfile();
529
+ // The photograph itself where the asset carries it (`project_albedo.project_interior`),
530
+ // and its midline where it does not.
531
+ const tiled = material.map !== null && extent !== null;
532
+ let paint: string;
533
+ if (tiled) {
534
+ const [s0, s1, a0, a1] = extent!;
535
+ paint = `vec2 tileAt = clamp(vec2((mouthX - ${s0.toFixed(3)}) / ${(s1 - s0).toFixed(3)},`
536
+ + ` (mouthA - ${a0.toFixed(3)}) / ${(a1 - a0).toFixed(3)}), 0.0, 1.0);\n`
537
+ + `vec3 interior = min(texture2D(map, tileAt).rgb * ${INTERIOR_GAIN_LINEAR.toFixed(4)}, vec3(1.0));\n`;
538
+ } else {
539
+ paint = interiorProfile();
540
+ }
532
541
  material.onBeforeCompile = (shader) => {
533
542
  shader.uniforms.uAperture = aperture;
534
543
  shader.uniforms.uMouthLift = lift;
@@ -541,18 +550,17 @@ function mouthInterior(base: THREE.MeshStandardMaterial,
541
550
  shader.fragmentShader = shader.fragmentShader
542
551
  .replace("#include <common>",
543
552
  "#include <common>\nvarying vec2 vMouthAt;\nuniform vec4 uAperture;\nuniform float uMouthLift;")
544
- .replace("#include <map_fragment>",
545
- "#include <map_fragment>\ndiffuseColor.rgb = vec3(0.0);")
553
+ .replace("#include <map_fragment>", "diffuseColor.rgb = vec3(0.0);")
546
554
  .replace("#include <emissivemap_fragment>",
547
555
  "#include <emissivemap_fragment>\n"
548
- + "float mouthA = (uAperture.y - vMouthAt.y) / uAperture.w;\n"
549
- + `mouthA = mouthA < ${TONGUE_LIFT_AT.toFixed(2)} ? mix(mouthA, ${TONGUE_LIFT_AT.toFixed(2)}, uMouthLift) : mouthA;\n`
550
- + "float mouthS = abs(vMouthAt.x - uAperture.x) / uAperture.z;\n"
551
- + profile
552
- + `interior *= ${OPENNESS};\n`
553
- + `totalEmissiveRadiance = interior * mix(1.0, ${INTERIOR_RIM.to.toFixed(2)}, smoothstep(${INTERIOR_RIM.from.toFixed(2)}, 1.0, mouthS));`);
556
+ + "float mouthA0 = (uAperture.y - vMouthAt.y) / uAperture.w;\n"
557
+ + `float mouthA = mouthA0 < ${TONGUE_LIFT.at.toFixed(2)} ? mix(mouthA0, ${TONGUE_LIFT.from.toFixed(2)}`
558
+ + ` + max(mouthA0, 0.0) * ${((TONGUE_LIFT.at - TONGUE_LIFT.from) / TONGUE_LIFT.at).toFixed(4)}, uMouthLift) : mouthA0;\n`
559
+ + "float mouthX = (vMouthAt.x - uAperture.x) / uAperture.z;\n"
560
+ + paint
561
+ + `totalEmissiveRadiance = interior * ${OPENNESS};`);
554
562
  };
555
- material.customProgramCacheKey = () => "mouth-interior";
563
+ material.customProgramCacheKey = () => (tiled ? "mouth-interior-tile" : "mouth-interior");
556
564
  return material;
557
565
  }
558
566
 
@@ -1196,6 +1204,27 @@ const influence = (channel: string, value: number): number => {
1196
1204
  return channel === "squintL" || channel === "squintR" ? squintCurve(i) : i;
1197
1205
  };
1198
1206
 
1207
+ /**
1208
+ * The jaw a closure lets through. This shell hangs the lower lip from the
1209
+ * mandible (`morphs._mandible`), and the jaw is the slower of the two to settle
1210
+ * (`JAW_RESPONSE_TAU_S`), so into an [m] the lips have shut while the jaw is
1211
+ * still coming up. That pulls the lower lip back off the upper, and the teeth
1212
+ * show through the seam. A real lower lip closes over a jaw that is still
1213
+ * open. A press is what a seal looks like on these channels, so in proportion
1214
+ * to the press past rest the jaw is held to what the lips' own aperture
1215
+ * implies. The cost is a chin that arrives with the lips rather than just
1216
+ * after them, and that is not what a viewer looks at during an [m].
1217
+ */
1218
+ const SEAL_FROM = VISEME_SHAPES.X.mouthPress ?? REST.mouthPress;
1219
+ const SEAL_FULL = VISEME_SHAPES.A.mouthPress ?? 1;
1220
+ function sealed(pose: RigPose): RigPose {
1221
+ const { jaw, mouthOpen = 0, mouthPress } = pose;
1222
+ if (jaw === undefined || mouthPress === undefined) return pose;
1223
+ const seal = Math.min(1, Math.max(0, (mouthPress - SEAL_FROM) / (SEAL_FULL - SEAL_FROM)));
1224
+ const excess = jaw - JAW_OF_OPEN * mouthOpen;
1225
+ return seal > 0 && excess > 0 ? { ...pose, jaw: jaw - seal * excess } : pose;
1226
+ }
1227
+
1199
1228
  /** One side's weights for the asset's expression maps, in its order. A
1200
1229
  * channel with no side (`mouthPress`) weighs the same on both. */
1201
1230
  const expressionWeights = (pose: RigPose, side: "L" | "R", expression: Expression,
@@ -1364,7 +1393,8 @@ export function createCharacterRig(mount: HTMLElement, options?: unknown): Avata
1364
1393
  observer.observe(mount);
1365
1394
  resize();
1366
1395
 
1367
- const applyPose = (pose: RigPose) => {
1396
+ const applyPose = (given: RigPose) => {
1397
+ const pose = sealed(given);
1368
1398
  headRollRad = radians(((pose.headRoll ?? 0) / HEAD_CLAMP) * HEAD_DEG.roll);
1369
1399
  // The first pose is a starting point, not a movement: seed the hair where it
1370
1400
  // would have settled, so a tool that sets one pose and screenshots it gets
@@ -1633,7 +1663,10 @@ export function createCharacterRig(mount: HTMLElement, options?: unknown): Avata
1633
1663
  .filter((e): e is [string, number[]] => Array.isArray(e[1]) && e[1].length === 4) };
1634
1664
  for (const [name, lift] of [["Cavity", { value: 0 }], ["Tongue", tongueLift]] as const) {
1635
1665
  const mesh = head.getObjectByName(name) as THREE.Mesh | undefined;
1636
- if (mesh) mesh.material = mouthInterior(mesh.material as THREE.MeshStandardMaterial, mouthOpening, lift);
1666
+ if (!mesh) continue;
1667
+ const extent = mesh.userData?.interior_extent;
1668
+ mesh.material = mouthInterior(mesh.material as THREE.MeshStandardMaterial, mouthOpening, lift,
1669
+ Array.isArray(extent) && extent.length === 4 ? extent : null);
1637
1670
  }
1638
1671
  const lower = head.getObjectByName("Teeth_Lower") as THREE.Mesh | undefined;
1639
1672
  if (lower) lower.material = lowerArch(lower.material as THREE.MeshStandardMaterial, mouthOpening);
@@ -1 +1 @@
1
- {"version":3,"file":"character-rig.d.ts","sourceRoot":"","sources":["../../client/three/character-rig.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAe,SAAS,EAAW,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B;;;;;;;;;;;;;;;;;GAiBG;AAKH,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,QAAQ;;;;CAAkC,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,eAAsC,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,eAAsC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,UAC+B,CAAC;AAqFvD;;;+EAG+E;AAC/E,eAAO,MAAM,OAAO;;;CAA2G,CAAC;AAGhI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HnB,CAAC;AAymBX,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;;;;;;;4DAQwD;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;oDACgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;8DAQ0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AA4HD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS;;;;CAAyC,CAAC;AAEhE;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,IAAI,MAAM;;;CAInF,CAAC;AA0CF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAmfnF"}
1
+ {"version":3,"file":"character-rig.d.ts","sourceRoot":"","sources":["../../client/three/character-rig.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAe,SAAS,EAAW,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B;;;;;;;;;;;;;;;;;GAiBG;AAKH,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,QAAQ;;;;CAAkC,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,eAAsC,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,eAAsC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,UAC+B,CAAC;AAqFvD;;;+EAG+E;AAC/E,eAAO,MAAM,OAAO;;;CAA2G,CAAC;AAGhI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HnB,CAAC;AAinBX,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B;;;;;;;;4DAQwD;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;oDACgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;8DAQ0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AA4HD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS;;;;CAAyC,CAAC;AAEhE;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,IAAI,MAAM;;;CAInF,CAAC;AA+DF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAufnF"}
@@ -9,7 +9,7 @@
9
9
  * own channel names precisely so this file never has to interpret a viseme, a
10
10
  * state or an emotion; it receives a fully mixed pose and moves geometry.
11
11
  */
12
- import { REST } from "../internal.js";
12
+ import { JAW_OF_OPEN, REST, VISEME_SHAPES } from "../internal.js";
13
13
  import * as THREE from "three";
14
14
  import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
15
15
  import { HARD_BUDGET, pixelRatioFor } from "./budgets.js";
@@ -425,14 +425,6 @@ const INTERIOR = [
425
425
  [0.80, [52, 17, 15]],
426
426
  [0.90, [40, 12, 12]],
427
427
  ];
428
- /**
429
- * The same photograph across the opening: the middle two-fifths hold the
430
- * midline's colour and the rest falls to a fifth of it at the commissure — her
431
- * 0.65 of enamel at the widest row is 0.44 halfway out and 0.1–0.2 at the
432
- * corner. `from` is where the fall starts and `to` what is left at the corner,
433
- * both as a share of the opening's half-width.
434
- */
435
- const INTERIOR_RIM = { from: 0.4, to: 0.2 };
436
428
  /**
437
429
  * The photograph's enamel is 158 of 255 and the rendered upper arch's is about
438
430
  * 232, so the profile is carried over at the ratio of the two: the interior is
@@ -440,6 +432,8 @@ const INTERIOR_RIM = { from: 0.4, to: 0.2 };
440
432
  * makes looking into a mouth.
441
433
  */
442
434
  const INTERIOR_GAIN = 232 / 158;
435
+ /** The same, applied to the photograph in linear light, where its tile is read. */
436
+ const INTERIOR_GAIN_LINEAR = INTERIOR_GAIN ** 2.2;
443
437
  /**
444
438
  * How open her mouth is in that photograph: 185 px between the inner rims at the
445
439
  * midline over 229 between the inner corners (MediaPipe 13/14 and 78/308). A
@@ -454,10 +448,13 @@ const INTERIOR_OPEN = 185 / 229;
454
448
  const OPENNESS = `sqrt(clamp(uAperture.w / (2.0 * uAperture.z * ${INTERIOR_OPEN.toFixed(3)}), 0.0, 1.0))`;
455
449
  /**
456
450
  * Where a raised tongue is read from: `tongue` = 1 paints the surface it lifts
457
- * into the opening as if it were at this depth — the photograph's brightest
458
- * row — rather than in the shadow of the upper arch it has moved into.
451
+ * into the opening from `from` down to `at` — `at` the photograph's brightest
452
+ * row — rather than in the shadow of the upper arch it has moved into. A span
453
+ * and not a row: read at one row, every height of it took the same texels,
454
+ * and the photograph's tongue drew as vertical streaks down a slab. Squeezed
455
+ * into the span it keeps its crown, rolling off toward the teeth.
459
456
  */
460
- const TONGUE_LIFT_AT = 0.60;
457
+ const TONGUE_LIFT = { from: 0.25, at: 0.60 };
461
458
  /** An `INTERIOR` knot as linear light, at `INTERIOR_GAIN`. */
462
459
  function interiorKnot(rgb) {
463
460
  return new THREE.Color().setRGB(...rgb.map((v) => Math.min(1, (v * INTERIOR_GAIN) / 255)), THREE.SRGBColorSpace);
@@ -489,13 +486,25 @@ function interiorProfile() {
489
486
  * Emitted rather than lit, and entirely: this is sampled light, like the 75%
490
487
  * of the face that is the photograph verbatim, and a key from above lights the
491
488
  * dorsum brightest at its back, which is the one thing a mouth never looks
492
- * like. Both surfaces take the same profile, so her mouth's absence of any
489
+ * like. Both surfaces read the same picture, so her mouth's absence of any
493
490
  * tongue-to-cavity edge carries over; only a raised tongue is told apart, by
494
491
  * `lift`, because a tongue tip at the teeth is what viseme H is.
495
492
  */
496
- function mouthInterior(base, aperture, lift) {
493
+ function mouthInterior(base, aperture, lift, extent) {
497
494
  const material = base.clone();
498
- const profile = interiorProfile();
495
+ // The photograph itself where the asset carries it (`project_albedo.project_interior`),
496
+ // and its midline where it does not.
497
+ const tiled = material.map !== null && extent !== null;
498
+ let paint;
499
+ if (tiled) {
500
+ const [s0, s1, a0, a1] = extent;
501
+ paint = `vec2 tileAt = clamp(vec2((mouthX - ${s0.toFixed(3)}) / ${(s1 - s0).toFixed(3)},`
502
+ + ` (mouthA - ${a0.toFixed(3)}) / ${(a1 - a0).toFixed(3)}), 0.0, 1.0);\n`
503
+ + `vec3 interior = min(texture2D(map, tileAt).rgb * ${INTERIOR_GAIN_LINEAR.toFixed(4)}, vec3(1.0));\n`;
504
+ }
505
+ else {
506
+ paint = interiorProfile();
507
+ }
499
508
  material.onBeforeCompile = (shader) => {
500
509
  shader.uniforms.uAperture = aperture;
501
510
  shader.uniforms.uMouthLift = lift;
@@ -506,16 +515,16 @@ function mouthInterior(base, aperture, lift) {
506
515
  .replace("#include <morphtarget_vertex>", "#include <morphtarget_vertex>\nvMouthAt = transformed.xy;");
507
516
  shader.fragmentShader = shader.fragmentShader
508
517
  .replace("#include <common>", "#include <common>\nvarying vec2 vMouthAt;\nuniform vec4 uAperture;\nuniform float uMouthLift;")
509
- .replace("#include <map_fragment>", "#include <map_fragment>\ndiffuseColor.rgb = vec3(0.0);")
518
+ .replace("#include <map_fragment>", "diffuseColor.rgb = vec3(0.0);")
510
519
  .replace("#include <emissivemap_fragment>", "#include <emissivemap_fragment>\n"
511
- + "float mouthA = (uAperture.y - vMouthAt.y) / uAperture.w;\n"
512
- + `mouthA = mouthA < ${TONGUE_LIFT_AT.toFixed(2)} ? mix(mouthA, ${TONGUE_LIFT_AT.toFixed(2)}, uMouthLift) : mouthA;\n`
513
- + "float mouthS = abs(vMouthAt.x - uAperture.x) / uAperture.z;\n"
514
- + profile
515
- + `interior *= ${OPENNESS};\n`
516
- + `totalEmissiveRadiance = interior * mix(1.0, ${INTERIOR_RIM.to.toFixed(2)}, smoothstep(${INTERIOR_RIM.from.toFixed(2)}, 1.0, mouthS));`);
520
+ + "float mouthA0 = (uAperture.y - vMouthAt.y) / uAperture.w;\n"
521
+ + `float mouthA = mouthA0 < ${TONGUE_LIFT.at.toFixed(2)} ? mix(mouthA0, ${TONGUE_LIFT.from.toFixed(2)}`
522
+ + ` + max(mouthA0, 0.0) * ${((TONGUE_LIFT.at - TONGUE_LIFT.from) / TONGUE_LIFT.at).toFixed(4)}, uMouthLift) : mouthA0;\n`
523
+ + "float mouthX = (vMouthAt.x - uAperture.x) / uAperture.z;\n"
524
+ + paint
525
+ + `totalEmissiveRadiance = interior * ${OPENNESS};`);
517
526
  };
518
- material.customProgramCacheKey = () => "mouth-interior";
527
+ material.customProgramCacheKey = () => (tiled ? "mouth-interior-tile" : "mouth-interior");
519
528
  return material;
520
529
  }
521
530
  /**
@@ -1087,6 +1096,27 @@ const influence = (channel, value) => {
1087
1096
  return lidClosure(i);
1088
1097
  return channel === "squintL" || channel === "squintR" ? squintCurve(i) : i;
1089
1098
  };
1099
+ /**
1100
+ * The jaw a closure lets through. This shell hangs the lower lip from the
1101
+ * mandible (`morphs._mandible`), and the jaw is the slower of the two to settle
1102
+ * (`JAW_RESPONSE_TAU_S`), so into an [m] the lips have shut while the jaw is
1103
+ * still coming up. That pulls the lower lip back off the upper, and the teeth
1104
+ * show through the seam. A real lower lip closes over a jaw that is still
1105
+ * open. A press is what a seal looks like on these channels, so in proportion
1106
+ * to the press past rest the jaw is held to what the lips' own aperture
1107
+ * implies. The cost is a chin that arrives with the lips rather than just
1108
+ * after them, and that is not what a viewer looks at during an [m].
1109
+ */
1110
+ const SEAL_FROM = VISEME_SHAPES.X.mouthPress ?? REST.mouthPress;
1111
+ const SEAL_FULL = VISEME_SHAPES.A.mouthPress ?? 1;
1112
+ function sealed(pose) {
1113
+ const { jaw, mouthOpen = 0, mouthPress } = pose;
1114
+ if (jaw === undefined || mouthPress === undefined)
1115
+ return pose;
1116
+ const seal = Math.min(1, Math.max(0, (mouthPress - SEAL_FROM) / (SEAL_FULL - SEAL_FROM)));
1117
+ const excess = jaw - JAW_OF_OPEN * mouthOpen;
1118
+ return seal > 0 && excess > 0 ? { ...pose, jaw: jaw - seal * excess } : pose;
1119
+ }
1090
1120
  /** One side's weights for the asset's expression maps, in its order. A
1091
1121
  * channel with no side (`mouthPress`) weighs the same on both. */
1092
1122
  const expressionWeights = (pose, side, expression, into) => {
@@ -1247,7 +1277,8 @@ export function createCharacterRig(mount, options) {
1247
1277
  const observer = new ResizeObserver(resize);
1248
1278
  observer.observe(mount);
1249
1279
  resize();
1250
- const applyPose = (pose) => {
1280
+ const applyPose = (given) => {
1281
+ const pose = sealed(given);
1251
1282
  headRollRad = radians(((pose.headRoll ?? 0) / HEAD_CLAMP) * HEAD_DEG.roll);
1252
1283
  // The first pose is a starting point, not a movement: seed the hair where it
1253
1284
  // would have settled, so a tool that sets one pose and screenshots it gets
@@ -1522,8 +1553,10 @@ export function createCharacterRig(mount, options) {
1522
1553
  .filter((e) => Array.isArray(e[1]) && e[1].length === 4) };
1523
1554
  for (const [name, lift] of [["Cavity", { value: 0 }], ["Tongue", tongueLift]]) {
1524
1555
  const mesh = head.getObjectByName(name);
1525
- if (mesh)
1526
- mesh.material = mouthInterior(mesh.material, mouthOpening, lift);
1556
+ if (!mesh)
1557
+ continue;
1558
+ const extent = mesh.userData?.interior_extent;
1559
+ mesh.material = mouthInterior(mesh.material, mouthOpening, lift, Array.isArray(extent) && extent.length === 4 ? extent : null);
1527
1560
  }
1528
1561
  const lower = head.getObjectByName("Teeth_Lower");
1529
1562
  if (lower)
@@ -1 +1 @@
1
- {"version":3,"file":"character-rig.js","sourceRoot":"","sources":["../../client/three/character-rig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"character-rig.js","sourceRoot":"","sources":["../../client/three/character-rig.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voqalize/avatar",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "A JavaScript-programmable talking head for AI voice calls: line-art or 2.5-D faces, server-synced lipsync, state through motion, no runtime dependencies.",
5
5
  "license": "MIT AND CC-BY-4.0 AND Apache-2.0",
6
6
  "author": "Voqalize",
package/src/avatar.js CHANGED
@@ -20,6 +20,7 @@ import { IdleLayer, ListeningEngine } from './idle.js';
20
20
  import { ClipPlayer } from './clips.js';
21
21
  import { ACTIONS, INTERNAL_CLIPS } from './interjections.js';
22
22
  import { VisemeTrack, shapeFor, SILENT } from './visemes.js';
23
+ import { LIP_CONTACT_AIM } from './speech-timing.js';
23
24
  import { SpeechProsody, UNCALIBRATED_HEAD_GAIN } from './prosody.js';
24
25
  import { HEAD_AXES, soften } from './head.js';
25
26
  import { PerformTrack } from './perform.js';
@@ -568,9 +569,9 @@ export function createAvatar(opts = {}) {
568
569
  const target = Object.assign({}, REST);
569
570
  // The head axes again, carrying only what is held (step 6b).
570
571
  const hold = { headYaw: 0, headPitch: 0, headRoll: 0 };
571
- // What the rig is handed: `cur` with the reflex applied to the eyes. The
572
- // same object when there is no reflex.
573
- const shown = vor ? Object.assign({}, REST) : cur;
572
+ // What the rig is handed: `cur` with the reflex applied to the eyes and the
573
+ // lips stopped at shut.
574
+ const shown = Object.assign({}, REST);
574
575
 
575
576
  function applyGaze(blink) {
576
577
  const g = gazeOverrideByClip || gazeName;
@@ -886,6 +887,10 @@ export function createAvatar(opts = {}) {
886
887
  const r = RANGE[c];
887
888
  target[c] = clamp(target[c], r[0], r[1]);
888
889
  }
890
+ // 7a. a bilabial aims past shut (`LIP_CONTACT_AIM`), after the clamp
891
+ // because it is the one target no pose is allowed to hold: only the
892
+ // chase sees it, and step 8b stops what is drawn at shut.
893
+ if (mouth && mouth.letter === 'A') target.mouthOpen = -LIP_CONTACT_AIM;
889
894
  if (il.blink > 0) {
890
895
  target.lidL = Math.max(target.lidL, il.blink);
891
896
  target.lidR = Math.max(target.lidR, il.blink);
@@ -896,11 +901,14 @@ export function createAvatar(opts = {}) {
896
901
  // 8. smooth toward the target — this is where co-articulation happens
897
902
  for (const c of CHANNELS) cur[c] = approach(cur[c], target[c], TAU[c], dt);
898
903
 
899
- // 8b. The vestibulo-ocular reflex. Here and not in the gaze layer because
904
+ // 8b. What is drawn: the lips stop at shut however far past it they aimed.
905
+ Object.assign(shown, cur);
906
+ if (shown.mouthOpen < 0) shown.mouthOpen = 0;
907
+
908
+ // 8c. The vestibulo-ocular reflex. Here and not in the gaze layer because
900
909
  // only here is the head that is actually drawn known: prosody, clips
901
910
  // and idle all land after gaze.
902
911
  if (vor) {
903
- Object.assign(shown, cur);
904
912
  if (!overrides || overrides.pupilX === undefined) {
905
913
  shown.pupilX = clamp(reflexX(cur.pupilX), RANGE.pupilX[0], RANGE.pupilX[1]);
906
914
  }
@@ -22,6 +22,25 @@ export const INTERJECTION_TRACK_TAIL_MS = 60;
22
22
  export const MOUTH_RESPONSE_TAU_S = 0.042;
23
23
  export const JAW_RESPONSE_TAU_S = 0.07;
24
24
 
25
+ /**
26
+ * How far past touching a bilabial aims the lips, in `mouthOpen`.
27
+ *
28
+ * Lips do not ease into a closure; they arrive near their peak speed and
29
+ * compress, because the target they are sent to is a *negative* aperture —
30
+ * the lips would pass through each other if they could (Löfqvist & Gracco
31
+ * 1997, JSLHR 40:877). A first-order chase aimed at zero never touches: it
32
+ * slows to nothing on the way in, and a short [b] in running speech ends with
33
+ * the lips still apart and the teeth showing through the gap. Aimed past
34
+ * zero, the chase crosses it at speed and the drawn aperture stops at shut.
35
+ *
36
+ * The literature gives the direction, not a size in these units. This is the
37
+ * knee measured on the Studio lipsync takes (both engines, the mouth modelled
38
+ * at `MOUTH_RESPONSE_TAU_S`): at 0.1 some bilabials still stopped short, at
39
+ * 0.2 all but a stray one met, and 0.3 met no more. From an ordinary open
40
+ * vowel it touches in τ·ln((0.44 + 0.2) / 0.2) ≈ 49 ms.
41
+ */
42
+ export const LIP_CONTACT_AIM = 0.2;
43
+
25
44
  /**
26
45
  * How far ahead of a rounded vowel the lips begin to round. Anticipatory
27
46
  * rounding is among the longest-range coarticulation there is — 100–300 ms