Three changesets bundled together:
- faceFollow (Camera/Neck) for the ARKit-blendshape face: it can now
rotate with the mapped Body_Neck joint's own local axes instead of
always billboarding toward the camera.
- Fixed a real correctness bug: the face was rendering as isolated
dots. Verified against OpenPose's own published keypoint diagrams
and source (FACE_PAIRS_RENDER_GPU, 63 pairs) that it should render
connected jaw/eyebrow/nose/eye/mouth contour lines; full_limb_data()
was also silently dropping face limbs entirely. Both fixed.
- Default eyes/ears: most rigs (HumanIK included) have no
REye/LEye/REar/LEar joints, only Head/Nose, leaving those 4 slots
permanently invisible. They now get a synthetic head-relative
position when unmapped but Body_Nose is mapped, anchored at and
rotating with the Nose joint's own orientation (not the camera) --
toggleable via useDefaultEyesEars, always overridden by an explicit
joint mapping. Also drops the RShoulder->REar / LShoulder->LEar
lines from BODY_25 and COCO connectivity by request (a
detection-robustness quirk of OpenPose's original network, not real
anatomy) so ears stay leaf points -- a disclosed, deliberate
deviation from upstream's otherwise-verbatim connectivity.
All verified against real Maya (2022/2023/2024), not just logic:
rotation math checked exact, explicit-mapping-overrides-fallback
checked, shoulder-ear removal checked against full_limb_data() output,
rendered test scenes visually confirmed against OpenPose's own
reference diagrams.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>