Sculpty Sculpty Blog
Open Studio
全部文章
3d model skinning skinning workflow dual quaternion skinning linear blend skinning bone weights

3D 模型蒙皮详解:从骨骼到动画

S
Sculpty
·
3D 模型蒙皮详解:从骨骼到动画

你终于完成了角色的骨骼绑定。骨架弯曲正常,控制器响应灵敏,然后当你旋转肩膀时,网格却像被折叠一样出现尖锐的褶皱,前臂扭曲得像缠绕的糖果,或者肘部伸展时,身体的其他部分却滞后了。模型在绑定姿势时看起来还好好的,所以这个问题感觉很神秘。

这并非神秘。3D 模型蒙皮(Skinning)是一种系统,它告诉多边形表面如何跟随内部的骨骼。一旦你理解了网格被要求做什么,权重绘制、绑定矩阵和替代算法就不会再感觉是无关的技术性杂务。它们变成了对同一个实际问题的不同解答:当附近骨骼改变位置时,表面的每个部分应该如何移动?

目录

为什么你的角色网格在没有蒙皮时会塌陷

静态的角色网格只知道其顶点的具体位置。骨架只知道其关节的排列方式。将它们放在同一个场景中,它们也不会自动表现得像一个活生生的角色。没有蒙皮关系,旋转上臂骨骼只会改变骨骼本身,而不会影响构成肩膀、袖子或胸部的顶点。

蒙皮创建了这种关系。它为每个顶点提供了关于哪些骨骼影响它以及影响程度的指令。然后,角色就可以像有弹性的皮肤覆盖在刚性内部结构上一样移动,即使计算机是在逐个顶点计算结果。

一个常见的首次失败发生在肩膀。上臂顶点紧随手臂骨骼移动,而胸部顶点保持固定,两者之间的过渡区域向内凹陷。手腕处也会出现类似的问题,当手旋转时,前臂却没有平滑的过渡。结果在技术上是动画化的,但在视觉上却像一个带有几个附加部件的硬壳。

实用规则: 良好的绑定姿势并不保证良好的变形。它只为软件提供了一个清晰的参考,用于计算后续的运动。

在打开权重绘制工具之前,网格本身就很重要。清晰的边流为变形提供了在关节周围移动的空间,而不规则的拓扑结构可能会迫使单个多边形承担它并未设计来支持的运动。在归咎于骨骼绑定之前,请回顾你的 角色拓扑基础知识

一张图表,比较了角色动画中 3D 网格蒙皮的糟糕和良好技术,用于关节变形。

目标不是让每个顶点都移动。目标是让每个顶点都以支持其周围形状的方式移动。这个区别解释了为什么蒙皮位于建模、骨骼绑定、动画和导出之间。糟糕的结果可能源于权重、关节位置、拓扑结构或变形方法本身。

骨架、绑定姿势和蒙皮

想象一下一个覆盖着一层薄薄粘土的木制模特。模特身上的销钉和段是骨架,粘土是蒙皮,而你将粘土按压到模特身上形成一个中立姿势的瞬间就是绑定姿势

骨架是关节的层级结构。肩膀属于躯干,肘部属于上臂,手腕属于前臂。这种父子结构允许旋转沿着角色传递。如果肩膀移动,肘部和手腕会通过层级结构继承一部分运动。

绑定姿势是参考排列。它可以是 T 姿势、A 姿势或其他中立姿势,但必须是经过深思熟虑的。软件会记录网格在那个时刻相对于每个关节的位置。之后,它会将当前姿势与该参考进行比较,并将差异应用于绑定的顶点。

必须协调的三个部分

  • 骨架: 关节定义了可用的运动及其层级。即使权重绘制得很仔细,一个错位的肘关节也可能导致糟糕的弯曲。
  • 绑定姿势: 中立姿势建立了参考系。如果在绑定网格和骨架时它们没有对齐,后续的变换就会从错误的关联开始。
  • 蒙皮: 多边形表面承载着顶点位置、法线、UV 和影响数据,这些数据使其能够变形。

一张图表,说明了 3D 蒙皮的三个主要步骤:创建骨架、绑定网格和蒙皮。

折纸的比喻有助于理解下一个概念。在一个折叠的纸质人物上标记一个点,然后改变折叠方式。标记的点不会孤立地选择一个折叠。它的最终位置取决于周围的结构以及纸张如何跨越折痕连接。蒙皮顶点的工作方式类似,只是计算机存储了明确的影响值,而不是依赖于物理纸张。

在绑定之前,请检查角色的变换、缩放、关节方向和中立姿势。在生成权重之前应用校正。如果你在绑定后更改了网格的比例或重新定位了主要关节,你可能需要重建或仔细修复关系,而不是仅仅绘制每个症状。

绑定姿势也为你提供了一个调试锚点。每当变形看起来不对时,就回到它。如果网格在那里已经偏移、旋转或缩放不正确,问题就不是微妙的权重过渡。这是一个应该从基础开始修复的设置错误。

骨骼权重和线性混合是如何工作的

角色在肘部弯曲,但上臂和前臂之间的顶点无法干净地跟随单个关节。它们需要一个有度量地交接。骨骼权重通过为每个顶点分配来自影响它的关节的归一化贡献来提供这种交接。

线性混合蒙皮(Linear Blend Skinning),也称为骨骼子空间变形(Skeletal Subspace Deformation)、矩阵调色板蒙皮(Matrix Palette Skinning)或顶点混合(Vertex Blending),允许一个顶点响应多个关节。每次影响都有一个非负权重,并且该顶点的所有权重加起来等于 1,正如这篇关于线性混合蒙皮的讲座中所解释的。靠近上臂的顶点可能从该骨骼获得强烈的贡献,从前臂获得较小的贡献,而从远处关节获得的贡献则很少或没有。

结果就像几个人拿着一张床单。每个人拉动不同的部分,床单会根据每只手的拉力而下垂。蒙皮顶点是床单上的一个点。它的最终位置来自组合的关节运动,而不是由单个骨骼决定结果。

通俗易懂的计算解释

对于绑定姿势中的一个顶点,引擎通常遵循以下顺序:

  1. 它从顶点原始位置开始。
  2. 它使用逆绑定矩阵将该位置表示在与关节相关的坐标系中。
  3. 它应用关节的当前姿势变换。
  4. 它将变换后的位置乘以顶点的权重。
  5. 它将加权结果添加到其他影响关节的贡献中。

用紧凑的符号表示:

v' = Σ wi Mi v

这里,v 是绑定姿势顶点,v' 是其变形后的位置,wi 是影响权重,而 Mi 代表关节的当前变换与其逆绑定关系的组合。逆绑定的部分很重要,因为引擎必须首先考虑顶点最初的位置。没有这个参考,一个完全合理的姿势变换可能会从错误的起始关系移动网格。

一张图表,说明了顶点权重驱动 3D 网格变形的四步过程,用于计算机动画。

归一化可以控制总影响。如果值加起来过多或过少,顶点可能会漂移、收缩或膨胀,使权重问题看起来像建模错误。归一化的权重并不能保证美观的变形。它们只为混合提供了一个稳定的数学起点。

为什么线性混合成为默认选项

线性混合蒙皮紧凑、对硬件高效,并且适合实时渲染。游戏可以连续更新许多顶点,同时保持计算相对可控。这种平衡使其成为动画角色常用的通用方法。

它的历史也遵循了多边形 3D 图形的发展,在 2000 年代初正式将其作为一种命名技术成为一个重要的里程碑。这篇 蒙皮方法学术调查 为该领域提供了历史背景。

当相邻关节相互旋转时,限制就会显现出来。变换的加权平均在数学上可能是平滑的,但会产生错误的物理形状。在扭曲的前臂周围,网格可能会失去体积并向中心收缩,即使每个顶点的权重都已正确归一化。这种区别在故障排除时很重要。权重值控制关节如何共享影响,而混合方法控制这些变换如何组合。

双四元数蒙皮和“糖果包装纸”问题

旋转前臂时观察肘部和手腕。如果中间部分急剧变窄,表面螺旋状向内卷曲,你就看到了“糖果包装纸”问题。线性混合会产生这种伪影,因为它以一种不保持肢体扭曲周围刚性特性的方式平均变换矩阵。

问题不在于权重一定错误。即使你有一个仔细归一化的影响集,当相邻骨骼相互旋转时,仍然可能出现体积损失。这种区别可以节省时间。在重新绘制整个手臂之前,请测试伪影是否遵循变形方法。

双四元数蒙皮(Dual Quaternion Skinning,DQS)提供了一种近乎即插即用的替代方案。它不是直接混合变换矩阵,而是混合单位双四元数,然后在变换顶点之前对组合结果进行归一化。该方法能更有效地保持刚性变换,并改善体积保持,正如这篇关于双四元数蒙皮的技术讨论中所述。

标准 线性混合蒙皮 双四元数蒙皮
核心操作 混合基于矩阵的变换 混合单位双四元数,然后归一化
扭曲的肢体 可能产生“糖果包装纸”式的塌陷 更好地保持刚性旋转行为
体积 在强扭曲周围可能损失体积 通常更有效地保持肢体体积
运行时性能 紧凑且对硬件友好 据报道速度几乎与 LBS 一样快
常见问题 挤压和扁平化 在对齐不良的关节附近可能出现鼓胀

实际选择通常很简单。当目标引擎、角色风格或既有管线需要 LBS 时使用它。当扭曲的肩膀、前臂、大腿或尾巴明显塌陷且引擎支持该选项时,测试 DQS。

DQS 并非万能。如果关节轴线对齐不当或权重覆盖关节范围过大,表面可能会鼓胀而不是收缩。先校正骨架和影响区域。然后使用相同的姿势比较这两种方法,特别是中立弯曲、强力扭曲和极端伸展。

使用算法来解决你实际遇到的伪影。 切换到 DQS 无法修复错位的关节、损坏的拓扑或分配给错误骨骼的顶点。

实用的权重绘制和包围盒工作流程

从自动化开始,但将结果视为草稿。自动方法可以根据骨骼距离、周围几何形状或热图式计算来估算影响。它可以快速让你完成一个可用的第一遍,而最终质量仍然来自测试和校正。

构建第一遍

  1. 准备场景。 确认网格处于预期的绑定姿势,并且骨架位于角色内部。检查角色的各个部分是否没有意外分离、隐藏或带有意外的变换。
  2. 生成初始权重。 使用自动分配或包围盒来创建影响图。包围盒为每个骨骼设置一个影响半径,当顶点移出该区域时,效果会逐渐减弱至零。
  3. 姿势测试后再优化。 测试肩膀、肘部、手腕、臀部、膝盖、颈部和手指。中立姿势会隐藏不良的过渡,而运动会立即暴露它们。
  4. 绘制问题区域,而非整个角色。 在形状应该跟随关节的地方添加影响,在相邻区域被拖拽的地方减去影响,并在弯曲处保持平滑的过渡。
  5. 小心镜像。 对称性可以加快第一遍的速度,但在进行特定于一侧的校正之前,请暂时禁用镜像。否则,修复可能会出现在另一侧。

一个五步信息图,概述了 3D 权重绘制的实用工作流程,从自动分配权重到最终优化。

像太妃糖一样变形的肩膀通常是因为手臂的影响延伸到胸部过多,或者躯干的影响延伸到肩胛骨过少。肘部出现尖锐折痕可能需要更多的支撑循环、更平滑的权重渐变,或者将关节放置得更靠近实际弯曲处。权重显示中孤立的亮斑通常表明顶点权重过高或存在意外的分配。

从多个角度检查结果

不要只在视口默认姿势下评估权重图。旋转角色,缓慢弯曲关节,并从正面、侧面和四分之三视角检查轮廓。同时观察法线和阴影以及轮廓,因为表面可以保持其轮廓但产生不希望出现的折痕。

在测试自己的设置时,请使用此嵌入式工作流程参考:

最后检查未分配的顶点、突变的颜色边界以及跨越不相关身体部位的影响。手不应该仅仅因为顶点在对象空间中靠近而拉动前臂,而松散的夹克可能需要与下面的身体采用不同的策略。

自动和 AI 辅助蒙皮何时能发挥作用

一个角色在自动绑定后在放松姿势下可能看起来还可以,但在第一次抬肩时就会塌陷。算法并不评判设计。它只是在它接收到的几何形状上分配影响,因此低分辨率网格、不均匀的边流、断开的表面或放置不当的关节会给它提供薄弱的证据。

包围盒在快速完成第一遍时仍然很有用,因为它们的边界可见且易于调整。它们在特定设计形状周围的精度较低。肩胛骨需要保持其预期的体积,而外套可能需要与下面的躯干以不同的方式移动。将包围盒设置为粗略边界,然后精炼控制轮廓和关节弯曲的顶点。

AI 辅助工具通过从几何模式和先前绑定的示例中预测权重来扩展此过程。它们可以减少相似角色之间重复的设置工作,但结果仍然是一个建议。测试姿势,检查阴影,并手动校正富有表现力的关节。

几种蒙皮方法仍在积极使用中,包括直接蒙皮、自动蒙皮、基于示例的变形和直接增量蒙皮。每种方法在授权控制、自动化、变形质量和运行时行为之间进行不同的权衡。选择是一个技术和艺术上的权衡,而不是一个能让所有网格都变形良好的按钮。

对于初级艺术家来说,使用自动化来处理重复性工作,而不是判断。让软件创建一个影响图,然后检查肩膀是否保持其形状,肘部是否自然压缩,以及角色的设计是否需要刚性或柔性运动。干净的手动绘制通常比修复一个从未经过测试的自动绑定要快。

为你的项目选择正确的蒙皮设置

通过回答三个问题来选择设置。

角色将在哪里运行? 从目标引擎和导出格式的要求开始。实时游戏角色通常倾向于使用具有受控顶点影响列表的紧凑 LBS 设置,而电影级绑定可能更注重变形质量和校正系统。

运动有多极端? 一个风格化的角色,姿势受限,可能用 LBS 看起来很棒。一个具有深度扭曲、长尾巴或高度铰接肢体的生物,值得与 DQS 进行直接比较,并进行仔细的校正。

你能支持多少几何体? 更多的拓扑可以为关节提供额外的弯曲空间,但额外的多边形无法挽救糟糕的关节位置或混乱的权重。清晰的几何体比没有变形计划而增加的密度更有价值。

AI 生成的网格需要同样的纪律。在绑定之前,重新网格化和重新拓扑可以使不均匀的表面变成更清晰的四边形或游戏就绪的三角形布局。如果你的管线涉及格式转换,请通过 DAE 到 FBX 的工作流程测试角色,并验证关节、权重、变换和材质分配是否在交接过程中得以保留。

最佳操作顺序: 先修复网格,然后放置关节,建立绑定姿势,生成权重,测试运动,最后选择混合方法。

这个顺序可以防止你使用复杂的变形算法来隐藏基本的设置错误。

第一次尝试后才会问的蒙皮问题

症状 可能原因 快速修复
弯曲时关节塌陷 拓扑、权重或关节位置不佳 检查边流,重新绘制过渡区域,并测试关节位置
AI 生成的网格绘制不均匀 不规则或拉伸的拓扑 绑定前进行重新网格化或重新拓扑
导出时变形丢失 不支持的蒙皮数据、变换或转换设置 在目标引擎中测试导出文件,并验证骨架和权重
扭曲向内挤压 线性混合体积损失 比较 DQS,然后检查关节轴线和影响范围

应该立即绑定 AI 生成的角色吗? 通常不。先清理拓扑,确认缩放和方向,放置关节,并创建一个经过深思熟虑的绑定姿势。

如果一个关节总是塌陷怎么办? 分离姿势,在热图视图中检查权重,并确定失败是跟随网格、骨架还是混合方法。关节限制或校正混合形状可能比无休止地重新绘制更能干净地解决设计上的极端情况。

如何为 Unity 或 Unreal 准备? 先导出小型测试角色。在投入完整的生产资产之前,请确认引擎能够读取骨架层级、绑定姿势、顶点影响、法线和材质数据。

如何处理不均匀的生成几何体? 使用重新网格化或重新拓扑过程来创建支持预期弯曲的表面。蒙皮可以分配影响,但它无法在网格没有有用边流的地方发明边流。


Sculpty 将文本到 3D 和图像到 3D 生成与重新网格化、重新拓扑、PBR 纹理、渲染和导出工具相结合,因此您可以在绑定到骨架之前准备一个更干净的资产。访问 Sculpty 来生成或优化角色网格,测试其拓扑,并将更适合蒙皮的模型导入您的动画工作流程。