写在最前面欢迎回来嘿小朋友又见面啦上次我们一起认识了正向动力学FK还记得吗FK 就是从根到末梢一根一根地转动骨头的方法就像搭积木一样按顺序来。但是上次我们说过FK 有一个致命的缺点。它做末端精准定位超级麻烦比如你想让 3D 角色的手刚好抓住桌子上的杯子。用 FK你要反复试转 30 度不行转 45 度过头了转 40 度还差一点转 42 度还差一点点……啊太麻烦了那有没有一种更聪明的方法让电脑自动算出每根骨头应该转多少度让手刚好到达杯子呢有它就是今天的主角逆向动力学IKInverse Kinematics听到逆向动力学你可能又被名字吓到了。别怕我保证今天讲完后你会发现 IK 其实超级聪明超级有用它就是反过来想问题的魔法准备好了吗我们出发第一章先来理解逆向在讲 IK 之前先搞清楚逆向Inverse是什么意思。我们上次讲过“正向就是从开始到结束按顺序来”。那逆向呢很简单逆向就是反过来从结果倒推原因举几个生活中的例子。例子一找钥匙正向思维是这样的我早上起床然后穿衣服然后吃早饭然后出门最后到学校。逆向思维是反过来的我现在到学校了所以我刚才出门了所以我刚才吃过早饭了所以我刚才穿过衣服了所以我刚才起床了。看正向是从原因到结果逆向是从结果到原因例子二做菜正向思维我有面粉、鸡蛋、牛奶我可以做什么菜答案是蛋糕逆向思维我想吃蛋糕我需要什么材料答案是面粉、鸡蛋、牛奶看到了吗逆向思维是从目标倒推步骤在 3D 动画里正向动力学FK的思路是我转动每根骨头看看手最后到了哪里。逆向动力学IK的思路是我想让手到达某个位置电脑自动算出每根骨头要转多少。这就是 IK 的核心思想告诉电脑你想要什么电脑帮你算出怎么做是不是超级聪明第二章用机器人手臂理解 IK让我们回到上次那个机器人手臂的例子。机器人手臂有 3 个关节肩膀、手肘、手腕最末端是手。现在桌子上有一个苹果机器人要去抓它。用 FK 怎么做回忆一下上次的方法第一步转肩膀 30 度试了好几次才找到合适的角度第二步弯手肘 45 度又试了好几次第三步转手腕 20 度再试了好几次最后终于抓到了超级麻烦要反复尝试用 IK 怎么做只要一步直接告诉电脑“让手去抓苹果”电脑会自动算出肩膀应该转 30 度手肘应该弯 45 度手腕应该转 20 度。然后一次性完成是不是超级方便IK 就是这种告诉电脑目标电脑自动算出步骤的魔法第三章IK 在生活中的影子其实IK 的思想你早就在用了只是你不知道而已例子一你伸手拿东西请你做一个实验。桌子上放一杯水请你伸手把它拿起来。请你仔细回忆当你伸手的时候你的大脑在想什么是这样吗“嗯让我先想想肩膀应该转 23.5 度然后手肘弯 47.2 度然后手腕转 12.8 度……”当然不是你的大脑只想了一件事“我要拿那杯水”然后你的手自动就过去了你的肩膀、手肘、手腕都是大脑自动算出来的这就是真正的 IK发生在你身体里人类大脑超级聪明自动完成了所有计算让你的手准确地到达目标例子二踢足球你想把足球踢进球门。你不会想“嗯我大腿应该抬 45 度小腿应该踢 90 度脚要弯 15 度……”你只会想“踢进球门”然后你的腿自动做出了所有正确的动作例子三抓痒痒你背上某个地方痒了。你不会想“嗯让我的肩膀转 130 度手肘弯 170 度手腕转 90 度……”你只会想“挠那个痒的地方”然后你的手自动找到了那个位置看IK 的思想在你的日常生活中无处不在人体的运动控制系统就是一个超级强大的 IK 系统第四章IK 是怎么算出来的那么问题来了。电脑是怎么自动算出每根骨头要转多少度的呢这背后其实有一些复杂的数学。但是作为小学生我们不需要懂那些数学我们只要理解基本思路就行了。思路一不断尝试调整电脑会不断尝试第一次随便转一下手离目标 50 厘米。第二次再转一下手离目标 30 厘米变近了继续这个方向。第三次再转一下手离目标 10 厘米更近了。第四次再转一下手离目标 1 厘米快到了。第五次再转一下手到了这种不断尝试越来越接近的方法叫迭代算法。电脑超级快可以在百分之一秒内完成几百次尝试。所以你看不到这个试错过程只看到结果瞬间完成思路二用几何学算如果只有两三根骨头比如机器人手臂电脑可以用几何学直接算出答案。就像数学题里已知三角形的三条边求每个角的度数。这种方法超级快但只能用在简单的情况。哪种方法更好两种都有用简单情况比如人的手臂、腿用几何学又快又准。复杂情况比如长长的尾巴、章鱼的触手用迭代算法慢一点但更通用。3D 软件会根据情况选择不同的方法第五章IK 在游戏里的超级应用IK 在游戏里有超多应用比 FK 还要广泛应用一让脚踩在地上你有没有玩过那种地面凹凸不平的游戏比如角色走在山坡上、楼梯上、岩石上。你会发现角色的两只脚总是能刚好踩在地面上不会悬空也不会陷进地里这是怎么做到的答案就是 IK游戏会实时计算地面在哪里脚应该放在哪里膝盖应该怎么弯大腿应该怎么转电脑用 IK 每一帧都自动算让脚永远踩在地上没有 IK角色走在山坡上就会穿地或者悬空超级难看应用二让手抓住武器游戏里角色拿剑、拿枪、拿盾牌。角色的手总是能刚好握在武器的把手上这也是 IK电脑会自动算出每根骨头的角度让手刚好握住武器应用三让眼睛看着目标很多游戏里角色的眼睛会跟着你看。不管你站在哪里角色的眼睛总是盯着你这是用 IK 控制脖子和眼睛的旋转让视线指向目标这种被注视的感觉就是 IK 在背后默默工作应用四开门、按按钮、抓栏杆游戏里角色开门手会精准地握住门把手。按按钮手指会精准地按到按钮上。爬墙手会精准地抓住每一个把手点这些精准的互动全部依靠 IK应用五双手拿一件物品最常见的是角色用双手拿一把长剑或者一把枪。两只手都要刚好握在武器的不同位置如果用 FK要分别调整两只手超级麻烦而且很难做到完美。用 IK电脑自动让两只手都到位第六章IK 在动画师手里动画师做 IK 的时候工作方式和 FK 完全不同FK 的工作方式回忆一下转动每根骨头的控制器一根一根调整。IK 的工作方式直接拖动末端比如手、脚、头动画师只需要拖动手到他想要的位置电脑会自动让肩膀、手肘、手腕转到合适的角度是不是超级方便一个例子动画师想做角色弯腰捡东西的动作。用 FK要分别调整脊柱、髋部、膝盖、踝关节超级麻烦用 IK直接把手拖到地上把脚固定在原位电脑自动算出整个身体怎么弯腰一秒钟搞定IK 控制器动画师用的 IK 控制器通常是一些小立方体放在角色的手、脚、头等关键末端上。动画师只要拖动这些小立方体整个身体就会跟着动就像提线木偶你只要动那几根关键的线整个木偶就活了第七章IK 的翻车现场虽然 IK 超级智能但它也不是万能的也会出问题翻车一膝盖弯反了IK 算的时候有时候会算出奇怪的答案。比如让角色的膝盖往后弯正常人膝盖只能往前弯但 IK 数学上不知道这个限制。结果就是角色的腿弯成了反方向超级诡异解决办法动画师要告诉电脑膝盖只能往前弯设置角度限制。翻车二脚扭曲有时候 IK 算的答案会让脚扭来扭去像被人拧过的毛巾这是因为 IK 只关心末端位置不太在乎过程是否自然。解决办法用更高级的 IK 算法或者动画师手动调整。翻车三抖动如果目标位置稍微变化一点点IK 算出来的整条手臂可能完全不一样结果就是角色的手臂疯狂抖动超级搞笑也超级难看解决办法让 IK 算法平滑一些避免突然变化。翻车四够不着如果目标太远IK 也没办法手臂就那么长再算也够不到这时候 IK 会让手臂尽量伸长但还是够不到。看起来像是角色在努力够东西但够不到解决办法让整个身体也参与比如弯腰、转身。第八章FK 和 IK 的完美搭档到这里你可能会问既然 IK 这么智能那为什么不全部用 IK把 FK 扔掉好问题答案是FK 和 IK 各有各的强项谁也取代不了谁FK 的强项精细控制动画师能精确控制每根骨头的角度。自然流畅自由的动作看起来超级自然。适合表情脸部的精细动作必须用 FK。适合自由动作挥手、跳舞、做表情。IK 的强项末端定位让手、脚精准到达目标。适合互动抓东西、踩地面、看目标。快速做动作一键完成复杂姿势。适合物理约束脚踩地、手扶墙。实际使用很多动画师会同时使用 FK 和 IK。比如角色挥手时上半身用 FK自由飘逸。角色走路时下半身用 IK脚踩地面。角色做表情时脸部用 FK精细控制。角色拿武器时手部用 IK精准抓握。FK 加 IK 一起用才能做出最好的动画FK/IK 切换高级的动画系统支持 FK/IK 切换。同一根骨头在不同的动作里可以用不同的方式控制比如角色在挥剑时用 FK动作飘逸换到角色把剑插回剑鞘时用 IK精准定位。这种灵活的切换让动画师如虎添翼第九章IK 的高级形式IK 还有一些超级高级的形式高级形式一全身 IK普通 IK 只控制一只手或一只脚。全身 IK 控制整个身体你拖动角色的手整个身体都会自动调整弯腰、踮脚、扭腰全部自动这种 IK 用在 VR 游戏里。你戴着头盔挥手整个虚拟角色都会同步动作高级形式二物理 IK普通 IK 只考虑位置。物理 IK 还考虑重力、惯性、平衡。让角色在跳舞、跌倒、被打飞时动作看起来符合物理规律这种 IK 用在最新的 3D 游戏里让动作超级真实高级形式三AI IK最近 AI 也加入了 IKAI 学习了几千个真人动作然后能自动做出超级自然的 IK 动作比传统的 IK 算法自然得多未来可能所有游戏都会用 AI IK。第十章IK 在现实生活中的影子IK 不仅在 3D 动画里有用在现实生活中也有超多应用应用一机器人工厂里的机器人手臂可以抓零件、焊接、装配全部依靠 IK工程师告诉机器人把零件放到这里机器人自动算出每个关节怎么转应用二医疗手术精密的医疗手术机器人医生操控末端的手术刀机器人的多个关节自动配合应用三太空探索火星车的机械臂、空间站的机械臂宇航员只要告诉它去那个位置机械臂自动算出怎么伸过去应用四动作捕捉电影里的特效演员穿着传感器服装表演电脑用 IK 把演员的动作实时映射到虚拟角色身上《阿凡达》《复仇者联盟》里的那些特效角色都是这么做的IK 是现代科技的隐形英雄第十一章让我们回顾一下逆向动力学IK到底是什么我们用一句话总结逆向动力学IK就是反过来想问题告诉电脑末端要到哪里电脑自动算出每根骨头该怎么转它的关键概念✨ 反向思维从结果倒推原因✨ 末端控制直接控制手、脚、头等末端的位置✨ 自动计算电脑自动算出所有骨头的角度✨ 精准定位能让末端精确到达目标它的优点 操作简单拖动一下就搞定 精准定位手能准确到达目标 智能化电脑帮你算所有细节 适合互动抓东西、踩地、扶墙都很自然它的缺点❌ 可能算出奇怪的答案膝盖弯反了❌ 有时候不够自然❌ 计算量比 FK 大❌ 需要设置约束比如关节角度限制它的应用 角色走在凹凸地面上 角色抓武器、开门、按按钮 角色用双手拿东西 角色的眼睛追踪目标 机器人控制 医疗手术 动作捕捉没有 IK3D 角色就没法和环境真实地互动第十二章今天的智慧亲爱的小朋友让我们一起总结一下今天学到的智慧。智慧一反过来想IK 教会我们一个超级重要的思维方式当正向思考太麻烦时试着反过来想很多生活中的难题反过来想就豁然开朗比如你想成为科学家正向思考是先学这个再学那个再…太多了反向思考是我想成为科学家所以我需要会哪些技能这些技能需要学哪些课这些课从哪里学起从目标倒推步骤往往比从起点摸索更高效智慧二信任工具IK 是一种工具它帮我们自动完成复杂的计算。聪明的人不是什么都自己做而是会用工具帮自己做学会信任工具让工具帮你节省时间你才能做更多更有意义的事智慧三每个工具都有强项IK 不能取代 FKFK 也不能取代 IK。它们各有各的强项配合使用才能发挥最大威力。在生活中没有万能的方法。不同的问题需要不同的解决方案。聪明的人懂得什么时候用什么方法。智慧四你的身体就是个超级电脑最神奇的事情是你的大脑每时每刻都在做 IK 计算你伸手拿水杯、你走路、你跳舞、你写字每一个动作都是大脑瞬间完成的复杂 IK 计算人体的运动控制系统比任何 3D 软件都要强大请记得你的身体本身就是最伟大的工程奇迹。最后的话亲爱的小朋友。下次当你玩游戏看到 角色的脚完美地踩在山坡上 角色的手精准地握住剑柄 角色的眼睛一直盯着你 角色优雅地弯腰捡起地上的物品请记得那些精准的动作背后是一套 IK 系统在默默工作。是电脑每一帧都在飞速计算每根骨头应该转多少度。是反过来想问题的智慧让虚拟角色和真实世界完美互动。“FK 是搭积木IK 是解谜题。”“FK 让你控制每一步IK 让你直接到达终点。”“理解了 IK你就理解了智能控制的核心思想。”那个游戏里爬上山顶的英雄那个动画里伸手摘星的精灵那个电影里抓住主角的手的怪兽。它们的每一个精准动作背后都是 IK 在飞速地反向计算。都是告诉电脑你想要什么这个简单思想的伟大胜利。下次你看到一个 3D 角色和环境互动请想想它的手是怎么刚好到达那个位置的它的脚是怎么刚好踩在那块石头上的这就是 IK 的魔法。✨“在 3D 世界里FK 是手艺人IK 是魔法师。”“FK 让我们成为大师IK 让我们成为神。”恭喜你又毕业了下次再见时我们一起去探索更多有趣的 3D 秘密✨