教程教程阅读约 5 分钟

在 Claude Code 中给 3D 模型绑骨和做动画: 给智能体一个绑骨工具,而不是 Blender 脚本

添加 afk-rig MCP 服务器后,Claude Code 一次工具调用就能给角色、动物或道具绑骨,然后检查每个动画,修好出错的地方。

localhost:5173
claude · ~/game

> 把 models/fox.glb 按四足动物绑骨,让它在场景里跑起来

● rig_model (path: "models/fox.glb", type: "fox", animations: ["Idle", "Walk", "Run"])

⎿
models/fox.rigged.glb · type fox · 3 animations · charge free

● Update (src/scene.js)

⎿
Updated src/scene.js with 9 additions

● 狐狸已经绑好骨骼,正在奔跑。文件里还有 Idle 和 Walk,可以直接混合。

添加了 afk-rig 的 Claude Code。这只狐狸是由 afk.ai 绑骨的模型,正在 three.js 中播放它的 Run 动画。

让 AI 编程智能体“给这个模型绑骨,让它走起来”,它通常会试图全部自己动手:写一个 Blender Python 脚本来放置骨骼,运行自动权重,给行走循环打关键帧,渲染测试,膝盖朝反方向弯时再来一轮。这可能耗掉整个会话,效果却还是不对。

afk-rig MCP 服务器则给了它一个工具。rig_model 把模型发送给与 afk.ai/rig 相同的 AI 绑骨引擎,再写回一个 GLB,里面有骨架、蒙皮权重和该体型的全部动画,通常不到一分钟。智能体就能把精力花在它擅长的地方:在你的游戏里播放这些动画的代码。

为什么手动绑骨对智能体来说很难

绑骨看起来像编程任务,但其中大部分工作,其实是对一个智能体看不见的形状做出判断。它只能根据顶点坐标和包围盒来工作,而每个错误都要等到东西动起来才会暴露。

关节
肩膀、髋部和膝盖在哪里全靠猜。在风格化角色、狗或龙身上,这些猜测经常出错,而一个放错位置的关节会毁掉之后的每一个动画。
蒙皮权重
Blender 的自动权重在很多实际网格上都会失败,尤其是那些有分离部件、孔洞或重叠部分的网格,报错“Bone Heat Weighting: failed to find solution for one or more bones”。然后智能体就会在它无法用肉眼检查的网格修复上反复打转。
动画
要做出可信的行走、奔跑和待机动画,需要大量关键帧,而且得在看不到效果的情况下做对。每换一种体型都得从零开始。
成本
每次尝试都要耗费时间和 token,而且同一个模型跑两次,结果也很少一样。

换成一次工具调用

rig_model 把模型交给 afk.ai 的绑骨引擎。一个经过训练、能找出身体部位的 AI 会放置专为这种体型打造的骨架,蒙皮权重来自一套在实际网格上调校过的流程,而动画正是为这套骨架制作的,所以无需重定向就能贴合。

拿回来的是一个标准 GLB,可以在 three.js、Godot、Unreal、Unity(借助 glTFast)和 Blender 中加载。人类有 66 根骨骼(每根手指都有)和 594 个动画;其他 14 种体型各有 12 到 128 个。同一体型的每个模型都有相同的骨骼名和动画名,所以一个控制器就能驱动所有模型。

智能体手动绑骨智能体调用 afk-rig
工作量写脚本、测试渲染、修复,往往要好几轮一次工具调用
耗时从几分钟到一个漫长的会话通常 30 秒到 1 分钟
骨架根据坐标猜测由经过训练、能找出身体部位的 AI 放置
动画一次打一个关键帧动画每个都为该体型制作
  • 网格:绑好骨骼的骑士,由 afk-rig 渲染

    网格

    23,293 个顶点、6 个材质和 14 张纹理,保持上传时的原样

  • 骨架:绑好骨骼的骑士,由 afk-rig 渲染

    骨架

    66 根骨骼,每根手指都有,所有人形角色的骨骼名称都相同

  • 蒙皮权重:绑好骨骼的骑士,由 afk-rig 渲染

    蒙皮权重

    每个顶点最多受 4 根骨骼影响,这里每根骨骼一种颜色

  • 593 个动画:绑好骨骼的骑士,由 afk-rig 渲染

    593 个动画

    该体型的全部动画;这是 Sword_Attack 的第 0.7 秒

knight.rigged.glb 里面的内容,由 afk-rig render 绘制:和 AI 智能体从 render_rig 拿到的图片一样。

配置方法

在开发者控制台创建一个 API 密钥:用 Google 账号登录,然后点 Create key。再把服务器添加到 Claude Code:

claude mcp add afk-rig \
  --env AFK_API_KEY=afk_... \
  -- npx -y afk-rig mcp

在 Cursor、Windsurf、Claude Desktop 和其他 MCP 客户端中,把它添加到 mcp.json:

{
  "mcpServers": {
    "afk-rig": {
      "command": "npx",
      "args": ["-y", "afk-rig", "mcp"],
      "env": { "AFK_API_KEY": "afk_..." }
    }
  }
}

密钥保存在服务器的环境变量里,所以永远不会出现在对话中。智能体会得到十个工具:五个在 afk.ai 的云端绑骨,五个在你的电脑上检查和修复绑好骨骼的模型。

afk-rig · 10 toolsconnected

在 afk.ai 云端使用你的密钥

  • rig_model给 .glb、.gltf 或 .fbx 绑骨,并写出绑好骨骼的 .glb
  • image_to_character输入图片,输出绑好骨骼的角色
  • list_body_types15 种体型及各自的动画
  • get_account本月剩余的绑骨次数
  • rig_status查看在别处启动的绑骨

在你的电脑上免费,无需密钥

  • inspect_rig每个动画哪里有问题,最严重的排在前面
  • render_rig任意时刻的画面,上面叠加绘制骨架
  • adjust_animationafk.ai/rig 的动画控件,并让手臂不穿进身体
  • fix_stretching修复运动时撕裂的蒙皮
  • fix_spot重新计算某个部位的蒙皮权重
npx afk-rig mcp 给智能体提供的工具。每次修复都会写出一个新文件,所以原来的文件永远不会改变。

可以这样问它

添加之后,用日常语言提问即可,智能体会自己选择工具、体型和动画:

  • “把 models/knight.glb 按人类绑骨,在 three.js 场景里播放它的剑术连招。”
  • “把 models/fox.glb 按四足动物绑骨,只要 Idle、Walk 和 Run,然后做一个能在它们之间切换的 Godot 场景。”
  • “把 assets/props 里的每个 .glb 都按物体绑骨,带上 Bounce 和 Spin,用作金币和宝石拾取物。”
  • “dragon 类型有哪些动画?给 dragon.glb 绑骨并加上飞行类动画,再为它们设置一个 AnimationPlayer。”
  • “给 horse.glb 绑骨,以 Generic 绑定类型导入 Unity,并用 Walk、Trot 和 Run 搭建一个 Animator Controller。”
  • “用 concept/hero.png 做一个绑好骨骼的角色。”还没有模型?image_to_character 能用一张图片生成模型并绑骨,大约需要 2 到 3 分钟。
  • humanSword combo
  • foxRun
  • objectBounce
  • dragonFly
前四个请求在 afk.ai 绑骨的模型上得到的结果:每种体型都有自己的动画。

检查并修复它做出来的东西

另外五个工具在你的电脑上运行,用的是 afk.ai/rig 自己的 Adjust 代码:不需要密钥,不收费,也不上传任何东西。inspect_rig 会找出陷进地面的脚、撕裂的蒙皮和穿进身体的手臂,最严重的排在最前。render_rig 能画出任意动画的任意时刻,让智能体亲眼看看。adjust_animation、fix_stretching 和 fix_spot 会把修复结果写进一个新文件 -v2.glb,原来的文件永远不变。

这样智能体就有了一个能自己跑起来的循环:检查,渲染最糟糕的那一刻,改一处,再检查。

claude · ~/game

> 检查骑士的 Walk,修好有问题的地方

● inspect_rig (file: "knight.rigged.glb", animations: ["Walk"])

⎿
Walk: arms or hands through the body in 18 of 51 frames (deepest: hand_l into calf_l, 4.6% of its height, at 1.633 s)

● adjust_animation (animations: ["Walk"], keep_arms_out: 1)

⎿
knight.rigged-v2.glb · arms_through_body_frames [18, 0]

● render_rig (animation: "Walk", time: 1.633) × 2

⎿
修复前后对比,见右侧

● 在约三分之一的行走过程中,持盾的手臂穿进了左腿。已修复,见 knight.rigged-v2.glb。

修复前:骑士 Walk 动画的第 1.633 秒,由 afk-rig 渲染

修复前: 膝盖穿过了盾牌

修复后:骑士 Walk 动画的第 1.633 秒,由 afk-rig 渲染

修复后: 盾牌垂在腿外,不再穿模

在上面那个骑士上的一次真实运行。这些工具在你的电脑上运行,免费,不需要 API 密钥,也从不修改它们读取的文件。

剩下的交给智能体

绑骨是智能体花力气最多、成果却最少的环节。而“接线”才是它的强项:three.js 的 AnimationMixer、Godot 的 AnimationPlayer、Unity 的 Animator Controller、动画片段之间的混合,或者一个给关卡所需的每个模型绑骨的脚本。一个绑好骨骼的文件,只差几行代码就能动起来:

const gltf = await new GLTFLoader().loadAsync('fox.rigged.glb')
scene.add(gltf.scene)
const mixer = new THREE.AnimationMixer(gltf.scene)
const run = THREE.AnimationClip.findByName(gltf.animations, 'Run')
mixer.clipAction(run).play() // then mixer.update(delta) every frame

想了解 API 能绑哪些模型(包括物体),请看用 afk.ai 绑骨 API 能做什么。

常见问题

除了 Claude Code,这个 MCP 服务器还能用在其他客户端上吗?

能。它是基于 stdio 的标准 MCP 服务器(npx afk-rig mcp),所以 Cursor、Windsurf、Claude Desktop 和其他 MCP 客户端都可以用同样的命令运行它,只需在它的环境变量中设置 AFK_API_KEY。

绑骨在哪里进行?

rig_model 和 image_to_character 在 afk.ai 的服务器上运行:工具会上传文件,等待完成,再把结果写入你的项目。每个模型都会先经过成人内容检查,未通过检查的模型会直接失败,不收任何费用。检查和修复工具在你的电脑上运行。

它能给哪些模型绑骨?

GLB、内嵌所有资源的 glTF 或 FBX,最大 200 MB,Draco 和 meshopt 压缩的文件也可以。选择与模型匹配的体型:human、fox(四足动物)、horse(有蹄动物)、bird、dragon、kaiju(恐龙)、spider、insect、snake、fish、turtle、kangaroo、frog、ghost 或 object。

费用是多少?

每月前 3 次绑骨免费,和 afk.ai/rig 的免费额度相同。之后,绑骨从 API 积分中扣除,详见 API 价格。绑骨失败不收费,检查和修复工具始终免费。

绑好骨骼的模型可以商用吗?

可以。骨架和动画采用 CC0 授权,你的模型仍归你所有。

给你的智能体一个绑骨工具

该体型的全部动画,打包在一个 GLB 里,可以从 Claude Code、Cursor、终端或你的代码中发起。

获取 API 密钥

更多教程