fix: correct rig deformation — arms no longer cross body, feet no longer stretch to center
The model animated but deformed wrong: arms crossed the torso and foot heels stretched to the model's center-bottom. Two root causes, both fixed: 1. Pose mismatch. Sketchfab models are modelled in an A-pose (arms angled down) but the Quaternius library rests in a T-pose. Binding the A-pose mesh to T-pose arm bones misweighted the arms, and the library clips (which rotate arms ~70° down from the T rest) then shoved the already-drooped arms across the body. Fix: autorig.fit_arms_to_mesh() reorients each arm bone chain along the model's real arm direction; merge_animations retargets every clip from the library's T-pose rest onto the fitted rest via world-space constraint bake (Copy Rotation/Location + nla.bake), so world motion is reproduced regardless of the rest difference. 2. Feet-to-center stretch. The library's deform-flagged `root` bone runs up the body centre-line; nearest-bone weighting assigned inner-foot/heel verts to it, stretching them to center when animated. Fix: exclude root/control/mechanism bones from weighting (_NON_DEFORM_HINTS). Also upgraded nearest-bone weighting from rigid (1 bone/vert) to a smooth inverse-distance blend across the nearest 4 bones, so joints deform cleanly. Bone-heat still fails on Miku's joined hair/clothing mesh, so this is the primary path. Verified by rendering Idle/Walk/Run poses (Blender): natural stance, arms at sides swinging correctly, feet planted, proper running stride. Smoke test still 30/30. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Fable 5
parent
22cb0a58b7
commit
9939e7e524
Binary file not shown.
Reference in New Issue
Block a user