布料与毛发
自动关联目录:布料与毛发
官方依据:官方 Gameplay Systems 正文点名 Physics 包含 Cloth Physics 与 Hair Physics(含 Hair)(已核实)。
1. 定位
布料与毛发是"次级运动":角色主体由动画驱动,披风、裙摆、头发由物理或近似解算驱动,让动作看起来有惯性。
一句话定位:它们只影响观感,不影响玩法——所以优化方向永远是"用更便宜的方式骗过眼睛",而不是追求物理正确。
2. 三种实现思路
| 思路 | 机制 | 成本 | 适用 |
|---|---|---|---|
| 物理模拟(Cloth / Hair) | 真实的布料/毛发解算 | 最高 | 近景主角 |
| Anim Dynamics | 简化弹簧质点,作为动画节点跑 | 中 | 中等距离、小配件 |
| 纯动画 / 骨骼驱动 | 预先做好的摆动动画 | 最低 | 远处、大量 NPC |
成本差距是数量级的:同一个披风,物理模拟可能比 Anim Dynamics 贵一个数量级,后者又比纯动画贵。
3. 布料(Cloth Physics)
| 要点 | 说明 |
|---|---|
| 绑定 | 布料绑定到 Skeletal Mesh 的某些骨骼 |
| 参数 | 刚度、阻尼、风、碰撞 |
| 碰撞 | 布料与身体的碰撞是主要成本来源 |
| LOD | 远处必须关闭或降级 |
| 与 动画性能 | 布料解算通常跑在动画之后 |
布料最常见的性能问题:所有角色都开了完整布料解算。正确做法是按距离分级——近景解算、中景 Anim Dynamics、远景纯动画或关闭。
4. 毛发(Hair Physics / Groom)
| 要点 | 说明 |
|---|---|
| 资产 | Groom 资产(毛发) |
| 解算 | 可开物理,也可只做骨骼驱动 |
| LOD | 毛发的 LOD 与屏幕覆盖 |
| 成本 | 毛发在近景特写下成本很高 |
毛发是"近景才值得"的典型:中远景应降到低 LOD 或关闭物理。
5. 代价与权衡
| 设计 | 收益 | 代价 | 什么时候不该用 |
|---|---|---|---|
| 完整布料解算 | 效果最好 | 最贵 | 中远景、大量 NPC 绝不用 |
| Anim Dynamics | 比解算便宜很多,效果够用 | 参数需要调 | 极远处仍可用纯动画 |
| 纯动画 | 最便宜、完全可控 | 无交互感、不能响应外力 | 主角近景不够 |
| 毛发物理 | 自然飘动 | 近景成本高 | 中远景关闭 |
| 全角色统一设置 | 配置简单 | 必然浪费 | 应按距离/重要性分级 |
6. 踩坑与排查
| 坑 | 现象 | 怎么验证 |
|---|---|---|
| 所有角色都开布料 | 帧率崩 | 按距离分级;检查哪些角色在解算 |
| 布料穿模 | 抖動、穿透身体 | 调碰撞与刚度;增大碰撞体 |
| 布料抖动 | 抽动 | 增加阻尼、降低刚度、检查迭代 |
| 远处还在解算 | 白付成本 | 配置 LOD 关闭阈值 |
| 毛发很卡 | 近景特写掉帧 | 降 LOD、减少发丝、关物理 |
| 布料在多线程下出问题 | 依赖游戏线程 | 检查是否与其它线程安全约束冲突 |
| 网络下表现不同 | 布料是纯本地的 | 正常——它不影响玩法,无需同步 |
7. 排查顺序
1. 帧率问题?→ 先统计有多少角色在解算布料/毛发
2. 分级:近景解算 / 中景 Anim Dynamics / 远景纯动画或关
3. 穿模抖动?→ 碰撞体与刚度阻尼
4. 毛发贵?→ LOD 与发丝数量
5. 多线程问题?→ 与其它系统的线程约束一起查一条原则:布料与毛发不需要网络同步(纯本地表现),不要把它们纳入复制或权威逻辑。
参考
- 刚体与 Chaos 破坏 · 碰撞与查询 · 动画性能
- 官方
Gameplay Systems分类(Cloth Physics、Hair Physics)
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/a01f7300.html
更新于:2026年10月10日