mixamo-llm-mocap README

The project's README from github.com/squall01337/mixamo-llm-mocap. As one markdown file: README.md.

Mixamo LLM Mocap

Turn any locked-camera video — filmed or AI-generated — into a clean FK animation on any Mixamo character. One performer, or two fighting each other. No mocap suit, no manual keyframing, and every stage scriptable enough that an AI agent can run the whole loop.

license blender gpu agent

showcase

Left: AI-generated source video. Right: the automatic retarget on a Mixamo character in Blender — 10 seconds, nine punches, a slip under and a high side kick, straight through the pipeline.

showcase — two fighters

Two performers, one plate, one pass. The left fighter throws four punches and a roundhouse; the right one blocks, folds over the body shot and ducks under the kick. Both tracks are split out of the same video by screen side, retargeted onto two Mixamo characters with different proportions — Y Bot and Ninja — and placed at the distance the performers actually stood, measured from the footage.

How it works

video plate (locked camera, T-pose bookends)
   │
   ├─ 1. estimate_pose_gvhmr.py    GVHMR (SMPL-X mesh recovery) → 33 landmarks + pelvis height
   ├─ 2. analyze_landmarks.py     numeric beat detection → you write a beat sheet from NUMBERS
   ├─ 3. action_specs/<name>.json  the motion as data: support schedule, rest blends, fists
   ├─ 4. lift_to_mixamo.py         direction-preserving retarget onto YOUR rig's proportions
   ├─ 5. apply_mixamo_fk.py        FK aim + foot planting, inside live Blender (via Blender MCP)
   ├─ 6. qa_clip.py                automated gate: no explosions, no pops, no foot skate
   ├─ 7. compare_reference.py      frame-by-frame vs the video → which windows still differ
   ├─ 8. compare_pair.py           two-character plates: separation, reach, intrusion
   ├─ 9. run_in_blender.py contact real mesh-vs-mesh collision between two characters
   └─ 10. render_preview.py        preview + side-by-side showcase video

With two performers in the plate, stages 1–7 run once per fighter (--person left|right splits the tracks), setup_duo.py builds one scene holding both characters, and compare_pair.py checks what only exists when there are two of them: whether they stand, reach and miss each other the way the performers did.

The estimator provides mesh-quality joints; the lift keeps its segment directions but rebuilds every position from your character's measured bone lengths; the apply plants feet by solving hip height (never IK — Mixamo rigs are FK-only); the spec contributes only what a video cannot know: which foot is the support in each phase (including "none" for airborne beats), when fists close, where the clip locks back to rest.

Why it's different

Quickstart

  1. Install — docs/INSTALL.md walks through every dependency (list below).

  2. Build your rig scene:

    blender --background --python pipeline\setup_rig.py -- --fbx ybot.fbx --out ybot_rest.blend
    
  3. Run a plate (Blender open on the scene; plate rules in docs/PROMPTING.md):

    tools\GVHMR\.venv\Scripts\python.exe pipeline\estimate_pose_gvhmr.py --video plates\<name>\<name>.mp4 --out plates\<name>\landmarks.json
    tools\GVHMR\.venv\Scripts\python.exe pipeline\analyze_landmarks.py --landmarks plates\<name>\landmarks.json
    # beat sheet → action_specs\<name>.json  (schema: docs/PIPELINE.md)
    tools\GVHMR\.venv\Scripts\python.exe pipeline\lift_to_mixamo.py --spec action_specs\<name>.json
    python pipeline\run_in_blender.py all action_specs\<name>.json
    tools\GVHMR\.venv\Scripts\python.exe pipeline\qa_clip.py --spec action_specs\<name>.json
    tools\GVHMR\.venv\Scripts\python.exe pipeline\compare_reference.py --spec action_specs\<name>.json
    tools\GVHMR\.venv\Scripts\python.exe pipeline\render_preview.py action_specs\<name>.json --showcase
    

    compare_reference.py tells you which frame windows still differ from the video; the last command produces preview.mp4 and the side-by-side showcase.mp4 — the same format as the demo GIF above.

    Two-performer plates add --person left|right to the estimate, one spec per fighter, and a compare_pair.py run — see docs/PIPELINE.md section 9.

  4. Iterate with docs/PIPELINE.md and docs/PITFALLS.md.

What you need to bring (and where to get it)

What Where Notes
A Mixamo character — any model mixamo.com → Characters → download FBX Binary, T-pose Adobe's terms don't allow redistributing them; setup_rig.py builds and validates the scene from your download
Blender 5.1+ blender.org
Blender MCP add-on (official, Blender Lab) blender.org/lab/mcp-server enable Allow Online Access; the apply talks to its socket
GVHMR (the pose estimator — not in this repo) github.com/zju3dv/GVHMR clone into tools/GVHMR; install per docs/INSTALL.md — including a working Windows recipe (docs/requirements_gvhmr_windows.txt + prebuilt pytorch3d wheel)
GVHMR checkpoints (~5 GB) HuggingFace mirror exact curl commands in docs/INSTALL.md
SMPL-X body model smpl-x.is.tue.mpg.de free research registration → download SMPL-X v1.1, place SMPLX_NEUTRAL.npz as shown in docs/INSTALL.md
GPU ~8 GB VRAM developed on an RTX 4080

Docs

Doc What it covers
docs/INSTALL.md Every dependency, step by step, Windows-proven
docs/PIPELINE.md The operational loop + the action_spec schema, field by field
docs/RIG.md Mixamo rig conventions: spaces, units, the rules that must never break
docs/PITFALLS.md Every mistake this pipeline's development paid for, so you don't pay twice
docs/PROMPTING.md Writing gen-video plate prompts that survive retargeting

License

MIT — see LICENSE, including third-party notes (Mixamo, GVHMR, SMPL-X, Blender MCP).

mixamo-llm-mocap (squall01337/mixamo-llm-mocap)

Searching Database…

这是什么?Mixamo LLM Mocap 能把任何固定机位的视频——实拍或 AI 生成都可以——转换成任意 Mixamo 角色上干净的 FK 动画,它使用 GVHMR 姿态估计器、由规格驱动的重定向步骤和 Blender MCP 应用阶段。它的设计目标是让 AI 智能体能端到端跑完整个流水线。
这是 Blender 插件,还是一组命令行脚本?它是一条用于姿态估计、重定向和质量检查的 Python 命令行脚本链,最后的应用步骤通过官方 MCP 插件用 socket 连接进 Blender——没有任何需要安装的即点即用 Blender 插件。
怎么把一段完整素材跑过整条流水线?按 docs/INSTALL.md 安装依赖,运行 setuprig.py 用你自己下载的 Mixamo 角色构建绑定场景,然后在 Blender 中打开该场景并依次运行流水线各阶段;comparereference.py 会对照源视频检查重定向效果,最后一条命令生成 preview.mp4 和并排对比的 showcase.mp4。
除了本仓库还需要安装什么?带官方 MCP 插件的 Blender 5.1+、GVHMR 姿态估计器(单独克隆并按 docs/INSTALL.md 安装)、它约 5GB 的检查点,以及通过免费研究注册获取的 SMPL-X 人体模型。
开始之前有什么要注意的吗?Mixamo 角色不随项目提供——Adobe 的条款禁止再分发它们,所以你必须从 mixamo.com 自己下载 FBX,而且 GVHMR 及其检查点也要另行获取和配置。
安装支持 Windows 吗,还是只有 Linux/macOS?明确支持 Windows——docs/INSTALL.md 包含一份可用的 GVHMR Windows 安装方案,配有专门的 requirements 文件和预构建的 pytorch3d wheel。
姿态估计需要很强的 GPU 吗?需要——GVHMR 估计器大约需要 8GB 显存;该项目在 RTX 4080 上开发和测试。
它是不是只能处理每个视频一位表演者?不是——当画面中有两位表演者时,setupduo.py 和 comparepair.py 会按屏幕左右侧拆分轨迹,分别重定向到独立的 Mixamo 角色,并逐帧对照素材验证击打距离、间距和肢体碰撞。
流水线中一个新动作由什么定义?一个小小的 JSON“actionspec”,声明每个阶段(包括腾空节拍)由哪只脚支撑、拳头何时握紧,以及片段何时锁定回静止姿态——不需要编写动画代码。
它如何在重定向结果交付之前发现问题?数值化的 QA 关卡会标记骨骼爆开、髋部跳动、脚步滑移和静止姿态损坏等问题,comparereference.py 还会对照源视频测量手部高度、肢体间距等指标,精确报告哪些帧区间出现偏差。
它能用于任何 Mixamo 角色吗,还是只支持特定角色?任何 Mixamo 角色——setuprig.py 会用你自己下载的 Mixamo FBX 构建并测量场景(静止姿态、骨骼长度、髋部和地面高度),后续每个阶段都会读取这份测量档案。
Size
11.4 MB
Stars
374
Updated
CommitSep 26
Age
2mo
Commits · 90 Days