Revisión completa del avatar de Yaquelin
Revisión estructural, visual, facial, de materiales y de compatibilidad con las animaciones compartidas del archivo entregado AvatarYaq.glb. El modelo mira correctamente hacia la cámara y contiene cinco objetos de malla, pero no debe aceptarse todavía: falla el contrato facial ARKit-52, conserva brazos y esqueleto completo, presenta una unión incorrecta entre cuerpo y ropa, y la carga de texturas es excesiva.
SHA-256: 1c3a39417868a6d6135966e16fc008cef5b1469e09879a332ce35ebfac623983
63,211,564 bytes (60.28 MiB)
Modificado: 2026-08-22 18:52:31 UTC
Revisión publicada: 2026-08-22 19:26:53 UTC
Acciones para el equipo de diseño
- Corregir el contrato facial a exactamente ARKit-52. Añadir
mouthLeft,mouthRight,mouthRollLowerymouthRollUpper; eliminar el target adicionalcheekSuck. Mantener exactamente los 52 nombres canónicos, sin aliases ni perfiles CC adicionales. - Corregir mandíbula, dientes y lengua. La malla de dientes/lengua no tiene
jawOpen; por eso la cara y la barbilla bajan mientras los dientes permanecen fijos. Añadir la deformación correspondiente y hacer quejawForward,jawLeftyjawRightmuevan dientes/lengua de forma visible y anatómicamente coherente. Revisar también los extremos demouthCloseymouthFunnel. - Entregar solo el busto requerido. Eliminar brazos, antebrazos, manos, uñas y toda geometría por debajo de la tercera costilla/esternón inferior. El archivo actual tiene una envergadura de 1.434 m y muestra una pose desalineada: la piel de los brazos y las mangas/chaqueta no comparten la misma pose de reposo.
- Reducir el rig al tren superior útil conservando los nombres y convenciones estándar CC4 de los huesos que queden: raíz/cadera, pelvis, columna, clavículas, cuello, cabeza, mandíbula y ojos. Eliminar huesos de piernas, pies, dedos de pies, brazos, manos y dedos que ya no deformen geometría visible. No incluir animaciones en el FBX de entrega.
- Ajustar geometría al presupuesto aprobado. Actualmente hay 52,066 triángulos: cuerpo 22,242; cabello 23,110; ojos internos 640; córneas 640; dientes/lengua 5,434. Mantener los cinco objetos lógicos, llevar el total al rango 60k–80k sin subdivisión inútil y concentrar detalle donde se verá en primer plano.
- Corregir materiales y mapas fuente. Entregar piel de cabeza a 4096×4096; cabello, ojos y dientes a 2048×2048; tangentes/binormales; mapas PBR limpios; máscara SSS de piel; micro-normal con segundo UV; córnea transparente; y opacidad de cabello limpia. El archivo actual usa piel de cabeza 2K, ojos/dientes 0.5K–1K, córneas opacas y cabello totalmente Alpha Blend, lo que produce bordes/sorting deficientes.
- Consolidar materiales. Los cinco objetos se dividen en 20 primitivas/materiales y todos son double-sided. Reducir asignaciones redundantes, usar superficies opacas single-sided donde corresponda y separar únicamente las pasadas necesarias para cabello/transparencia.
Resultado por área
| Área | Resultado | Evidencia | Responsable de la corrección |
|---|---|---|---|
| Validez glTF | PASS | 0 errores de glTF Validator; 18 advertencias. | — |
| Orientación | PASS | Rostro frontal hacia +Z/cámara; vista neutral confirmada. | — |
| Cinco mallas lógicas | PARCIAL | 5 nodos de malla, pero 20 primitivas/materiales y 20 draw calls. | Diseño |
| ARKit-52 exacto | FAIL | 48 nombres canónicos + 1 extra = 49. Faltan 4 y sobra cheekSuck. | Diseño |
| Deformación oral | FAIL | Dientes/lengua sin jawOpen; desplazamientos laterales/forward prácticamente inertes. | Diseño |
| Recorte shoulders-up | FAIL | Brazos, manos, uñas, ropa con mangas y rig completo siguen presentes. | Diseño |
| Pose cuerpo/ropa | FAIL | Brazos de piel y mangas/chaqueta aparecen en poses diferentes en vistas oblicuas y trasera. | Diseño |
| Presupuesto geométrico | FAIL | 52,066, es decir 7,934 triángulos por debajo del mínimo solicitado. | Diseño |
| Texturas fuente | FAIL | Cabeza 2K, ojos/dientes 0.5K–1K; faltan ORM, SSS alpha y UV2 micro-normal. | Diseño |
| Materiales/transparencia | FAIL | Córneas OPAQUE; 8 materiales BLEND; los 20 materiales son double-sided. | Diseño |
| Tangentes | FAIL | 13 primitivas normal-mapped dependen de tangentes generadas por runtime. | Diseño / exportación |
| Meshopt/Draco | PASS | EXT_meshopt_compression requerido; Draco ausente. | Ingeniería conserva el resultado. |
| KTX2 | FAIL | 38 imágenes PNG/JPEG; no existe KHR_texture_basisu. | Ingeniería, no diseño. |
| Raíz facial GW2 | FAIL | No existe Head_01; la escena raíz es Armature. | Ingeniería de empaquetado/configuración. |
| Animación compartida | FAIL ACTUAL | 78/80 nombres coinciden, pero las pistas compartidas usan centímetros bajo escala 0.01 y el modelo usa metros. | Ingeniería; no duplicar clips en el avatar. |
| Identidad publicada | FAIL | El código actual certifica otro SHA-256 y otra raíz facial. | Ingeniería después de aprobar el arte. |
Evidencia visual: geometría y pose




Evidencia visual: rostro


jawOpen = 1. La barbilla se estira, pero los dientes quedan como una línea fija: deformación no aceptable.
mouthSmileLeft = 1. El target existe y deforma el lado correcto.
browInnerUp = 1. El target existe y produce movimiento visible.Inventario visual de todos los morph targets entregados
Neutral más los 49 nombres presentes, cada uno aplicado individualmente a peso 1. Los cuatro targets ausentes no pueden mostrarse porque no existen en el archivo.
Prueba diagnóstica con las animaciones compartidas
Los clips no están duplicados dentro de Yaquelin, lo cual es correcto. El archivo compartido actual contiene 80 pistas de traslación, 80 de rotación y 80 de escala por clip, en centímetros bajo una raíz a escala 0.01. Aplicarlo directamente al avatar en metros lo saca de cámara. Los videos siguientes eliminan temporalmente traslación y escala para mostrar solamente la compatibilidad rotacional; no son movimiento aprobado. Talk_01 gira el rostro fuera de cámara y los otros clips también requieren selección/normalización interna.
Engineering actions — not assigned to the designer
- Accept a corrected source FBX and produce the final self-contained GLB internally. Generate Meshopt geometry and KTX2/Basis textures, pack ORM, insert/qualify the facial-root wrapper, and run the exact ARKit-52 nonzero-delta gate.
- Replace or normalize the shared animation resource. The current file is 0ae5c4db…e37b3347, 3,862,028 bytes, with a 0.01 scene root and translation/rotation/scale tracks. Publish a compatible external shared set; do not duplicate it in Yaquelin.
- Keep Yaquelin facing the call camera during listening and speech. Select appropriate default CC4 clips and/or apply the existing head-facing owner after body motion so
Talk_01cannot turn her to profile. - Update GW2 configuration after art approval: resource ID/SHA-256, facial-root name, head-bone map, external animation resource linkage, KTX2/Meshopt codec profile, byte size, and content publication manifest.
- Correct stale internal/designer documentation that still asks the designer to embed animations or perform web compression.
Technical inventory
File and scene
- glTF 2.0; Blender exporter 5.2.39
- 1 scene; root
Armature - 107 nodes; all names unique
- 1 skin; 101 joints
- 5 mesh nodes; 20 primitives/materials/draw calls
- 40,340 uploaded vertices; 52,066 triangles
- 0 embedded animations
- No embedded punctual light
Compression and memory
- Meshopt present and required
- No Draco
- No KTX2/Basis Universal
- 38 embedded PNG/JPEG images
- 56,684,292 embedded image bytes, 89.7% of the GLB
- Estimated texture upload: 506.0 MiB with mipmaps
- Largest textures: two 4096² jacket maps, not skin
Triangle breakdown
| Mesh | Logical node | Triangles | Target | Result |
|---|---|---|---|---|
CC_Base_Body | Yaquelin_Body | 22,242 | ≤25,000 | PASS |
Hair.001 | Yaquelin_Hair | 23,110 | 25,000–35,000 | LOW |
| Two eye meshes | Corneas + internal eyes | 640 + 640 | 2,000 + 5,000 | LOW |
CC_Base_Teeth | Yaquelin_Teeth_Tongue | 5,434 | ≤8,000 | PASS |
| Total | 52,066 | 60,000–80,000 | FAIL | |
Facial contract details
mouthLeft mouthRight mouthRollLower mouthRollUpper
cheekSuck
The delivered union contains 49 names: 48 canonical ARKit names plus this extra.
The body mesh carries 49 targets; both eye/cornea meshes carry only eyeLookUpRight; teeth/tongue carries tongueOut, jawForward, jawLeft, and jawRight. tongueOut is inert on the body but active on the tongue mesh. Teeth/tongue movement is only 0.000006–0.000022 m for forward/left/right and no jawOpen target exists there.
Complete texture inventory (38 embedded images)
Complete material inventory (20 materials)
Complete 101-joint inventory
glTF Validator warnings
- 0 errors, 18 warnings, 1 informational notice.
- 13 ×
MESH_PRIMITIVE_GENERATED_TANGENT_SPACE: normal-mapped primitives lack tangents. - 5 ×
NODE_SKINNED_MESH_NON_ROOT: each skinned mesh is a child ofArmature; parent transforms may not affect it as expected. - Informational: this validator build cannot inspect
EXT_meshopt_compressioninternals. The model was separately decoded successfully with Meshopt.
Performance measurement and scope
On this worker, a cold local-loopback load in headless Chromium transferred the 63.2 MB GLB in 0.52 s but required 18.62 s before Three.js completed decode, image work, upload and first ready render. This is a controlled diagnostic, not an end-user network benchmark; it demonstrates that most delay is local decode/upload rather than transfer. The review used Three.js 0.170, native GLTFLoader, MeshoptDecoder, ACES Filmic tone mapping and fresh 1200×1200 renders.
Scope limit: this report reviews the delivered asset and its compatibility with the existing shared motion file. It does not claim Audio2Face, voice synchronization, tablet UI, provider transport, or full Didi E2E success. The asset currently fails before those acceptance stages.
English designer summary
Reject this revision and return a corrected FBX/source asset. Preserve the frontal camera orientation and five logical meshes, but remove arms/hands/nails and lower-body content, align skin and clothing in one bind pose, reduce the rig to the useful CC4 upper-body/head/eye hierarchy, and meet the approved 60k–80k close-up geometry target. Correct the facial inventory to exactly native ARKit-52 by adding mouthLeft, mouthRight, mouthRollLower, and mouthRollUpper, removing cheekSuck, and adding anatomically correct jawOpen plus meaningful jaw movement to teeth/tongue.
Supply 4K head-skin and 2K hair/eye/teeth source maps, clean PBR/SSS/micro-normal inputs, transparent corneas, production-quality hair opacity, and exported tangents. Consolidate redundant material slots. Do not embed body animations or perform final web packaging. GW2 engineering owns the external shared-animation normalization and final web packaging.
End of report · source SHA-256 1c3a39417868a6d6135966e16fc008cef5b1469e09879a332ce35ebfac623983