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>
Maya API 2.0 plugin that maps a skeleton to OpenPose_full keypoints
(BODY_25 or COCO body, 21+21 hand, 70 face) via an openposeCharacter
node, with a live Viewport 2.0 draw override, an "OpenPose" viewport
renderer plus openposeRenderSequence for PNG output, and a PySide2
mapping editor. Face can also be driven procedurally from ARKit's 52
blendshape weights instead of facial joints, for rigs with no facial
skeleton. Includes VS Code debug configs and Maya test scenes/renders.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>