蒙皮(Skinning):让 3D 角色的皮肤跟着骨头动的神奇魔法

发布时间:2026/5/28 18:31:22

蒙皮(Skinning):让 3D 角色的皮肤跟着骨头动的神奇魔法 写在最前面欢迎回来嘿小朋友又见面啦上次我们一起认识了骨骼层级——记得吗我们知道了 3D 角色身体里有一套看不见的骨头它们之间有父子关系一根骨头动下面的骨头会跟着动。但是上次我们留了一个超级重要的问题没有详细讲——骨头是看不见的那它怎么带动看得见的皮肤呢举个例子当 3D 角色的手臂骨头转动时它怎么知道要带动哪一块皮肤带动多少皮肤要拉伸还是弯曲这背后的魔法就是今天的主角——蒙皮Skinning听起来很奇怪的名字对吧蒙皮是什么意思别急今天我会用一个超级简单的故事告诉你。学完之后你会明白——蒙皮就是给骨头和皮肤之间签一份婚姻合同听不懂没关系让我从头讲起。准备好了吗我们出发第一章先做一个简单的实验请你做一个小动作——举起你的右手慢慢弯曲你的手肘。现在请你仔细观察你的手臂。你会发现一些非常有趣的事情你的前臂在转动你的上臂几乎没动但是手肘那块皮肤——它发生了什么它一边被挤压一边被拉伸手肘内侧的皮肤被挤成一道褶皱手肘外侧的皮肤被拉得紧紧的一个有趣的问题手肘那块皮肤到底是跟着上臂还是跟着前臂动仔细想想你会发现——它好像两边都跟靠近上臂的部分跟着上臂靠近前臂的部分跟着前臂。中间的部分两边都跟一点点。这就是真实人体的工作方式而今天我们要讲的蒙皮Skinning就是要在 3D 世界里模拟这种效果第二章先讲清楚皮肤是什么在讲蒙皮之前得先讲清楚 3D 角色的皮肤到底是什么。3D 模型是由点组成的你知道吗3D 模型其实是由无数个小点组成的这些点叫顶点Vertex它们就像是模型的原子。把这些点用线连起来再把线围成三角形——你就得到了一个 3D 模型举个例子一个简单的立方体 →8 个顶点一个球 →几百到几千个顶点一个游戏角色 →几千到几万个顶点一个电影级角色 →几十万到几百万个顶点这些顶点的位置决定了模型的形状。皮肤就是这些顶点3D 角色的皮肤本质上就是包裹在骨骼外面的这些顶点。角色的脸 → 几千个顶点角色的手 → 几千个顶点角色的衣服 → 几千个顶点当我们说皮肤要跟着骨头动其实意思是这些顶点要跟着骨头移动关键问题当某根骨头动的时候电脑怎么知道哪些顶点要跟着动跟着动多少这就是蒙皮要解决的问题第三章什么是蒙皮让我们用一个超级生动的例子来理解。想象一个布娃娃你有一个布娃娃。它是软的里面是空的。现在你在它身体里塞了几根铁丝——一根铁丝在手臂里一根铁丝在腿里一根铁丝在脊柱里现在你弯曲手臂里的铁丝——会发生什么手臂外面的布会跟着铁丝一起弯曲为什么因为布紧紧贴着铁丝。铁丝动布就跟着动。蒙皮就是这个原理蒙皮Skinning就是把 3D 模型的皮肤顶点绑定到骨头上——让顶点跟着骨头一起动。蒙皮这个词其实就是这个意思——把皮蒙在骨头上英文叫 Skinning意思也是贴上皮。没有蒙皮骨头动了皮肤不会跟着动——角色就像没有皮肤和骨头连接一样第四章最简单的蒙皮——硬绑定让我们从最简单的蒙皮方式开始——每个顶点只受一根骨头控制。这叫硬绑定Rigid Binding。怎么做电脑给每个顶点贴一个标签——顶点 #1跟着上臂骨顶点 #2跟着上臂骨顶点 #3跟着前臂骨顶点 #4跟着前臂骨顶点 #5跟着手骨……然后当上臂骨动的时候——电脑找到所有标签是上臂骨的顶点让它们跟着移动简单粗暴对吧来看一个例子想象一个机器人手臂。[上臂骨][手肘][前臂骨][手腕][手骨] ↓ ↓ ↓ 顶点群A 顶点群B 顶点群C上臂上的所有顶点 → 标签上臂骨前臂上的所有顶点 → 标签前臂骨手上的所有顶点 → 标签手骨机器人弯曲手肘 → 前臂骨转动 → 所有前臂顶点跟着转动但是有大问题硬绑定有一个致命的问题——关节处的皮肤会撕裂让我们看看会发生什么。假设手肘弯曲 90 度——上臂骨没动 → 上臂顶点没动前臂骨转了 90 度 → 前臂顶点转了 90 度结果┌─────┐ │ 上臂 │ └─────┘ ╲ ← 这里出现了一道裂缝 ╲ ┌────┐ │ 前臂│ └────┘关节处出现了一道明显的裂缝——皮肤断了这超级丑像是机器人的关节根本不像人体怎么办这就是为什么我们需要更聪明的蒙皮方法第五章聪明的蒙皮——权重绑定聪明的科学家想出了一个办法——让关节处的顶点“同时受两根骨头控制”这叫权重绑定Weighted Binding或者叫线性混合蒙皮Linear Blend Skinning。什么是权重权重就是影响力的大小。举个例子——假设你和小明都想吃苹果。妈妈说“你们俩商量一下谁说了算”如果你说了算你的权重 1小明的权重 0如果小明说了算你的权重 0小明的权重 1如果你 70% 说了算小明 30% 说了算你的权重 0.7小明的权重 0.3权重就是谁的影响力大。关节处的顶点用权重回到手肘的例子。关节处的顶点可以这样设置顶点 X手肘正中间受上臂骨影响 50%受前臂骨影响 50%也就是说——当上臂骨动时这个顶点动一半当前臂骨动时这个顶点也动一半。让我们看效果手肘弯曲 90 度——上臂骨没动前臂骨转了 90 度那个50/50的顶点会怎么动它会转 45 度前臂的 90 度 × 50% 45 度结果┌─────┐ │ 上臂 │ └──┐──┘ ╲╲ ← 弯曲处变成了平滑过渡 ╲╲ ┌─┐ │前│ │臂│ └─┘关节处变成了平滑的过渡不再是裂缝了这就是权重蒙皮的魔法更细致的权重实际上关节处不只是简单的50/50——电脑会让顶点的权重平滑过渡靠近上臂的顶点上臂权重 90%前臂权重 10%中间的顶点上臂权重 50%前臂权重 50%靠近前臂的顶点上臂权重 10%前臂权重 90%完全在前臂上的顶点上臂权重 0%前臂权重 100%这样的渐变让关节弯曲时皮肤看起来超级自然第六章权重怎么决定那么——每个顶点的权重到底是怎么决定的呢方法一自动权重电脑可以自动计算权重——它会看每个顶点离哪些骨头近离哪根骨头最近那根骨头的权重就最大离骨头远权重就小这种方法又快又方便但不一定完美——有时候自动算的权重会出问题。方法二手动绘制为了得到完美的效果美术师会手动调整权重——这叫权重绘制Weight Painting美术师用一个像画画一样的工具在 3D 模型上涂抹权重用红色刷子 → 给某根骨头增加权重用蓝色刷子 →减少权重模型上会显示热力图——红色区域 → 这根骨头权重高蓝色区域 → 这根骨头权重低中间是渐变的过渡美术师就像给皮肤涂颜料一样仔细调整每根骨头的影响范围一个生动的比喻想象你在给一面墙涂漆——红漆代表上臂骨的影响蓝漆代表前臂骨的影响你在上臂的部分涂纯红色你在前臂的部分涂纯蓝色你在手肘的部分涂紫色红 蓝混合紫色的深浅决定了红蓝各占多少比例。权重绘制就是在 3D 模型上涂颜料的艺术第七章蒙皮的经典翻车现场蒙皮做得好皮肤就自然柔顺蒙皮做不好就会出现各种搞笑或恐怖的翻车现场翻车一糖纸扭曲如果一根骨头转动太多比如手腕转 180 度——皮肤会被拧成糖纸一样正常 ─────── 扭曲 ≋≋≋≋≋≋≋像被人拧过的湿毛巾超级难看这是因为简单的权重蒙皮搞不定大角度旋转。翻车二关节崩塌如果手肘弯到极限比如 170 度——关节处的皮肤会崩塌成一团像被压扁的纸团这就是为什么游戏角色一般不能弯曲到 180 度——会变丑翻车三穿模如果权重设置错了——比如有些顶点被错误地绑定到了远处的骨头——那些顶点会跟着远处的骨头乱动——结果就是身体某部分穿到另一部分里比如手指插进了脸里——超级诡异翻车四皮肤分离如果有些顶点没有绑定到任何骨头——那它们就会永远停在原地不动骨头动了其他皮肤跟着动但这几个顶点不动——结果就是身体上出现一些飘在空中的奇怪皮肤这些翻车都是真实游戏里发生过的事修复它们就是美术师的工作第八章更高级的蒙皮——双四元数蒙皮线性混合蒙皮虽然好但还是有糖纸扭曲的问题。聪明的科学家又发明了一个更高级的方法——双四元数蒙皮Dual Quaternion Skinning简称 DQS名字超级吓人对吧不用怕我们只需要理解它解决了什么问题——DQS 解决了糖纸扭曲的问题它用一种特殊的数学能让关节在大角度旋转时保持皮肤的体积不会扭曲成糖纸效果对比线性混合手腕转 180 度 → 皮肤拧成糖纸 双四元数手腕转 180 度 → 皮肤平滑过渡 ✨很多高端游戏和电影都用 DQS——但 DQS 也有缺点速度比线性混合慢所以游戏一般用线性混合快电影用双四元数漂亮。第九章更更高级的蒙皮——肌肉系统电影里的角色蒙皮还会更高级——肌肉系统什么意思普通蒙皮骨头动 → 皮肤动肌肉系统骨头动 →肌肉先变化→ 肌肉带动皮肤动举个例子——当你举起哑铃时发生了什么你的骨头转动手肘弯曲你的二头肌鼓起来你的皮肤被肌肉顶起来真实人体不是骨头直接带动皮肤而是骨头 → 肌肉 → 皮肤电影《阿凡达》《狮子王》CG 版里的角色都用了肌肉系统——所以你看那些角色的肌肉真的会鼓起、放松看起来超级真实但肌肉系统超级费电脑——所以一般只有电影才用游戏里很少用。第十章蒙皮的实际工作流程让我们看看真实世界里美术师是怎么做蒙皮的。第一步建模美术师先做出 3D 模型角色的身体形状。第二步放骨骼在模型里放置骨骼就是我们上次说的骨骼层级。第三步自动蒙皮按下自动蒙皮按钮——软件会自动给每个顶点分配权重让模型绑定到骨骼。第四步测试让骨骼摆出各种姿势——弯曲手肘抬起手臂蹲下跳跃看看皮肤的反应——哪里穿模了哪里崩塌了哪里看起来不自然第五步手动调整针对问题地方手动绘制权重——一点一点调整让每个姿势都看起来自然。这一步可能要花几天甚至几周特别是面部表情的蒙皮——超级精细第六步最终测试让动画师导入一些动作动画做最后的检查——如果一切正常蒙皮就完成了第十一章蒙皮在不同地方的应用蒙皮不只用在角色身上它有超多用途应用一游戏角色最常见的用法——让游戏里的英雄、怪物、NPC 动起来。应用二动画电影迪士尼、皮克斯的所有 3D 动画角色——全部用蒙皮。应用三虚拟主播那些 V 站的虚拟主播——用蒙皮把真人的动作映射到虚拟角色上应用四游戏服装角色身上的衣服、披风、头发——也用蒙皮让衣服跟着角色身体动披风随风飘动……应用五表情动画人脸的表情是用很多很多很多骨头做的——每个嘴角、眉毛、眼皮都有自己的骨头和蒙皮。一张脸可能有几十甚至上百根表情骨第十二章让我们回顾一下蒙皮到底是什么我们用一句话总结蒙皮Skinning就是把 3D 模型的皮肤顶点绑定到骨头上让皮肤能跟着骨头自然地动它的关键概念✨顶点3D 模型的原子皮肤就是一堆顶点✨绑定把顶点和骨头挂钩✨权重每个顶点受多少骨头影响每根骨头影响多少✨权重绘制美术师手动调整权重的过程✨蒙皮算法线性混合快、双四元数漂亮、肌肉系统电影级它解决的问题让 3D 角色的皮肤跟着骨头自然地动不出现裂缝、不撕裂、不变形没有蒙皮骨骼就只是一堆骨头没法控制任何东西第十三章今天的智慧亲爱的小朋友让我们一起总结一下今天学到的智慧——智慧一连接的力量蒙皮的本质是连接——把皮肤和骨头连接起来。世界上很多事情都是因为连接才能运转。一个人 → 一群人 → 社会一根骨头 → 一具骨架 → 一个角色。智慧二权重 影响力权重的概念非常深刻——生活中很多决定也是权重决定的——你听爸爸的多一点还是妈妈的多一点听老师的多还是同学的多理解权重你就理解了世界运作的一种方式。智慧三渐变胜过突变蒙皮告诉我们一个道理——关节处的渐变权重比硬绑定好得多。生活中也一样从一种状态到另一种状态如果中间有平滑过渡就比突然跳变舒服得多。智慧四完美需要打磨一个好的蒙皮需要美术师几天甚至几周的精细调整。任何看起来自然的东西背后都有大量的精雕细琢。最后的话亲爱的小朋友——下次当你玩游戏看到—— 角色的肌肉鼓起 角色的关节自然弯曲 角色的面部表情丰富 角色的衣服飘动请记得那些自然的动作背后是一套蒙皮系统在默默工作是每一个皮肤顶点正在严格地按照权重跟着骨头移动是美术师几周的辛勤打磨让一切看起来像真的一样。“骨骼是身体的灵魂蒙皮是身体的桥梁。”“没有蒙皮骨骼只是骨架有了蒙皮骨架才有了生命。”✨“每一次角色的微笑都是几十根骨头和上千个顶点的精密协作。”那个游戏里举剑欢呼的英雄、那个电影里露出笑容的公主、那个伸出爪子的小猫——它们的每一寸皮肤都在精密地、按照权重、跟着骨头移动它们的每一个动作都是蒙皮魔法在背后默默施展。下次你看到一个 3D 角色的动作请想想——它的每一块皮肤跟着哪根骨头跟了多少是谁帮它涂上了这些权重这就是蒙皮的魔法。✨“3D 世界里骨骼是骨头蒙皮是肌肉的连接——它们让虚拟的角色有了真实的呼吸。”恭喜你又毕业了下次再见时我们一起去探索更多有趣的 3D 秘密✨

相关新闻