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>
Registers the module as PoseRenderer 1.0.0, auto-adding plug-ins/ to
MAYA_PLUG_IN_PATH and python/ to PYTHONPATH. Verified end-to-end
(module discovery, load-by-short-name, python/ on sys.path,
functional smoke test) on both Maya 2022 and 2024. README documents
this as the recommended install path, with the plain
MAYA_PLUG_IN_PATH route kept as a fallback.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bundles debugpy 1.7.0 directly in python/ so "Maya: Attach (debugpy)"
works with no per-machine pip install step. Installed via Maya 2022's
own pip so it resolved a version actually compatible with Python 3.7
(Maya 2022's interpreter), then verified import + listen() succeeds
under all three target Maya Python versions (3.7/3.9/3.10).
Also fixes a latent __file__-under-exec() bug in
start_debug_server.py (same pitfall as Maya's own plugin loader,
never hit until this exercised it) and corrects the README's Maya
Python version claim -- 2022 ships Python 3.7, not 3.9 as previously
stated, which was never independently verified until now.
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>