Skip to content

v4.0.0 — motion worth keeping

Choose a tag to compare

@AmyangXYZ AmyangXYZ released this 04 Aug 05:48
· 260 commits to main since this release

Up to 3.x this was proof that MMD mocap could run in a browser at all: a pose followed a person, live, and the file it wrote was rotations. 4.0 is about the capture being right — the body stands on the ground, joints bend the way joints bend, the model's own geometry keeps limbs out of itself, and a bad frame of detection is refused rather than displayed.

The body is placed, not just posed
センター carries a height and the leg IK bones carry positions, so crouches, level changes and weight drops survive into the file. Placement is exact rather than inferred: the legs are walked forward from the hips and the body is dropped until its lowest part rests where it rests in the model's bind pose. Feet, or hips when the feet are not under you — which is what stops a floor roll from bouncing the model. Exports keyframe 足IK and switch leg IK on, so a motion is a native MMD leg rig, editable the way MMD users expect.

Two honest limits: jumps do not register (both feet airborne is indistinguishable from standing in hip-centred landmarks), and once the torso leaves vertical the height is held rather than guessed.

Anatomy the solver now respects

  • The clavicle takes its share of arm elevation, roughly 2:1 with the humerus. hung straight off 上半身 before, so the arm performed every raise alone — impossible past ~30°, and it looked it.
  • 穿模 is answered with the model's own rigid bodies. An MMD model already carries its author's approximation of the character as capsules; MMD never tests them against each other, which is exactly how a hand ends up inside a chest.
  • Finger bend is measured about its own axis instead of borrowing the total rotation angle, so splay no longer folds knuckles backwards.

Signal quality

  • Hands are gated on real confidence. MediaPipe's hand landmarks carry no visibility field, and a lost hand collapses toward the origin rather than vanishing — still 21 valid-looking points.
  • Smoothing reads true angular velocity, and refuses accelerations no limb could make. A speed-adaptive filter is otherwise defenceless against a one-frame outlier, which looks exactly like a fast move.
  • Exports smooth in both directions: a Savitzky-Golay pass over the finished take — 59% less jitter, 99% of peak amplitude kept, zero phase shift.

Fixes

  • Stills are stills: the landmarker resets between images, and the pose applies unfiltered and untweened.
  • Video duration is resolved before use; Infinity from WebM would have made the conversion loop run forever.
  • Space toggles playback; buttons release focus after a mouse click.
  • The tuning panel is gone. The filter constants are the solver's business.