骨骼与网格

自动关联目录:骨骼与网格

1. 定位

Skeleton(骨架)是动画与网格之间的契约,Skeletal Mesh(骨骼网格体)是被绑定并蒙皮的实际资产。

一句话定位:骨架决定"哪些动画能共用",网格决定"长什么样"。多个网格共享一副骨架,就能共享全部动画——这是角色换装/换模型的基础。

2. 三者关系

Skeleton(骨架资产)
   ├── Skeletal Mesh A(体型 A)
   ├── Skeletal Mesh B(体型 B)
   └── 所有 Animation(绑定到 Skeleton,不是 Mesh)
资产绑定对象说明
Skeleton—骨骼层级与名称
Skeletal Mesh一个 Skeleton蒙皮数据 + 材质 + LOD
Animation一个 Skeleton因此可跨 Mesh 复用
Physics Asset一个 Skeletal Mesh碰撞与布娃娃

常见误解:以为动画绑在某个模型上。实际上动画绑在骨架上——所以两个模型只要用同一副骨架,动画就通用。

3. 骨骼 LOD

机制说明
骨骼 LOD(Skeleton LOD)定义"LOD n 时只解算前 N 根骨骼"
配置位置Skeletal Mesh 资产里
收益减少 IK 与 Transform Bone 的遍历量(见 动画性能)
代价远处手指/面部等骨骼停止更新

手指、面部、附属物(披风、武器挂点)是骨骼 LOD 的主要削减对象。

4. 网格 LOD

要点说明
LOD 数量通常 3–5 级
自动 LOD 生成引擎可自动生成,但质量需人工检查
Nanite 的关系Nanite 的 Skeletal Mesh 支持无几何 LOD,改用动画 LOD(见 Nanite)
LOD 与动画联动网格 LOD 下降时同步降动画精度

Nanite Skeletal Mesh 与传统 LOD 是两套思路:前者靠虚拟化几何,后者靠预生成低模。选哪条要看平台是否支持 Nanite(移动端不支持)。

5. Morph Target(变形目标)

要点说明
用途面部表情、肌肉变形
代价每个 Morph Target 都要存一份顶点差量,多了内存与解压都涨
与 NaniteNanite 不支持 Morph Target(见 Nanite)
曲线驱动可用动画曲线驱动 Morph 权重
与骨骼动画取舍精细表情用 Morph,大幅度变形用骨骼

面部动画的方案选择:骨骼 vs Morph vs(UE5 的)其他方案,核心权衡是"精度 vs 内存/解压"。

6. Physics Asset

要点说明
作用定义骨骼的碰撞体与约束
用途物理模拟、布娃娃、命中判定
代价碰撞体越复杂,物理开销越大
简化远处应切到简化 Physics Asset

命中判定用 Physics Asset 还是简单胶囊体,是精度与成本的典型权衡。

7. 代价与权衡

设计收益代价什么时候不该用
共享骨架动画全部复用骨架一改,所有资产受影响差异极大的角色应分开
骨骼 LOD减少解算远处精度下降需要精确 IK 的角色不适用
网格 LOD减少三角形包体增大(存多套)Nanite 路线不需要
Nanite Skeletal Mesh免 LOD、细节高平台受限、不支持 Morph移动端、需要 Morph 时不可用
Morph Target表情精度高内存与解压成本数量应严格控制
复杂 Physics Asset物理与命中精确物理开销远处应简化

8. 踩坑与排查

坑现象怎么验证
动画不能共用骨架不同检查 Skeleton 资产是否同一个
改骨架后动画失效骨骼名/层级变了改名会影响所有动画,需谨慎
骨骼 LOD 没生效远处依然慢检查 LOD 配置与生效距离
Morph 在 Nanite 网格上无效不生效Nanite 不支持 Morph Target
内存高Morph / LOD 套数过多见 动画压缩与内存
物理开销大Physics Asset 太复杂简化碰撞体
模型穿插蒙皮权重问题检查权重而非改动画
打包后骨架报错缺失引用检查骨架与网格的引用完整性

9. 排查顺序

1. 动画不能复用?→ 是否同一副 Skeleton
2. 慢?→ 骨骼 LOD 是否配置;Physics Asset 是否过复杂
3. 内存高?→ Morph 数量、LOD 套数
4. Morph 不生效?→ 是否 Nanite 网格
5. 物理慢?→ 简化 Physics Asset

参考