骨骼与网格
自动关联目录:骨骼与网格
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 都要存一份顶点差量,多了内存与解压都涨 |
| 与 Nanite | Nanite 不支持 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参考
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/659613ac.html
更新于:2026年10月10日