正向动力学(FK):像玩积木一样让 3D 角色动起来的最简单方法

发布时间:2026/5/28 17:49:21

正向动力学(FK):像玩积木一样让 3D 角色动起来的最简单方法 写在最前面欢迎回来嘿小朋友又见面啦之前我们一起认识了——骨骼层级3D 角色身体里看不见的骨头家谱蒙皮让皮肤跟着骨头动的贴皮魔法今天我们要学一个新的魔法——正向动力学FKForward Kinematics听到这个名字你可能已经吓到了——“正向”“动力学”这听起来像是物理学家才能懂的东西吧别怕我保证今天讲完之后你会觉得——“啊就这这也太简单了吧”因为 FK 真的非常非常简单它就是——像玩积木一样一根一根地转动骨头听不懂没关系让我从头讲起。准备好了吗我们出发第一章先来理解动力学在讲 FK 之前我们要先搞清楚——动力学Kinematics是什么意思听起来超级吓人对吧但其实它的意思很简单——动力学就是研究东西怎么动的学问。就这么简单比如一个球扔出去它怎么飞 → 动力学一辆汽车转弯它的轮子怎么转 → 动力学一个人挥手他的手臂怎么动 → 动力学凡是研究**“东西怎么动”**的都是动力学。那正向是什么意思“正向”Forward的意思是——从前往后按顺序来。举个例子你想从家走到学校——正向思维先穿鞋然后出门然后走路最后到学校。反向思维我要到学校所以我必须走路所以我必须出门所以我必须穿鞋。正向 从原因到结果从开始到结束。所以正向动力学就是……把上面两个意思合起来——正向动力学FK 按顺序研究东西怎么动。具体到 3D 角色身上就是——从最根的骨头开始按顺序转动每一根骨头让角色摆出姿势。听起来好像还是有点抽象没关系下面我用最生动的例子讲给你听第二章用机器人手臂理解 FK让我们想象一个最简单的机器人手臂。它有 3 个关节[肩膀] ━━━ [手肘] ━━━ [手腕] ━━━ [手]每个关节都可以转动。现在请你想象一下——你是这个机器人的操控员你想让机器人的手去抓桌子上的一个苹果 。你会怎么操控这个机器人方法一FK 的方法一根一根地转动关节第一步先转动肩膀——让整条手臂朝苹果的方向。注意肩膀一转整条手臂手肘、手腕、手都跟着朝那个方向了肩膀转 30 度 → ╲ ╲ 整条手臂朝右下方 ╲ ● ← 苹果第二步再弯曲手肘——让前臂靠近苹果。注意手肘一弯前臂、手腕、手都跟着移动了肩膀转 30 度 ╲ ╲ ┘ ← 手肘弯曲 60 度 \ \ ● ← 苹果第三步再转动手腕——让手对准苹果。第四步合拢手指——抓住苹果这就是 FKFK 就是这种从根到末梢一根一根地转动骨头的方法它就像——搭积木先放底下那块再放上面那块。挂灯泡先挂主线再挂分支。‍‍拍全家福先让爷爷站好再让爸爸站在爷爷旁边再让你站在爸爸旁边。一切都是按顺序、从前往后的第三章FK 的传递魔法FK 有一个超级重要的特点——父亲骨头动了所有孩子骨头自动跟着动这就是上次我们讲骨骼层级时学到的连锁反应让我们仔细看看回到机器人手臂肩膀 (父亲) └── 手肘 (儿子) └── 手腕 (孙子) └── 手 (曾孙)情况 1只转肩膀 30 度——肩膀转了 30 度手肘跟着转了 30 度因为它是肩膀的儿子手腕跟着转了 30 度因为它是肩膀的孙子手跟着转了 30 度因为它是肩膀的曾孙整条手臂一起转了 30 度情况 2在已经转过 30 度的情况下再弯曲手肘 60 度——肩膀保持 30 度手肘自己又转了 60 度手腕跟着多转了 60 度继承了手肘的旋转手跟着多转了 60 度手肘以下的部分一起多转了 60 度关键魔法每根骨头的实际姿势 它自己的旋转 所有祖先骨头的旋转也就是说——手的最终位置 肩膀的转动 手肘的转动 手腕的转动 手自己的转动手腕的最终位置 肩膀的转动 手肘的转动 手腕自己的转动手肘的最终位置 肩膀的转动 手肘自己的转动肩膀的最终位置 肩膀自己的转动越往下的骨头受到的祖先影响越多这就是 FK 的核心数学第四章用全家福来理解 FK如果你还觉得有点抽象让我用一个超级生活化的例子想象一次家庭聚餐爷爷决定带全家出去吃饭。家庭关系爷爷 ├── 爸爸 │ └── 你 └── 叔叔 └── 表弟第一步爷爷决定去东边的餐厅。爸爸怎么办→跟着爷爷去东边你怎么办→跟着爸爸去东边叔叔怎么办→跟着爷爷去东边表弟怎么办→跟着叔叔去东边爷爷一动全家都跟着动第二步爸爸决定先去公园转一圈再去餐厅。你怎么办→跟着爸爸去公园叔叔会跟着吗→不会叔叔不是爸爸的孩子爸爸一动只有你跟着动叔叔不受影响。第三步你想绕道去买冰淇淋。爸爸会跟着吗→不会爸爸是你的父亲不是孩子你一动没人跟着你你是最末梢的。这就是 FK正向动力学的工作方式完全和家庭聚餐一样父亲动 → 所有后代跟着动。“孩子动 → 不会影响父亲和兄弟”。只不过把家人换成了骨头第五章FK 在 3D 软件里是怎么用的那么动画师在做动画的时候是怎么用 FK 的呢动画师的工具3D 软件比如 Blender、Maya、3ds Max里有一个FK 控制器——它通常长得像一些小圆环套在每根骨头上○━━[肩膀骨]━━○━━[上臂骨]━━○━━[前臂骨]━━○ ↑ ↑ ↑ ↑ 肩膀控制器 肘部控制器 腕部控制器 手部控制器动画师点击控制器然后转动它——对应的骨头就会跟着转动动画师的工作流程让我们看看动画师是怎么用 FK 做一个挥手动作的第一帧角色站着手在身体两边肩膀控制器0 度肘部控制器0 度腕部控制器0 度第 30 帧举起手臂肩膀控制器转 90 度手臂抬起来肘部控制器0 度腕部控制器0 度因为是 FK肩膀一转整条手臂都抬起来了第 60 帧弯曲手肘肩膀控制器保持 90 度肘部控制器转 60 度前臂朝脸方向腕部控制器0 度第 90 帧挥动手腕肩膀控制器保持 90 度肘部控制器保持 60 度腕部控制器转 30 度手向左挥第 120 帧挥回来腕部控制器转到 -30 度手向右挥动画师就这样一根骨头一根骨头地控制做出了挥手动作关键帧 FK记得我们以前讲过关键帧动画吗动画师不需要做每一帧——只需要做几个关键姿势电脑会自动算出中间的所有帧关键帧 FK 高效的角色动画第六章FK 的优点FK 之所以被广泛使用是因为它有很多优点优点一超级简单FK 的逻辑就是转动骨头简单到小学生都能理解不需要复杂的数学也不需要复杂的算法——只要按顺序转动每根骨头就能得到想要的姿势优点二精确控制FK 让动画师能精确控制每一根骨头每根骨头的角度都由动画师亲手设定——想转多少就转多少完全可控优点三自然流畅FK 做出来的动作看起来非常自然因为 FK 的工作方式和真实人体非常接近——我们真实的身体也是通过关节的旋转来运动的和 FK 一模一样优点四性能高FK 计算超级快只需要做一些简单的旋转 累加运算——电脑可以飞快地算出几百个骨头的姿势完全不卡这就是为什么所有游戏都用 FK——它又快又好第七章FK 的缺点但是 FK 也不是完美的——它有一个致命的缺点FK 做末端精准定位非常麻烦什么意思让我用例子说明。一个挑战假设你想让 3D 角色用手抓住桌子上的杯子。杯子的位置是固定的在某个具体坐标。挑战让角色的手刚好碰到杯子用 FK你要怎么做先转肩膀…大概多少度再弯手肘…大概多少度再转手腕…大概多少度你必须反复尝试转 30 度——手不到杯子差远了转 45 度——手过头了转 40 度——还差一点转 42 度——还差一点点转 43 度——快到了转 43.5 度——啊终于到了超级麻烦要反复调整很多次才能让手刚好到杯子为什么这么麻烦因为 FK 是**“从根到末梢”**的——你只能控制每根骨头的角度但你没法直接控制手的位置手的位置是所有骨头旋转累加的结果——要让手到达指定位置你必须反过来想每根骨头要转多少才能让手到那里这种反过来想的事情——就是 FK 不擅长的事情这种情况怎么办这时候就要用 FK 的兄弟——逆向动力学IKInverse KinematicsIK 是反过来的——你告诉电脑手要到哪里电脑自动算出每根骨头要怎么转但是 IK 是另一个故事了下次再讲第八章FK 适合什么场景虽然 FK 不擅长末端精准定位但它特别擅长一些其他场景场景一自由的动作比如挥手、跳舞、做表情——这些动作没有必须到达某个点的要求只要看起来自然就行FK 在这种场景下超级好用场景二表情和细节人脸的表情——每根眉毛骨、嘴角骨、眼皮骨——都用 FK 控制因为这些动作非常精细需要动画师亲手雕琢每一个细节场景三尾巴、头发、披风摆动的尾巴、飘逸的头发、飞舞的披风——这些都是用 FK 物理模拟做的——每一节骨头都有自己的角度连贯起来形成自然的摆动场景四手指动作握拳、张开、比心——每根手指的每一节都用 FK 控制第九章FK 和 IK 是好搭档虽然 FK 有缺点但它永远不会被取代因为FK 和 IK 是好搭档——自由的动作 → 用 FK精准定位 → 用 IK很多动画系统会同时支持 FK 和 IK让动画师根据情况选择比如角色挥手 → 用 FK自由飘逸角色拿东西 → 用 IK精准抓取角色走路 → 上半身 FK 下半身 IK脚要踩在地上FK 和 IK 不是对手而是合作伙伴第十章FK 的翻车现场虽然 FK 简单但用不好也会翻车翻车一脚悬空如果动画师用 FK 做走路动画——每一帧都要手动调整每根骨头的角度让脚刚好踩到地上如果调得不好——脚会浮在空中或者陷进地里这就是为什么走路通常用 IK 而不是 FK。翻车二手抓不到东西用 FK 让角色拿杯子——如果角度算错了一点点——手会穿过杯子或者离杯子十厘米超级尴尬翻车三动作累积误差FK 是累加的——如果你的每根骨头都少转了一点点——最末端的位置会差得超级远就像你算 100 100 100结果每个都少算了 1最后差了 3。骨头很多的时候这种累积误差会非常明显第十一章FK 在现实生活中的影子其实FK 的思想在生活中处处可见例子一放鞭炮一串鞭炮点燃第一个——第二个跟着炸第三个跟着炸……一直传到最后一个第一个动后面全跟着动——这就是 FK 的思想例子二多米诺骨牌推倒第一块——第二块跟着倒第三块跟着倒……一路传下去从根到末梢按顺序传递——这就是 FK例子三传话游戏一群小朋友排成一队第一个听到老师说的话传给第二个第二个传给第三个……信息从前往后按顺序传递——这也是 FK 的思想例子四操控你的身体你抬起手臂——先抬肩膀肩膀一动上臂跟着动前臂跟着动手跟着动你的身体每天都在做 FK第十二章让我们回顾一下正向动力学FK到底是什么我们用一句话总结正向动力学FK就是从根到末梢一根一根地转动骨头让 3D 角色摆出各种姿势的最简单、最直接的方法它的关键概念✨从父到子的传递父亲骨头动所有后代跟着动✨逐根控制动画师精确控制每根骨头的角度✨累加旋转每根骨头的最终姿势 自己的旋转 所有祖先的旋转✨简单高效计算快、效果好、容易理解它的优点 简单直观 精确可控 自然流畅 性能极高它的缺点❌ 难以做末端精准定位这种情况要用 IK它的应用 角色挥手、跳舞、做表情 手指、眉毛、嘴巴的精细动作 尾巴、头发、披风的摆动 所有自由动作没有 FK3D 动画几乎无法存在第十三章今天的智慧亲爱的小朋友让我们一起总结一下今天学到的智慧——智慧一从简单开始FK 是最简单的动画方法——但它是所有复杂方法的基础任何强大的东西都是从最简单的基础发展起来的。学习要从基础开始不要害怕简单。智慧二顺序的力量FK 强调顺序——从根到末梢一步一步来。生活中很多事情也一样必须按顺序来。跳过步骤往往会出大问题智慧三影响是会传递的FK 告诉我们——父亲动所有后代跟着动。在生活中你的每一个行为也会传递——你对朋友好朋友会对别人好你帮助一个人他会帮助更多人。影响是会扩散的。智慧四选择适合的工具FK 不能做所有事但它特别擅长某些事。聪明人不是用一种工具解决所有问题而是知道什么时候用什么工具。FK 用于自由动作IK 用于精准定位——用对工具事半功倍最后的话亲爱的小朋友——下次当你玩游戏看到—— 角色自然地挥手 角色生动地做表情 角色手指灵活地弹琴 角色披风随风飘扬请记得那些自然的动作背后是一套FK 系统在默默工作是每一根骨头正在按照动画师的设定一点一点转动是从根到末梢的旋转层层传递最终形成了我们看到的优雅动作。“FK 是 3D 动画的’地基’。”️“它简单到极致所以才能强大到极致。”⚡“每一次角色的微笑每一根手指的弯曲都是 FK 在背后默默工作。”✨那个游戏里比心的偶像、那个动画里张开手臂拥抱的英雄、那个电影里优雅起舞的精灵——它们的每一个动作背后都是一根根骨头按顺序旋转、传递、累加的结果都是FK 这个最简单的魔法在背后默默施展。下次你看到一个 3D 角色的动作请想想——它的每根骨头转了多少度这些旋转是怎么从根到末梢一路传递的这就是 FK 的魔法。✨“3D 世界里最复杂的舞蹈背后都是最简单的’转动骨头’。”“理解了 FK你就理解了 3D 动画最核心的逻辑。”恭喜你又毕业了下次再见时我们一起去探索FK 的兄弟——IK逆向动力学那是一个反过来想问题的神奇魔法比 FK 更智能、更高级我们下次见✨

相关新闻