布料与毛发

自动关联目录:布料与毛发

官方依据:官方 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. 多线程问题?→ 与其它系统的线程约束一起查

一条原则:布料与毛发不需要网络同步(纯本地表现),不要把它们纳入复制或权威逻辑。

参考