刚体与 Chaos 破坏
自动关联目录:刚体与 Chaos 破坏
官方依据:官方 Gameplay Systems 正文点名 Physics 包含 物理 Actor 模拟与 Chaos Destruction(已核实)。
1. 定位
物理模拟让物体"自己动":刚体掉落、布娃娃、约束摆动、可破坏建筑。Chaos 是 UE5 的物理引擎,负责这些内容。
一句话定位:模拟是物理里最贵、也最难同步的部分——开启前先问一句"能不能用动画或脚本假装"。
2. 刚体模拟
| 功能 | 说明 |
|---|---|
Simulate Physics | 开启刚体模拟 |
Physics Asset | 骨架的物理体与约束(布娃娃) |
Physical Material | 摩擦、弹性、密度 |
Constraint | 约束(铰链、弹簧、球窝) |
| 质量与阻尼 | Mass、Linear/Angular Damping |
| 休眠 | 静止物体自动休眠,省成本 |
Physics Asset 的质量决定布娃娃表现:碰撞体过少/过大 → 姿势错乱、穿模。
3. 约束
| 类型 | 用途 |
|---|---|
| Hinge(铰链) | 门、摆 |
| Ball-and-Socket | 关节 |
| Prismatic | 滑动 |
| Spring / 弹簧 | 悬挂、柔性连接 |
Physics Constraint Component | 组件形式 |
约束是最容易"炸"的部分:质量比过大、约束过紧、迭代不足都会导致抖动或飞出。
4. Chaos Destruction(破坏)
| 概念 | 说明 |
|---|---|
| Geometry Collection | 破坏用的资产,定义碎块层级 |
| 碎裂层级 | 多层破碎(先裂成块,再裂成小块) |
| 损伤传播 | 施加伤害触发局部破坏 |
| 与 Nanite | Nanite 可用于 Geometry Collection(见 Nanite 篇) |
| 成本 | 碎块数量 × 模拟成本,破坏瞬间可能尖峰 |
破坏的性能问题几乎总在"碎块太多":限制每层碎块数、远处不模拟、及时让碎块休眠或销毁。
5. 代价与权衡
| 设计 | 收益 | 代价 | 什么时候不该用 |
|---|---|---|---|
| 刚体模拟 | 真实感、交互性 | 模拟成本 + 网络同步难(见 物理与网络同步) | 能用动画/脚本假装时不要用 |
| 布娃娃 | 死亡表现好 | Physics Asset 制作成本 + 模拟成本 | 简单倒地动画可能更划算 |
| 复杂 Physics Asset | 精确 | 模拟成本高 | 远处应切简化版本 |
| Chaos 破坏 | 场面好 | 碎块成本、包体、构建时间 | 一次性小道具不值得 |
| 多层碎裂 | 效果好 | 碎块数量指数风险 | 控制层数与每层数量 |
6. 踩坑与排查
| 坑 | 现象 | 怎么验证 |
|---|---|---|
忘了设 Physics Asset | 布娃娃姿势错乱 | 检查 Skeletal Mesh 的 Physics Asset |
| 碰撞体不匹配 | 穿模、抖动 | 检查 Physics Asset 的碰撞体 |
| 约束抖动/飞出 | 物体乱飞 | 检查质量比、约束参数、迭代次数 |
| 破坏瞬间卡顿 | 碎块太多 | 限制碎块数、远处不模拟 |
| 物体永远不休眠 | 一直耗 CPU | 检查是否在被微弱扰动 |
| 物理体参与网络复制 | 抖动拉扯 | 见 物理与网络同步 |
| 模拟结果两端不一致 | 客户端看到的和打中的不一样 | 权威判定必须在服务端 |
| 大量物理体 | 帧率掉 | 减少模拟体、用休眠、远处关闭模拟 |
7. 排查顺序
1. 姿势/穿模?→ Physics Asset 的碰撞体
2. 抖动/飞出?→ 质量比与约束参数
3. 卡顿?→ 模拟体数量、碎块数量、是否休眠
4. 两端不一致?→ 物理与网络同步篇
5. 破坏不生效?→ Geometry Collection 与伤害配置8. 调试
| 手段 | 用途 |
|---|---|
Show > Physics / 物理调试视图 | 显示物理体与约束 |
pxvis 系列 | 物理调试绘制 |
stat physics | 物理耗时 |
| Physics Asset 编辑器 | 调整碰撞体与约束 |
参考
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/6bbf50c1.html
更新于:2026年10月10日