mikumikudance 中文文档 下载 App

MMD 的 IK 与 FK — 反向动力学让手脚自动跟随

一句话概念

IK = 反向动力学(Inverse Kinematics):你动末端(手腕、脚踝),中间的关节(肘、膝)自动弯曲到位。FK = 正向动力学(Forward Kinematics):你动肩膀,整条手臂跟着转——每个关节独立,需要手动调每个部位。

直觉理解

想象你要摆出一个姿势:

FK 方式(不推荐)

从零开始:

  1. 旋转肩膀 → 手臂抬起来一点
  2. 旋转肘部 → 小臂弯曲
  3. 旋转手腕 → 手掌翻过来
  4. 三个部位都要独立调整 → 繁琐

IK 方式(推荐)

直接操作末端:

  1. 拖着手腕骨骼到目标位置 → 肩膀和肘自动弯曲到位
  2. 调整手腕的旋转 → 手掌角度微调

IK 的便利性是压倒性的——MMD 默认就是 IK 模式。

MMD 中哪些骨骼有 IK

几乎所有社区 PMX 模型都给四肢末端骨骼设置了 IK:

部位IK 末端骨骼自动跟随
左臂左手/手首_L肘_L → 肩_L
右臂右手/手首_R肘_R → 肩_R
左腿左脚/足首_L膝_L → 股_L
右腿右脚/足首_R膝_R → 股_R

模型作者用关节约束告诉物理引擎:"如果手移动,让肘也跟着弯曲,直到肩"。

IK 链长度

每个 IK 骨骼有一个"链长度"参数——从末端往上计算,影响多少根骨骼。

链长度影响范围适用场景
2肘 + 肩手臂弯曲不影响锁骨
3肘 + 肩 + 锁骨手臂大幅抬起时锁骨也跟着动
1只有肘手腕微动手肘弯曲

链长度由模型作者设置,通常不需要用户改。如果 IK 弯曲范围太大,可以把链长度调小(限制影响范围)。

什么时候需要关掉 IK

场景一:摆精确姿势

IK 会自动算关节角度,但有时你想要一个特定的、非自然的关节弯曲(比如手臂不自然地伸直)。关掉 IK → FK 模式 → 手动调每根骨骼。

场景二:修正 IK 扭曲

在极端姿势下,IK 可能让关节朝奇怪的方向弯曲(比如肘往里拐而不是往外拐)。

修复方法:

  1. 暂时关闭 IK
  2. 手动把关节转到正确方向
  3. 打开 IK,微调末端位置
  4. 必要时调整角度限制

场景三:手部精细控制

手指的骨骼通常没有 IK——手指是独立 FK 骨骼,需要单独每根手指调整。这是 MMD K 帧里最繁琐的部分(幸好大多数 VMD 已经包含了手指动作)。

如何开关 IK

全局 IK 开关

部分版本在时间轴控制面板上有 IK 开关——关掉后所有骨骼都是 FK 模式。适合做 FK 动作(如某些特定姿势)。

单骨骼 IK 开关

在骨骼操作面板里,选中 IK 骨骼(如手腕),可以单独关闭它的 IK。关闭后:

IK 和关键帧

IK 的状态(开/关)可以被关键帧记录——你可以在某个帧打开 IK 摆姿势,在下一帧关闭 IK 手动调细节。

实操流程

帧 0(IK 开)→ 拖手腕到目标位置,肘自动弯曲,Register
帧 5(IK 关)→ 手动微调肘的角度,Register
帧 10(IK 开)→ 继续调整手腕位置,Register

角度限制

模型作者在设置 IK 时通常会加角度限制——比如肘不能反向弯曲、膝不能弯到脚后面。

但有些模型(尤其是老模型)的角度限制没设好,IK 会算出"不可能"的姿势。这时:

  1. 换模型(最简单)
  2. 用 PMX Editor 手动调整角度限制
  3. 关闭 IK 手动 K 帧

IK 与物理

IK 影响的是运动学刚体(骨骼直接驱动的身体部位)。动力学刚体(头发、裙摆)不参与 IK,它们由 Bullet 引擎物理模拟。

但有个间接关系:当 IK 让身体做出一个姿势,物理引擎就会以这个姿势为基础开始模拟头发和裙摆的运动。

MikuMikuMoving 里的 IK

社区分支 MikuMikuMoving 对 IK 系统做了大幅升级:

如果你经常需要精确 IK 控制,可以试试 MikuMikuMoving。

典型 IK 误区

误区一:IK 是万能的

IK 只解决"从末端反推关节"的问题,但不解决所有姿势问题——比如手指、腰部扭转、脖子的复杂动作还是需要 FK 手动调。

误区二:IK 永远开着

在某些快速动作(如踢脚)里,IK 可能让脚"滑"到地面以下——关掉 IK,手动把脚放到地面上,再开 IK 微调。

误区三:链长度调得越大越好

链长度太大 → 整个身体跟着动(包括头、躯干),反而不可控。保持默认值就好。

实操例子:让角色踩到地面上

问题:角色的脚"飘"在地面以上几厘米。

解决:

  1. 打开 IK
  2. 选中脚踝骨骼
  3. 向下拖直到脚踝接触地面(Y 轴=0 平面)
  4. Register 关键帧
  5. 如果膝盖弯曲得太厉害,减小 IK 链长度或微调膝骨骼角度