外观
官方资料与社区实践
约 12353 字大约 41 分钟
2026-10-14
- 检索日期:2026-10-10(Epic 文档站当前默认版本标签为 5.8;本笔记以 5.4–5.7 为主,5.8 仅作补充)
- 研究方式:WebSearch + WebFetch 逐页抓取原文;抓不到原文的内容一律标注「未验证」,不编造数值
- 本文件所有来源均附 URL 与抓取到的页面标题;正文用方括号编号引用(见第 1 节来源表)
0. 阅读须知
0.1 可信度分级
| 级别 | 含义 |
|---|---|
| A | Epic 官方文档 / 官方发布说明 / 官方 Python API 页,已抓取原文 |
| B | Epic 官方演讲/活动页的摘要(只抓到摘要,没有转录),或论坛里疑似 Epic 员工的回复(CedUE 等;页面通常未明示身份,故写「疑似」) |
| C | 社区论坛帖、社区教程、个人博客/开发日志,已抓取原文 |
| D | 仅来自 WebSearch 摘要、或原文抓取失败(403 等),内容未能核对 |
0.2 抓取局限(务必知晓)
- 所有视频均无转录:GDC 2025 / Unreal Fest 2024 Gold Coast / Unreal Fest Orlando 2025 的 YouTube 页只抓到标题;第三方转录站返回 403。因此这些演讲的具体数值只能通过 Epic 官方文档(尤其是 Chaos Destruction Optimization 页,它本身就是 GDC 2025 演讲的文字版)间接获得。
unrealengine.com/news/...(5.4–5.8 公告页)全部 403,用的是 docs 站的 Release Notes。- UE 5.5/5.6/5.7 Release Notes 页面很长(34–38 万字符),工具截断后详细的 Simulation > Physics 逐条列表没能读到,只拿到顶部「Highlights」里的 Chaos Destruction 条目。5.3、5.4 的详细列表读到了。
- Epic 文档站对
?application_version=参数有时返回空页(只有 "Table of Contents")。chaos-destruction-optimization?application_version=5.6成功,默认/5.5/5.7 多次失败,所以该页内容按 5.6 版 记录。 - Physics Fields 的文档页(
physics-fields-in-unreal-engine)只抓到一句概述,Field 的细节改由 CEDEC 2022 Epic Japan 讲稿 [T7] 与 4.27 旧文档 [A14] 补充(均为旧版本,已标注)。 - Reddit 没有被检索引擎索引到(多次搜索 0 条),故「Reddit/Unreal Slackers」类资料未覆盖;社区部分以 Epic 开发者论坛、个人博客、开发日志为主。
- Stray Spark Studio 博客原文返回 403,其数值只来自搜索摘要,列为 D 级、未验证。
1. 来源总表
1.1 Epic 官方文档(A)
| ID | 页面标题(抓取到的) | URL | 备注 |
|---|---|---|---|
| A1 | Destruction Overview | Unreal Engine 5.8 Documentation | https://dev.epicgames.com/documentation/en-us/unreal-engine/destruction-overview | 概念总览、Connection Graph、Cache System |
| A2 | Geometry Collections User Guide(5.7 / 5.8 版) | https://dev.epicgames.com/documentation/en-us/unreal-engine/geometry-collections-user-guide | 创建 GC、材质、水密/不相交要求 |
| A3 | Fracturing Geometry Collections User Guide | https://dev.epicgames.com/documentation/en-us/unreal-engine/fracturing-geometry-collections-user-guide | 各 Fracture 工具、Noise 选项 |
| A4 | Cluster Geometry Collections User Guide | https://dev.epicgames.com/documentation/en-us/unreal-engine/cluster-geometry-collections-user-guide-in-unreal-engine | Auto/Magnet/Flatten/Merge/Level Up、Embedded Geometry |
| A5 | Destruction Quick Start | https://dev.epicgames.com/documentation/unreal-engine/destruction-quick-start | FS_MasterField 触发 |
| A6 | Dataflow for Destruction Quickstart | https://dev.epicgames.com/documentation/unreal-engine/dataflow-for-destruction-quickstart | Dataflow 破碎全流程,含数值示例 |
| A7 | Chaos Destruction Optimization(UE 5.6 版) | https://dev.epicgames.com/documentation/en-us/unreal-engine/chaos-destruction-optimization?application_version=5.6 | 最重要的性能页,对应 GDC 2025 演讲 |
| A8 | Physics in Unreal Engine | https://dev.epicgames.com/documentation/en-us/unreal-engine/physics-in-unreal-engine | Connection Graph/World Support/Cache/Niagara 概述 |
| A9 | Fracture Mode Selection Tools User Guide | https://dev.epicgames.com/documentation/en-us/unreal-engine/fracture-mode-selection-tools-user-guide | Select 工具;未含 Convex/Proximity 细节 |
| A10 | Dataflow Overview | https://dev.epicgames.com/documentation/unreal-engine/dataflow-overview?lang=en-US | Dataflow 概念;注明在 Lego Fortnite 中设计和验证 |
| A11 | unreal.GeometryCollection — Unreal Python 5.7 (Experimental) documentation | https://dev.epicgames.com/documentation/en-us/unreal-engine/python-api/class/GeometryCollection?application_version=5.7 | GC 资产全部属性清单,是 Details 面板的最佳对照 |
| A12 | unreal.GeometryCollection — Unreal Python 5.3 (Experimental) documentation | https://dev.epicgames.com/documentation/en-us/unreal-engine/python-api/class/GeometryCollection?application_version=5.3 | 用于与 5.7 对照 |
| A13 | Chaos Modular Vehicles Quickstart | https://dev.epicgames.com/documentation/en-us/unreal-engine/chaos-modular-vehicles-quickstart | Cluster Union 的官方用例(车辆);Force Update Active Transforms |
| A14 | Chaos Destruction Overview(4.27 旧版) | https://dev.epicgames.com/documentation/en-us/unreal-engine/chaos-destruction-overview?application_version=4.27 | 旧但仍是唯一讲 Level Set/Implicit/Anchor Field/Cluster Strain Field 的官方长文 |
| A15 | Physics Fields in Unreal Engine | https://dev.epicgames.com/documentation/en-us/unreal-engine/physics-fields-in-unreal-engine | 只抓到概述一句 |
| A16 | Chaos Destruction in Unreal Engine(landing page, 5.7 版) | https://dev.epicgames.com/documentation/en-us/unreal-engine/chaos-destruction-in-unreal-engine?application_version=5.7 | 仅导航页,无技术内容 |
1.2 官方发布说明(A)
| ID | 页面标题 | URL |
|---|---|---|
| RN50 | Unreal Engine 5.0 Release Notes | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.0-release-notes?application_version=5.0 |
| RN51 | Unreal Engine 5.1 Release Notes | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.1-release-notes?application_version=5.1 |
| RN52 | Unreal Engine 5.2 Release Notes(仅搜索摘要+局部抓取) | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.2-release-notes?application_version=5.2 |
| RN53 | Unreal Engine 5.3 Release Notes | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.3-release-notes?application_version=5.3 |
| RN54 | Unreal Engine 5.4 Release Notes | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5.4-release-notes?application_version=5.4 |
| RN55 | Unreal Engine 5.5 Release Notes(仅 Highlights) | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-5-release-notes |
| RN56 | Unreal Engine 5.6 Release Notes | Unreal Engine 5.6 Documentation(仅 Highlights) | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-6-release-notes?application_version=5.6 |
| RN57 | Unreal Engine 5.7 Release Notes | Unreal Engine 5.7 Documentation(仅 Highlights) | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-7-release-notes?application_version=5.7 |
| RN58 | Unreal Engine 5.8 Release Notes(补充,仅 Highlights) | https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-8-release-notes |
| F16 | Unreal Engine 5.7 Released - Announcements(含 5.7.x 热修复列表) | https://forums.unrealengine.com/t/unreal-engine-5-7-released/2673913 |
1.3 官方演讲 / 活动页(B,仅摘要)
| ID | 标题 | URL | 抓到的内容 |
|---|---|---|---|
| T1 | GDC Vault — Dynamic Destruction in UE5 with the Chaos Destruction System (Presented by Epic Games) | https://gdcvault.com/play/1035357/Dynamic-Destruction-in-UE5-with ;YouTube: https://www.youtube.com/watch?v=wPgd1J1Tf70 | 讲者 Jim VanAllen、Cedric Caillaud(Epic);摘要;无转录 |
| T2 | Tips and Tricks for Chaos Destruction | Unreal Fest Gold Coast 2024 | https://dev.epicgames.com/community/learning/talks-and-demos/dBV7/unreal-engine-tips-and-tricks-for-chaos-destruction-unreal-fest-gold-coast-2024 ;YouTube: https://www.youtube.com/watch?v=zFiHDRREv7E | 仅标题;搜索摘要称讲者 Technical Artist Xiao Yue(D 级);无转录 |
| T3 | Talks And Demos: Using Chaos Physics for Large-Scale and High-Fidelity Scenes (Unreal Fest 2024) | https://forums.unrealengine.com/t/talks-and-demos-using-chaos-physics-for-large-scale-and-high-fidelity-scenes-unreal-fest-2024/2025096 | 摘要:5.4 Chaos 大改,Fortnite 超大沙盒动态破坏,运行时性能与内存改进;未点名 Lego Fortnite |
| T4 | Talks And Demos: Chaos Physics in LEGO® Fortnite: Building A Fully Interactive Sandbox Experience (GDC 2024) | https://forums.unrealengine.com/t/talks-and-demos-chaos-physics-in-lego-fortnite-building-a-fully-interactive-sandbox-experience-gdc-2024/1811487 | 摘要;GDC Vault 页:https://gdcvault.com/play/1034659/Chaos-Physics-in-LEGO-Fortnite(仅出现在搜索结果,未抓取) |
| T5 | Non-Destructive Workflows for Chaos Physics in UE5(Unreal Fest Orlando 2025) | https://www.youtube.com/watch?v=t_jyTILDYo8 | 通过 F1 间接得知内容;无转录 |
| T6 | ビルが崩れ、破片が舞う。スクウェア・エニックスとEpic Games Japanが送る、Chaos Destructionを活用したリアルタイム破砕とNiagara FluidによるVFX制作ノウハウ【UNREAL FEST WEST '22】|ゲームメーカーズ | https://gamemakers.jp/article/2023_01_27_24676/ | 整篇写成文章,信息量大(UE 5.0/5.1 时期,City Sample 大楼) |
| T7 | Unreal Engine 5 - Chaos Destruction 入門【CEDEC 2022】(Epic Games Japan 讲稿) | https://www.docswell.com/s/EpicGamesJapan/5V3PXZ-UE_CEDEC2022_ChaosDestruction | 讲稿文字摘要(UE 5.0/5.1 时期) |
| T8 | Tutorial: Chaos Destruction - Case Studies(Matrix Awakens 桥/楼体) | https://forums.unrealengine.com/t/tutorial-chaos-destruction-case-studies/610514 | 仅指向教程,无技术内容;教程本体 https://dev.epicgames.com/community/learning/tutorials/4Vxq/unreal-engine-chaos-destruction-case-studies 未抓取 |
1.4 Epic 开发者论坛(B/C)
| ID | 标题 | URL |
|---|---|---|
| F1 | Chaos Destruction Dataflow Advice and Best practice | https://forums.unrealengine.com/t/chaos-destruction-dataflow-advice-and-best-practice/2688481 |
| F2 | Looking for an Advanced Workflow for Chaos Destruction on a Building | https://forums.unrealengine.com/t/looking-for-an-advanced-workflow-for-chaos-destruction-on-a-building/2315780 |
| F3 | Geometry Collections, Cluster Unions, and Connectivity Graph | https://forums.unrealengine.com/t/geometry-collections-cluster-unions-and-connectivity-graph/2075192 |
| F4 | Cluster Union makes fracturing Geometry Collections more difficult. | https://forums.unrealengine.com/t/cluster-union-makes-fracturing-geometry-collections-more-difficult/2703806 |
| F5 | 5.3 chaos destruction replication | https://forums.unrealengine.com/t/5-3-chaos-destruction-replication/1326436 |
| F6 | What is the current state of destruction in multiplayer? | https://forums.unrealengine.com/t/what-is-the-current-state-of-destruction-in-multiplayer/2037228 |
| F7 | Unreal engine destruction "bugs" | https://forums.unrealengine.com/t/unreal-engine-destruction-bugs/652211 |
| F8 | Geometry Collection loses collision after breaking/fracturing. [Chaos Destruction] | https://forums.unrealengine.com/t/geometry-collection-loses-collision-after-breaking-fracturing-chaos-destruction/2684190 |
| F9 | Shattering, laggy geometry collection after updating from 5.1.1 to 5.2.0 | https://forums.unrealengine.com/t/shattering-laggy-geometry-collection-after-updating-from-5-1-1-to-5-2-0/1217946 |
| F10 | Nanite-enabled Geometry Collection with Fallback physics simulation issue | https://forums.unrealengine.com/t/nanite-enabled-geometry-collection-with-fallback-physics-simulation-issue/2623532 |
| F11 | Remove Unwanted Fragments from Geometry Collection? | https://forums.unrealengine.com/t/remove-unwanted-fragments-from-geometry-collection/2572474 |
| F12 | Chaos Destruction Fractures | https://forums.unrealengine.com/t/chaos-destruction-fractures/2385429 |
| F13 | Tutorial: CHAOS DESTRUCTION OPTIMIZATIONS(仅指向官方教程) | https://forums.unrealengine.com/t/tutorial-chaos-destruction-optimizations/2647162 |
| F14 | Chaos Debris Optimizer 1.1.0(第三方 Fab 插件发布帖) | https://forums.unrealengine.com/t/released-chaos-debris-optimizer-1-1-0-ue5-chaos-debris-cleanup-plugin/2746154 |
1.5 社区博客 / 开发日志 / 第三方文档(C/D)
| ID | 标题 | URL | 级别 |
|---|---|---|---|
| C1 | Fix: Unreal Chaos Destruction Not Fracturing(Bugnet Blog, Alex Petrov, 2026-04-17) | https://bugnet.io/blog/fix-unreal-chaos-destruction-not-fracturing | C(个人经验,未标 UE 版本) |
| C2 | Why My Mesh Wouldn't Break in Unreal Engine Chaos(dev.to,初学者) | https://dev.to/dinesh_04/why-my-mesh-wouldnt-break-in-unreal-engine-chaos-327l | C(无数值) |
| C3 | Chaos Physics - Jonathan Kohl(In Plain Sight 开发日志, 2024-04-26) | https://6sidedstudio.itch.io/inplainsight/devlog/721603/chaos-physics-jonathan-kohl | C |
| C4 | Building a Procedural Destruction Pipeline with Houdini & UE5(80.lv, 2026-05-06, PROJECT MAYHEM) | https://80.lv/articles/building-a-procedural-destruction-pipeline-with-houdini-and-unreal-engine-5 | C |
| C5 | niagara-destruction-driver(GitHub, eanticev, MIT, v0.9.0, 测试于 UE 5.5.4) | https://github.com/eanticev/niagara-destruction-driver | C |
| C6 | Geometry Collections (Chaos) - Unreal(SideFX Houdini Engine 文档) | https://www.sidefx.com/docs/houdini/unreal/chaosintegration.html | C(工具厂商文档,属性名可靠) |
| C7 | Unreal Engine 5.7 Performance Highlights - Tom Looman | https://tomlooman.com/unreal-engine-5-7-performance-highlights/ | C |
| C8 | Chaos Destruction in UE5: Building Destructible Environments That Don't Tank Your Frame Rate(Stray Spark Studio) | https://www.strayspark.studio/blog/chaos-destruction-ue5-destructible-environments | D(403,仅搜索摘要,数值未验证) |
| C9 | Using Fracture with Sequencer in Unreal Engine(versluis.com) | https://www.versluis.com/2025/06/using-fracture-with-sequencer-in-unreal-engine/ | D(仅搜索摘要) |
2. 官方概念要点(已核对原文)
- 资产模型:Chaos Destruction 的基础资产是 Geometry Collection (GC),可由 Static Mesh、含 Static Mesh 组件的 Blueprint、甚至其它 GC 创建;Fracture Mode 里做破碎与聚类 [A1][A2]。
- Connection Graph:模拟开始时,按每块碎片的最近邻构建连接图,每条连接是带初始 strain 的刚性约束;碰撞冲量或 Field 超过连接上限时断开,Field 也可以降低 strain 让结构变弱 [A1]。
- Clustering:一个簇在开始时是一个刚体(合并质量与惯量),之后在模拟中分裂 [A1]。「每个 Fracture Level 就是一层簇;高层簇(粗的)先碎,低层后碎」[A4]。簇能降低性能开销,因为同一时刻要算的碰撞更少 [A4]。
- Damage Threshold 可按簇设置,决定何时触发断裂 [A8];Details 里有
damage_threshold(每个 index 对应一个 cluster level 的 float 数组)、damage_model、damage_propagation_data、use_size_specific_damage_threshold、use_material_damage_modifiers、per_cluster_only_damage_threshold[A11]。(index 与 level 的精确对应关系,官方原文未逐字写明,未验证) - World Support / Kinematic:GC 的一部分可设为 Kinematic,减少对 Anchor Field 的依赖 [A8]。
- Cache System:记录每帧 transform 与事件并压缩,重放时几乎没有运行时开销,缓存的模拟在交互时仍可「变活」[A8];与 Niagara 联动 Break/Collision Events [A8]。
- Dataflow:节点式、依赖驱动、非破坏性的程序化资产生成系统;一个图可被多个资产复用,按各自输入出不同结果;可用 C++ 扩展节点;官方称它在 Lego Fortnite 中设计并验证 [A10]。
- GC 来源要求(官方 Best practice):源网格必须 水密(无开放面/边),否则模拟差且不可预测;组件之间 不能相交,否则 Chaos Solver 会把重叠物体推开,产生异常结果 [A2]。
3. 推荐流程:创作 → 破碎 → 簇层级 → 物理设置 → 触发 → 性能优化 → 特效
每条后面标出处。「综合判断」表示是我把多个来源合起来推出的实践建议,不是某页原话。
3.1 创作(Authoring)
- 水密 + 互不相交 + 模块化:官方 GC 指南明确要求 [A2];4.27 旧文档和 CEDEC 2022 讲稿也强调模块化、无间隙、无穿插 [A14][T7]。
- 按材质分配 Material ID:旧文档指出每种材质一个 ID,破碎后会为内部面生成第二个 ID,转换成 GC 会合并相同材质、减少 draw call [A14]。GC 指南:原材质槽被复制一份,Element 1/3 对应 Element 0/2 的内部面,替换即可换内部材质 [A2];偶数槽位是内部材质(CEDEC 2022)[T7]。
- 大网格要拆:UFW'22 Square Enix 案例中,一栋楼约 800 个部件、总面数数千万,一次性转 GC 内存溢出崩溃;最终没有整栋 GC 化,且「本来也不推荐,推荐模块化+集群分组」[T6]。5.4 起转换超过 1M 三角形会弹警告和进度条 [RN54]。
- 预处理:CEDEC 2022 讲稿建议用 Modeling Mode 简化、修复穿插、合并网格、删除内部/无用结构、重新网格化 [T7];5.1 的 GeoMerge/TinyGeo、Validate 工具用于清理 [RN51]。
- 多网格合并时,第一个选中的 Actor 决定 pivot [A2]。
- 外部 DCC 预破碎:Houdini Engine 可通过
unreal_gc_piece(簇层级,值必须连续)、unreal_gc_cluster、unreal_gc_clustering_damage_threshold等属性直接生成 GC [C6];PROJECT MAYHEM 用 Houdini HDA 暴露 cluster size/detach ratio 给美术,并附 low/mid/high 三档预算预设(各自瞄准 60 fps,未给碎块数)[C4]。 - 混合材质结构(石+木)用同一套 Uniform 破碎效果差:石头应碎得粗块,木头应碎得带劈裂 [F1 原帖作者描述];Dataflow 中按源网格名过滤时,碎块名会变成
SM_01…,关键字过滤会失败,需改走CollectionSelectTransformString或按源网格分别处理 [F1]。(C 级,个人经验)
3.2 破碎(Fracture)
- 两条路径:Fracture Mode 直接破碎 [A3],或 Dataflow 图(可复用、非破坏、可换源网格/点分布/破碎节点)[A6]。Epic 回复(疑似员工 CedUE,2025-02):资产多、要快速迭代时推荐 Dataflow,Epic 内部大量使用 [F2]。
- 每次破碎新增一个 Fracture Level,不同层可用不同工具;Reset 回到未破碎状态 [A3]。
- 工具(参数均出自 A3):
- Uniform(Voronoi,Min/Max Sites);Cluster(多簇 Voronoi:Min/Max Num Clusters、Sites per Cluster、Cluster Radius Offset);Radial(Angular/Radial Steps、Variability);Planar;Slice(X/Y/Z 切片数、角度/位置抖动);Brick(实验性,Bond 类型、砖尺寸);Mesh(用静态网格当切刀,Single/Uniform Random/Grid 分布);Custom(Freeze Live Sites 手工布点)。
- 通用:Random Seed(-1 每次随机)、Chance to Fracture、Group Fracture、Grout;Noise:Amplitude(cm)/Frequency/Persistence/Lacunarity/Octave/Point Spacing(Point Spacing 越大三角形越少)。
- Quick Start 默认结果:Uniform 保持默认 → 20 块(Level 0 = 1,Level 1 = 20)[A5]。
- 材质匹配破碎方式属于综合判断(见 3.1-7)。
3.3 簇层级(Clustering)
- 目的:减少同时活动的刚体数,并让破坏有「先大块、后碎块」的层次 [A4]。
- 工具(A4):
- Auto:按指定 Cluster Sites 数建簇;
Enforce Cluster Connectivity控制是否要求连通;官方示例:先 500 个 Uniform Voronoi sites,再 Auto Cluster 200 → 100 → 50 → 15,逐层加 Level。 - Magnet:按相邻环数(Iterations)把选中骨骼的邻居成簇。
- Flatten:去掉中间层,只留最终碎片。
- Cluster / Uncluster / Merge / Level Up,以及在 Fracture Hierarchy 里拖拽。
- Embedded Geometry(钢筋、线缆、灰缝等):纯视觉、无碰撞、不参与模拟。
- Auto:按指定 Cluster Sites 数建簇;
- 官方对建筑的建议(4.27 旧文档):Level 1 用少量大块簇,越高层碎片越小;不要在首次破碎里放几千块,让碎片随建筑崩塌逐步脱落;可在场景里设 Max Cluster Level 限制最深破碎层 [A14]。
max_cluster_level在 5.3 与 5.7 Python API 中仍存在("Maximum level for cluster breaks")[A12][A11]。 - 簇要沿结构组织:疑似 Epic 员工 CedUE(2022-09):每层楼一簇 → 房间/墙体 → 更小的逻辑组 [F7]。
- Auto Cluster 后续增强:5.1 增加按
Fraction of Input聚类与Avoid Isolated(避免只含一个 transform 的簇)[RN51];5.3 增加网格(ByGrid)聚类选项与 Tiny Cluster 模式 [RN53];5.4 增加「偏好更凸的簇」选项和 Magnet clustering 的 Dataflow 节点 [RN54]。 - 同一 Cluster Group Index 的多个 GC 被当作一个簇(Python API 说明:具有相同 index 的 GC 作为单个 cluster 模拟)[A11];CedUE(2024-11):把两个 GC 设为相同的非零 index,它们会在物理线程上透明地初始化成一个 cluster union;需要更多游戏控制时用 Cluster Union Component [F3]。
- Cluster Union(5.3 新增):Release Notes 称其「功能上等同于 welding,但针对 Geometry Collection」[RN53]。注意以下社区/官方回复:
- 加入 Cluster Union 后「变得更难打碎」:CedUE 称它只加一层层级、不应改变阈值,并给出调试 CVar;Fields 只作用于「质心在场范围内」的簇/部件,对簇大小敏感;不要关闭 Damage Propagation(会回到旧行为),要阻止能量传递应保持开启并把 break/shock 因子设 0 [F4]。
- 运行时用
AddComponentToCluster并传入空 BoneIds,会得到「全有或全无」的整体破碎,且 Field 对其无效;传入 root 加部分子骨骼才有效,原因 Epic 未解释 [F3]。 - Epic(CedUE,2025-03)称 Cluster Unions 仍在开发;2026-05 称:站立/坠落由游戏逻辑判断;Lego Fortnite Odyssey 用 GameplayGraph 插件 的高层图检测连通岛,每个岛成为独立的 cluster union;断裂后要把一块移入新的 cluster union [F2][F3]。
- Geometry Collection 不真正支持结构完整性:一整层楼可以只靠一根角柱站立,最后一根柱子没了上层才掉下来 [F2]。
3.4 物理设置(Physics)
(a) 碰撞(Collision)
| 项 | 内容 | 来源 |
|---|---|---|
| Collision Type | Particle-Implicit / Implicit-Implicit | [A14] |
| Implicit Type | Analytic(Box/Sphere/Capsule:快、省内存、精度低,Capsule 受限应避免);Level Set(体素 SDF,精度高,内存随分辨率立方增长,应配 Particle-Implicit) | [A14] |
| 官方 5.0 时期建议 | CedUE(2022-09):UE5 里 优先 Convex 而不是 Level Set,行为与性能更可预测 | [F7] |
| Epic Japan 建议 | 推荐 Convex(贴合形状、较轻);Level Set 精度高但内存和负载增加;自动生成的凸包互不重叠,可能与预期形状不符,需用控制台或 Fracture Mode 逐个检查 | [T6] |
| 5.7 Python API | 旧的 per-asset 属性(collision_type、implicit_type、min/max_level_set_resolution、collision_object_reduction_percentage、collision_particles_fraction、maximum_collision_particles)均标为 deprecated,改用 size_specific_data(按体积区间配置;可为空表示无碰撞几何) | [A11](5.3 页同样标 deprecated [A12]) |
| 其它 | import_collision_from_source;optimize_convexes(运行时为每个对象生成单个凸包并忽略用户定义的,实验性,需 p.Chaos.Convex.SimplifyUnion) | [A11] |
| 坏凸包 | 簇上凸包质量差会产生「隐形盒子」;可在 Fracture 的 Convex 工具里检查,删除不好的簇凸包,则回退到子级凸包的并集 | [F7] |
| 碰撞丢失 | 用 Level Set 时角色穿过碎裂地面(分辨率导致的小洞);提高分辨率只改善一点;回复建议改 Convex + Implicit-Implicit | 搜索摘要,原帖未抓取,D 级 |
| 复杂碰撞 | 5.4 Release Notes:GC 可指定使用「可能更昂贵的碰撞几何」 | [RN54] |
(b) 质量 / 物理材质
mass在mass_as_density时按 kg/m³ 解释,仅当未设物理材质时有效;minimum_mass_clamp默认 0.1;density_from_physics_material可从物理材质取密度 [A11]。CEDEC 2022:资产里的 Mass 以密度表示,组件上的 Mass 不被考虑 [T7]。- 官方优化页提醒:密度写错很常见;Physical Material 还管摩擦/弹性;
Damage Threshold Multiplier可对所有资产统一缩放阈值 [A7]。 - 薄片/地形:论坛回复建议把可破坏区域做成约 30–50 cm 厚的实体网格、调高最小质量并开启 Mass as Density,否则碎片不稳定会「飘起」(C 级,非官方)[F12]。
(c) Damage Threshold / Damage Model / Propagation
- 阈值数组按簇层级给;Dataflow Quickstart 示例
5000, 500, 50(粗 → 细递减)[A6]。4.27 旧文档的解释:下落的簇会在碰撞中损失速度,所以更小的碎片需要更低的阈值才能继续碎 [A14]。 - Damage Propagation(5.1 引入,参数化到每个实例):Break Propagation(断裂后剩余 strain 的一部分传给相连碎片;例:强度 200 的球撞强度 100 的墙,剩余 100 继续传递)与 Shock Propagation(原始冲击 strain 的一部分传给相连碎片;官方推荐配合 size-specific 阈值使用,让大块先吸收冲击)[A7][RN51]。
- Damage Model:5.3 新增「基于材质的 Damage Model」(Highlights 称实验性)[RN53];5.4 增加组件级「use material damage modifier」[RN54];5.7 API 有
damage_model枚举和use_material_damage_modifiers(用物理材质上的修正量调整用户阈值)[A11]。 - 仅用碰撞破碎需要启用 Damage Propagation Data 与 Enable Damage from Collision;结果过于一致,官方建议与 External Strain 结合 [A7]。
- 调阈值的调试手段:5.1 的 Damage Watcher(Fracture Mode 里开启 Enable Runtime Data Collection,Damage 列显示每骨骼运行时伤害、阈值与是否断裂)[RN51]。
(d) Anchored / Kinematic(取代大部分 Anchor Field)
- 旧法:Anchor Field 必须通过 Construction Field 预先加到 GC 的 Initialization Field;单纯放置无效 [A14][T7]。
- 现法:Fracture Mode 里右键把骨骼设为 Anchored 或 Kinematic;打断锚点会激活整个 GC,Kinematic 的部分原地不动 [A7]。
- CedUE(2025-02):模块化场景里优先用 Anchored 状态而不是 Anchor Field;根骨骼设 Anchored 是不错的默认;Anchored 的簇是 kinematic 但仍可被 External Strain/伤害打碎;运行时可用蓝图函数
RemoveAllAnchors、SetAnchoredByIndex、SetAnchoredByBox;更深层级的骨骼也可以设 Anchored [F2]。 - 5.0/5.1 时期:Initial Dynamic State 设为 Static 等效于锚点场(CedUE 2022;CEDEC 2022)[F7][T7]。
- 5.4 修复了「锚定骨骼在 strain 下不断裂」的 bug [RN54],说明 ≤5.4 已有该状态。
(e) Connection Graph(浮空碎块的元凶)
- 5.0.3 默认 Minimal Spanning Delaunay 有局限,容易连接相距过远的碎片造成悬空;5.1 引入 Bounds Overlap 并增加运行时可视化 [F7][RN51][T6]。
- 5.3:Level Set 也可用于生成连接图;Proximity 工具新增基于接触面积的连接方式 [RN53]。
- 运行时可视化 CVar:
p.Chaos.DebugDraw.Enabled 1、p.Chaos.Solver.DebugDraw.Cluster.Constraints 1;另有p.Chaos.DebugDraw.ConnectionGraph.ShowInternalStrains 1(CedUE 2026-03,注意:伤害数值仅在以角色游玩时显示,编辑器 Simulate 不显示)、p.Chaos.DebugDraw.ConnectionGraphLevelOffset(5.3 新增)[F7][F4][RN53]。
(f) Removal / Sleep(清理碎片)
remove_on_max_sleep、maximum_sleep_time(Vector2D 秒)、removal_duration、scale_on_removal(默认开)、slow_moving_as_sleeping、slow_moving_velocity_threshold(cm/s)、automatic_crumble_partial_clusters[A11]。- 官方优化页:Remove on Sleep 是资产级(示例:睡眠 3 秒后消失),可缩放消失、可通知后碎裂;Remove on Break(5.1 新增)在 Fracture Mode 的 Utility 区按骨骼/簇设 min/max 时间,可 Cluster Crumbling;用途是减少活动刚体、避免场景杂乱、模拟「瞬间移除」效果 [A7][RN51]。
- 全局:
p.Chaos.GC.RemovalTimerMultiplier(在 .ini 设置)可后期统一缩放,不用逐资产返工;组件级标志可关闭移除 [A7]。 - 5.6 起破坏/性能优化的 CVar 会暴露到 Project Settings [RN56]。
3.5 触发(Triggering)
| 方式 | 特点 | 来源 |
|---|---|---|
| Physics Field(FS_MasterField 等) | 控制最细、能力最强;但复杂 Field「在量产里往往太贵」,同时破坏大量物体会卡;官方称「每次破坏数毫秒」(原文要点:milliseconds per destruction) | [A7] |
| Trace + External Strain(Blueprint) | 轻量,适合子弹/激光,无需投射物;可加 Apply Breaking Linear Velocity 增加冲击感 | [A7] |
| 仅碰撞 | 高效,但结果过于一致;需开 Damage Propagation Data、Enable Damage from Collision | [A7] |
| 最佳实践(官方) | 碰撞 + External Strain 组合,针对高速投射物调参,冲击大小随投射物类型/速度变化 | [A7] |
| 按碎片精确打击(5.1+) | 事件与 trace 查询可返回 Item Index,据此查询层级、施加内/外 strain、施力、请求 Crumble,无需 Field | [RN51] |
| 叶子骨骼 Trace(5.7) | 对未破碎 GC 的 trace 默认返回 root 骨骼;5.7 的 Leaf Sub-trace 可拿到精确命中的叶子骨骼 | [RN57] |
- Dataflow Quickstart 的蓝图示例参数:Apply External Strain 的 Radius 100、Propagation Depth 1、Propagation Factor 1、Strain 50000;Linear Velocity 变量默认 500 [A6]。
- Quick Start 的 Field 触发:生成
FS_MasterField,Activation Type 设 Trigger,CE Trigger 立即触发 [A5]。 - Field 内部结构(CEDEC 2022,旧):External Strain 对阈值不高于指定值的簇破碎一级、不累积(一次破多级需提高 Num Strain Hits);Internal Strain 把阈值减去指定值;Sleep/Disable/Kill 用于性能控制;
AddTransientField只应用一次,AddPersistentField每帧应用,AddConstructionField用于锚点 [T7]。Master Field 勾选Force Dynamic Switch会穿透 Anchor(UFW'22 提示)[T6]。
3.6 性能优化(Performance)
综合 [A7] 为主:
- 用 Anchored/Kinematic 与簇减少活动刚体(3.3、3.4d)。
- Remove on Sleep / Remove on Break + 全局倍率 CVar(3.4f)。
- 节流(Throttling)CVar:
p.Chaos.Clustering.PerAdvanceBreaksAllowed <count>、p.Chaos.Clustering.PerAdvanceBreaksRescheduleLimit <frames>、p.Clustering.ParticleReleaseThrottlingMinCount <count>、p.Clustering.ParticleReleaseThrottlingMaxCount <count>;前两个限制每帧断裂数,后两个限制释放出的刚体数 [A7]。(PerAdvanceBreaksAllowed的全局上限在 5.4 Release Notes 中新增 [RN54]。官方页只给了名字,没给推荐值) - One-Way Interaction:单向物体碰撞时不增加 strain、不推进破坏,也不影响双向物体;两个单向物体相撞用廉价的球对球;是组件级设置,定义从哪一层开始单向 [A7]。
- Tiny Geo 工具:把微小碎片并入较大邻居以减少块数;官方示例 Relative Volume 0.04;更小的粒子交给 Niagara [A7](5.1 起 GeoMerge 改名 TinyGeo,5.3 增加 Tiny Cluster 模式 [RN51][RN53])。
- Nanite:源网格已启用 Nanite 时 GC 自动启用;可获得自动 LOD(GC 本身默认不支持 LOD)、更小的磁盘/内存;烹饪时可剥离几何属性,官方称可减少 95% 文件大小;支持 Nanite fallback [A7]。
- Root Mesh Proxy:破碎前用一个或多个静态网格渲染,
Root Proxy Data引用;Custom Renderer Type = GeometryCollectionRootProxyRenderer可用 ISM 渲染并跨所有 GC 实例化;支持 LOD/Nanite/Lumen 且在编辑器可见,适合玻璃类材质 [A7]。5.5 引入该 Renderer,破碎后仍由标准 Renderer 负责 [RN55]。 - Niagara 替换小碎片:Chaos 事件调用
Write to Niagara Data Channel,配合 Remove on Break:删除刚体,用 Niagara 网格替代,大块保留;小碎片全部由 Niagara 在 GPU 渲染;官方示例结果 105 个雕像 >30 FPS(视频里约 40–45 FPS) [A7]。 - Cache 代替实时模拟(3.7 / 第 5 节)。
- Dataflow 的块数:论坛回复 Dataflow 可行,但「块数要低」;怀疑大规模块数下运行时性能不行;建议块保持 kinematic,被击中再切 dynamic;或超过阈值后全部转 dynamic 并移除所有锚点(C 级,该回复者自称已不再使用 GC,可能过时)[F1]。
- CPU 侧:5.3 起 GC 组件默认不 Tick,仅在受伤后才 Tick,并优化了 Tick 开销;数据类型与内存优化 [RN53];5.4 再度削减每实例内存 [RN54];5.5 进一步减小组件与 proxy 体积 [RN55]。
- Chaos Core:5.6 加入 Partial sleeping islands、多线程碰撞检测/求解与 island 生成 [RN56];5.7 加入更多并行阶段、实验性 Partial Sleeping(针对大型无结构堆)及相关 CVar、
p.Chaos.MinParallelTaskSize、部分p.Chaos.*在 Shipping 构建可用 [RN57][C7]。 - 版本坑:5.7.3 修复了「相对 5.6 的 Chaos 性能回退(solver iteration count 变成 -1)」[F16],使用 5.7.0–5.7.2 需留意(见 6.3)。
- 运行时生成卡顿:开发日志里运行时 spawn GC 导致约 2 秒卡顿,用对象池(只改 transform;传送无效需先关再开物理)解决 [C3](C 级,单一案例)。
- Tick Group:5.2 升级后 GC 变「慢动作/卡」,一位用户把 GC Tick 设为 Post Physics 后恢复(社区单例,Epic 未给官方修复)[F9]。
- Chaos Visual Debugger / Insights /
stat Chaos用于定位(5.4 起 CVD 为 Beta,5.7 加快大场景加载)[RN54][RN57];这些只是工具存在,官方没有给出碎块数的推荐上限(见 4.4)。 - 第三方清理插件(Fab:Chaos Debris Optimizer)提供 Sleep/Kill 自动清理、抖动碎片判稳、行走代理碰撞;作者自己强调它不替代合理的 Chaos 制作、碎裂设置、碰撞预算与 profiling,且无基准数据 [F14]。(商业插件,仅供了解思路)
3.7 特效与缓存(VFX & Cache)
- Chaos Cache(Cache Manager):5.x 流程——放 Chaos Cache Manager,指定 Cache Collection,按数量添加 Observed Components,设置 Cache Mode = Record 后模拟,结束后切 Play/StaticPose;资产大小约等于碎片数 × 帧数;Play 模式有 Timed(BeginPlay 开始)与 Trigger;StaticPose 主要给 Sequencer [T7]。需启用 ChaosCaching 插件(插件在 Experimental 目录,API 索引页标注为 Experimental,仅出现在搜索结果,未抓取原文,D 级)。
- 4.27 旧流程:把 GC 设为 Kinematic,指定 Target Cache,Cache Mode = Play;适合背景/无玩家交互的破坏 [A14]。
- 5.4:Cache Manager 轨道使用简单压缩,资产更小(受 CVar 控制,默认开)[RN54];5.5:新增 Quat/Euler/Dual Quat 插值,缓解大步长/慢动作失真 [RN55];5.7:支持 root proxy mesh、每次录制可自动新建资产、可控制会话启停(默认 BeginPlay 开始,可改蓝图控制)、可增删观察组件;并修复同会话重复录制同一 GC 与 Chaos 破碎 Niagara DI 的 trailing events 回放问题 [RN57]。
- 已知问题:5.3.2 里「Remove on Sleep」不会被 Cache 记录(Epic 表示会考虑,D 级,仅搜索摘要);5.3 一例「烘焙结果与录制结果不同,多出碎片」(D 级)。
- Niagara 事件:GC 侧启用 Notify Breaks / Collisions / Trailing,Niagara 侧用 Chaos Destruction Data Interface(Spawn from Chaos、Apply Chaos Data),项目设置里要开启 Generate Collision/Break/Trailing Data 与 Contact Graph(CEDEC 2022,旧)[T7][T6]。5.6 起 break/trailing 事件新增 orientation [RN56]。
- Niagara Data Channels(GDC 2025 / 官方优化页):用来批处理冲击数据,避免每次命中单独生成特效;PROJECT MAYHEM 里通过 Data Channel 汇集命中数据,由发射器读取并按载荷决定生成条件 [A7][C4]。
- 玻璃:UFW'22 案例里用 Mesh Renderer 生成全部玻璃碎片 CPU 约 60 ms,改用 Pivot Painter 2 转到 GPU(旧,5.0/5.1 时期)[T6]。
- 内部面材质:PROJECT MAYHEM 在 Dataflow 里烘焙厚度/曲率/AO 并打包进 RGB 遮罩,混合内外材质层 [C4]。
- GPU 化廉价破坏:开源 Niagara Destruction Driver(MIT, v0.9.0, 测试 UE 5.5.4)把 GC 转为 Niagara 驱动的 GPU 模拟网格;README 没有给性能数字;限制:仅支持一层块、无碰撞追踪、无内置复制、Nanite 未测试 [C5]。
- 动画 GC:为 Lego Fortnite 开发的
Get/Set Initial Local Rest Transforms+Set Local Rest Transformations,用 Timeline 动画碎片 transform,可做堆叠建造效果、Sequencer 驱动的体积、非破碎变形(官方称「并不快」)[A7]。
4. 数值 / 预算经验表(仅收录有出处的)
4.1 官方示例值与文档默认值(A 级)
| 项目 | 数值 | 语境 | 来源 |
|---|---|---|---|
| Quick Start:Uniform 默认破碎 | Level 0 = 1 块,Level 1 = 20 块 | 教学示例,不是预算建议 | [A5] |
| 簇化示例 | 500 个 Uniform Voronoi sites → Auto Cluster 200 → 100 → 50 → 15(每次加一层) | 教学示例 | [A4] |
| 簇化示例 2 | Level 1 = 20 块、Level 2 = 87 块,先断 Level 1 | 教学示例 | [A4] |
| 4.27 旧文档示例 | 柱子 Voronoi min/max sites = 8 | 教学示例 | [A14] |
| Dataflow 示例 | 两次 Uniform Scatter(10 点、25 点)→ 两次 Voronoi → Auto Cluster | 教学示例 | [A6] |
| Damage Threshold 数组示例 | 5000 / 500 / 50(三级) | Dataflow Quickstart,单位同 strain | [A6] |
| External Strain 示例 | Radius 100,Propagation Depth 1,Propagation Factor 1,Strain 50000;Linear Velocity 默认 500 | Dataflow Quickstart 蓝图 | [A6] |
| Break Propagation 例 | 球强度 200 撞强度 100 的墙,剩余 100 传递 | 概念示例 | [A7] |
| Tiny Geo Relative Volume | 0.04 | 官方示例值 | [A7] |
| Remove on Sleep 示例 | 睡眠 3 秒后消失 | 官方示例 | [A7] |
| Nanite 剥离 | 文件大小约 -95% | 烹饪时剥离几何属性 | [A7] |
| 大规模示例 | 105 个雕像,>30 FPS(视频约 40–45 FPS),使用了 Niagara 替代小碎片等全部技巧 | GDC 2025 示例 | [A7] |
min_level_set_resolution / max_level_set_resolution 默认 | 5 / 10(簇:min/max_cluster_level_set_resolution 5 / 10) | 均已 deprecated,改用 SizeSpecificData | [A11][A12] |
minimum_mass_clamp 默认 | 0.1 | [A11][A12] | |
scale_on_removal 默认 | 开启 | [A11] | |
slow_moving_velocity_threshold 单位 | cm/s(页面未给默认值) | [A11] | |
| 转换大网格警告 | >1M 三角形时弹警告并显示进度条 | 5.4 | [RN54] |
| 5.1 Rigid body 提升 | 512 个动态凸体的 tumbler 测试比 5.0 快 50%;对含 10 万静态物体的复杂地形射线检测快 2 倍 | Chaos Core,非破坏专项 | [RN51] |
| Noise 示例 | Amplitude 0 vs 30(cm);Frequency 0 vs 200;Octaves 1 vs 8 | 图例对比,非推荐 | [A3] |
4.2 Epic Japan 项目复盘(A/B 级,UE 5.0/5.1 旧版)
| 项目 | 数值 | 来源 |
|---|---|---|
| 一栋 City Sample 楼 | 约 800 个部件、每个数万面、总计数千万面 → 一次转 GC 内存溢出崩溃 | [T6] |
| 约 10 万面网格群转换 | UE 5.0 下 2 小时以上(5.0 bug),5.1 大幅加快 | [T6] |
| 材质数 | 单栋楼约 200 个材质 → GC 化后截面材质使其增至约 400–500;通过统一材质降到 30 以下才缓解渲染线程压力;Nanite 每 cluster 最多 64 个材质 | [T6] |
| Niagara Fluid | 仅 3 个流体就曾耗约 45 ms;降分辨率、固定 Tick Delta Time 等 | [T6] |
| 玻璃碎片 | Mesh Renderer 方案约 60 ms,改 Pivot Painter 2 | [T6] |
| 碎裂示例 | 先 Uniform(Voronoi site 24)再对 Level 1 做 400 的碎裂;先做 500 的细碎片再 Auto Cluster | [T7] |
4.3 社区经验值(C/D 级,低可信,仅作参考)
| 项目 | 数值 | 说明 | 来源 / 级别 |
|---|---|---|---|
| 典型道具的 Voronoi 块数 | 10–25 | 单一作者,无版本,无基准 | [C1] C |
| 阈值区间 | 玻璃/易碎 50–200;木头 500–1500;混凝土 2000–5000;金属 5000–20000;从 100–200 起步逐步提高 | 作者的 ApplyPointDamage 示例用 500/2000,与 Epic 示例的 5000/500/50 + 50000 strain 量级不一致,说明数值与项目单位/受力设定强相关,不要直接套用 | [C1] C |
| 早期测试值 | Index0=50, Index1=20, Index2=10(便于测试易碎) | 社区教程(经搜索摘要转述) | D |
| 3 个 Damage Threshold 默认档 | 一位用户称「默认三档,Level 1 = 500,000」 | 发帖者自述,非官方文档 | [F4] C |
| 某用户的建筑阈值 | 35000 / 30000 / 20000 / 5000(Index 0–3),质量 2300 | 用户自填值,非建议 | [F7] C |
| 每个 GC 块数建议 | <200(多数场景),频繁被破坏的道具 <50;20 个 GC × 50+ 块 → 1000+ 活动刚体 → 求解器约 15 ms/帧;建议「每 GC 最大同时模拟刚体数」 | 原文 403,未验证 | [C8] D |
| 另一篇搜索摘要 | 中型道具 20–50 块,大型结构件 100–200 块;另一篇建议 10–25 | 出处不明(搜索摘要) | 未验证 D |
| 清理案例 | 某资产作者将块数从约 100/对象降到 10–20,并强制破碎后入睡 | 来自搜索摘要,原文未抓取 | 未验证 D |
| 运行时 spawn 卡顿 | 约 2 秒 | 开发日志,单例 | [C3] C |
| 薄地形 | 实体厚度 30–50 cm | 论坛回复 | [F12] C |
4.4 明确「官方没有给出」的项目(不要编数)
- 碎块总数上限 / 每 GC 推荐块数:Epic 文档与演讲摘要均未给出;官方只说「别在首次破碎里放几千块」[A14]。
- 推荐的 Fracture Level 数:官方示例用 2–4 层(Quick Start 1 层、Auto Cluster 示例 4 层以上),但无预算建议。
- Damage Threshold 推荐梯度:仅有 Dataflow Quickstart 的 5000/500/50 示例 [A6];官方只给出原则(粗簇高阈值,细碎片低阈值 [A14];size-specific 阈值配 Shock Propagation [A7])。
- 节流 CVar 的推荐值:官方页只列出 CVar 名,未给数值。
- Level Set 分辨率的推荐值:只有已废弃属性的默认值 5/10;SizeSpecificData 的推荐值未找到。
- Chaos Cache 的合理大小/帧率:仅知「大小≈碎片数×帧数」[T7],无推荐值。
5. 专题:几个高频问题
5.1 Fields vs External Strain vs 碰撞
见 3.5 的表。要点:Epic 官方(GDC 2025 文字版)明确把 Trace + External Strain 作为 Field 的廉价替代;Field 保留给需要细致空间控制的情形 [A7]。CEDEC 2022 的 Field 结构讲解适用于 5.0/5.1,Field 内部节点树(Culling Field 定范围、Input Field 定数值、Falloff、Operator、MetaData)是自定义 Field 的基础 [T7]。
5.2 Nanite 与 Geometry Collection
- 自动启用/可手动启用;
enable_nanite、enable_nanite_fallback、nanite_minimum_residency_in_kb(0 = 约一页,MAX = 整个网格)[A11]。 - Nanite 网格不能直接转 GC,先破碎,再勾 Enable Nanite(CEDEC 2022,旧)[T7];5.x 官方页:源网格已 Nanite 则自动启用 [A7];CedUE(2022)也如此说 [F7]。
- 5.3:不可变渲染数据移到 GC 资产内 [RN53];5.4:支持 Nanite 下的 masked material、custom depth [RN54];5.6:Fracture Editor 对 Nanite GC 的选择可视化 [RN56]。
- 已知问题:
- 同时启用 Enable Nanite + Enable Nanite Fallback 后,GC Actor 不再收到物理更新(
r.Nanite 0后触发无反应,r.Nanite 1后稍等才更新);Epic 支持人员复现并提交 JIRA UE-302050(2025-06,版本未写明)[F10]。 - 2022(5.0):Nanite 启用后网格消失——CedUE:应开箱即用;DX11 无 Nanite fallback 时可能不可见(搜索摘要,D 级)[F7]。
- 旧帖称启用 Nanite 对 GC 破碎帧率无明显收益(2021–2022,D 级)。
- 同时启用 Enable Nanite + Enable Nanite Fallback 后,GC Actor 不再收到物理更新(
5.3 ISM Pool / Root Proxy
- Root proxy +
GeometryCollectionRootProxyRenderer(5.5);5.4 已支持有/无 custom renderer 的 root proxy [RN54][RN55][A7]。 - 5.3:「ISM Pool 实例化出的静态网格不创建物理状态」的优化,以及 ISM Pool 渲染优化 [RN53]。
strip_render_data_on_cook:与自定义 Renderer(例如 ISMPool)配合剥离渲染数据 [A11]。注意 5.3 的 AI Navigation 修复:bStripOnCook可能导致没有 root proxy 而导出不了导航 [RN53]。
5.4 Dataflow 要点
- 概念见 [A10];快速上手见 [A6]:Fracture Mode 里 New → 选 DataFlowAsset → 打开 GC 的 Dataflow Graph 面板;阈值数组在 Terminal 节点;这是非破坏的,可换源网格/点分布/破碎节点 [A6]。
- 复用的陷阱(CedUE,2025-03):多个 GC 共用一个固定源网格的 Dataflow,结果会长得一样;变量支持当时未发布(5.6 加入 Variables / Sub-graphs / For Each / Utility Blueprint API [RN56]);绕行节点链:
GetGeometryCollectionAsset → GetGeometryCollectionSources → CreateGeometryCollectionFromSources → … → GeometryCollectionTerminal[F2]。 - UF Orlando 2025 的做法(演讲者在论坛指向其结尾部分):Utility Blueprint 遍历静态网格,按关键字/标签选 Dataflow,创建空 GC,运行 Dataflow 并把网格作为参数传入;多网格合并用 BlueprintToCollection 节点 [F1][T5]。
- Dataflow 构建大量 GC 的批处理文档不足,有团队因文档缺失而放弃(C 级)[F2]。
5.5 多人 / Replication
- 官方文档层面:没有找到专门的 GC 复制章节;5.3 起 GC 使用优化后的复制逻辑,不再复制空的内部簇 [RN53];5.3/5.4 的 Release Notes 里 Cluster Union 和服务器权威 GC 粒子在客户端设为不可破碎(unbreakable on the client),以防止服务器-客户端不同步 [RN53][RN54];GC 不再把自己设为 dormant 以避免不同步 [RN54];5.3 还增加「控制簇级别的位置/速度复制」的选项 [RN53]。
- 社区实操(C 级,PIE listen server,2026-08,UE 5.7.4):GC 组件勾选 Enable Replication,关闭 Enable Abandon After Level(若保持开启,则
Replication Abandon After Level至少要达到破碎深度;默认 0 只复制 root 层,客户端收不到破碎事件);碎片位置不一致要看所属 Actor 的 Replicate Movement(默认 false,需要 true 才发送位置/速度校正;放置在关卡里的 Actor 不能直接勾,要做 BP 子类或在 Level BP 里调用)[F5]。 - 5.3 一个 CVar:
p.bGeometryCollectionRepUseClusterVelocityMatch 0可恢复 5.2 的「复制精确碎片位置」行为;5.3 默认只复制破碎时的初速度、客户端预测落点(社区帖,3 条回复一致)[F5]。 - 专用服务器:2026-04 有用户反馈客户端有时不破碎、破碎时碎片「爆开」,无确认解决方案(未验证)[F5]。
- 设计层面的建议:不要同步物理,复制「哪些部分已被摧毁」的数据(列表/标志位),客户端自己重建视觉,低带宽、对后加入玩家状态正确(社区 2026-09);Chaos 用于碎片与灰尘,不作为真相来源 [F5]。另有一帖(2024-09,无 Epic 回复)里某用户认为同步每块碎片「几乎不可能」,并建议小游戏改用预制的 Alembic 让每面墙以相同方式破碎;这属于个人意见、未给证据,可信度低 [F6]。
- 车辆:Chaos Modular Vehicles 需要在 Project Settings 启用 Physics Prediction / History Capture,使用服务端权威的客户端预测与回滚重模拟 [A13]。
6. 常见坑与排障
6.1 「不破」类
| 现象 | 原因 / 对策 | 来源 |
|---|---|---|
| 碰撞/子弹打了不碎 | 组件 Enable Damage 默认关;阈值太高(示例:阈值 1000 vs 伤害 50);未 Simulate Physics;未做 Fracture(只有一层);区域爆破需 Field System + External Strain | [C1](C 级,未标版本) |
| 把静态网格当 GC 用 | 必须转成 GC 并先 Fracture | [C2] |
| 只用碰撞破碎结果千篇一律 | 需开 Damage Propagation Data / Enable Damage from Collision 并结合 External Strain | [A7] |
| 加入 Cluster Union 后更难打碎 | 层级多一层,伤害路径变化;Field 只作用于质心在场内的簇;检查 Damage Propagation 是否被误关;用 debug CVar 看内部 strain | [F4] |
| 内部材质不对 | "Add Internal Materials" 复选框在较新版本中位置变化;做法:Fracture Mode → Utilities → Materials 添加槽位并只分配给 internal faces;或在破碎前给静态网格先加一个材质槽(5.3) | 论坛,C/D 级 |
6.2 「卡顿」类
| 现象 | 对策 | 来源 |
|---|---|---|
| 一次破碎成千上万块卡顿 | 分层、少而大的 Level 1,逐级脱落;节流 CVar;限制 Max Cluster Level | [A14][A7] |
| 碎片落地后性能掉 | 用 Remove on Break / Sleep(Fracture Mode → Utilities → Set removal-on-break parameters)清理 | [F11][A7] |
| 许多碎片永不入睡(抖动) | slow_moving_as_sleeping + slow_moving_velocity_threshold(cm/s) | [A11] |
| 运行时 spawn GC 卡 2 秒 | 对象池,只改 transform | [C3] |
| 5.2 升级后碎片慢动作 | GC Tick Group 设为 Post Physics(社区单例) | [F9] |
| 5.7 Chaos 性能回退 | 升级到 5.7.3+(修复 solver iteration = -1 问题) | [F16] |
| 大量材质占满渲染线程 | 减少材质数,用 Nanite 并统一材质;Strip on Cook | [T6] |
| 过多 Convex | 5.1 Convex 工具可权衡精度与重叠;5.3 的 Merge/Simplify Convex Hulls Dataflow 节点;5.7 optimize_convexes(实验);Epic 没有给出凸包数量预算 | [RN51][RN53][A11] |
| 复杂碰撞 | 用网格精确碰撞比凸包贵得多(说法来自 [C8] D 级,未验证);官方只说 5.4 起 GC 可选更贵的碰撞几何 | [RN54] |
6.3 「碰撞丢失 / 不可交互」类
- 5.7(至 5.7.3):破碎/移除后 GC 失去碰撞(Remove on Break/Sleep 完成后仍渲染但不可交互)。用户临时方案:
SleepMinMax与RemovalDuration均 <1、避免 Initialization Fields 用 Anchored 替代(部分人无效);有人在 5.7.2 无法复现;2026-03 一位用户称 5.7.4 已解决;5.7.4 热修复列表中确有一条对应修复(Removal on Sleep/Break 计时结束后碎片不可交互却仍渲染)[F8][F16]。(热修复条目编号 UE-358545 只出现在搜索摘要,未在 F16 抓取内容里复核,未验证。) - 5.0 时代:通过 Level Set 的小洞穿透;Particle-Implicit 开销大(见 3.4a)。
6.4 其它
- 悬浮碎块:Connection Graph 连得太远 → 5.1+ 的 Bounds Overlap;运行时可视化 CVar(3.4e)[F7]。
- 薄地形碎片飘走:加厚,调最小质量与 Mass as Density(C 级)[F12]。
- 浮在空中的 Cluster Union:需要游戏逻辑处理支撑/断裂后拆分 [F3]。
- Dataflow 共享:见 5.4。
- Mass(物理质量):见 3.4b。Mass Entity / Mass Framework 与 Chaos Destruction 的官方集成资料:没有检索到,未验证(检索中出现的「Mass」条目均为无关的 Mass Entity bug fix)。
- Skeletal Mesh:Jonathan Kohl 反馈骨骼网格不能用来做 GC(C3,单例);而 A1 称 GC 可由 static 或 skeletal mesh 创建——二者矛盾,以官方为准但需实测,未验证。
- 导航:5.3 修复了
UNavModifierComponent对 GC 的支持,并增加 GC 组件的 navigation relevancy 开关 [RN53][RN54]。
7. 版本变化
7.1 按版本的变化清单(均有出处;标「Highlights」的是该版 Release Notes 顶部摘要)
| 版本 | 与 Chaos Destruction 相关的变化 | 来源 |
|---|---|---|
| 5.0 | Chaos 成为 UE5 默认物理;Chaos Destruction 的概念:Geometry Collection、Fracture Mode、新 Cache System;Field 系统 | [RN50] |
| 5.1 | Fracture Hierarchy 列模式(State/size、Damage、Removal、Collision);Damage Watcher;GeoMerge 新旧更名 TinyGeo;Convex 工具新设置;Validate 变成 modal;Auto Cluster 增加 Fraction of Input/Avoid Isolated;Mesh Paint 支持 GC;导入源静态网格的碰撞;Remove on Sleep 可移除慢速碎片+Cluster Crumble;Remove on Break;Connection Graph 用 Bounds checking;Damage Propagation(Break/Shock);蓝图可用 Item Index 操作单个碎片;更多 GC 数量/Fracture 工具性能优化 | [RN51] |
| 5.2 | 未破碎 GC 的 CPU 占用大幅降低;碰撞 profile 可按 level 和 abandoned 配置;编辑器里 GC 组件注册优化;缩略图等修复(搜索摘要+局部抓取) | [RN52] |
| 5.3 | Cluster Unions;GC 组件默认不 Tick(受伤后才 Tick);实验性 Damage Model(基于材质);Proximity 工具接触面积连接;Level Set 参与 Connection Graph;Fracture Editor 的 Quick Settings、Tiny Cluster、ByGrid 聚类;GC 不可变渲染数据移入资产;ISM Pool 渲染/物理状态优化;Dataflow GC 节点(简化凸包、Merge Convex Hulls 等)与 Dataflow 基础设施;每 particle/level/abandoned 的碰撞 profile 覆盖;更优化的复制逻辑;IsRootBroken 暴露蓝图;p.Chaos.DebugDraw.ConnectionGraphLevelOffset | [RN53] |
| 5.4 | Chaos Destruction 标注 Production Ready;GC 每实例内存显著降低;Cache Manager 压缩;root proxy 支持(有/无 custom renderer);p.Chaos.Clustering.PerAdvanceBreaksAllowed 全局断裂上限;use material damage modifier;Auto Cluster 偏好更凸的簇;Dataflow StaticMeshToCollection、Magnet cluster 节点;Nanite+masked material、custom depth;Cluster Union 的加速结构、导航、重力组继承;客户端上 Cluster Union / 服务端权威 GC 粒子不可破碎;转换 >1M 三角形的警告 | [RN54] |
| 5.5 | GC 组件与 proxy 内存进一步缩小;GeometryCollectionRootProxyRenderer(root proxy 用 ISM);Dataflow Editor Simulation 视图;新 Dataflow 节点(Radial point distribution、Mesh cutter、FixTinyGeo、Recompute normal、Validate);Cache 新增 Quat/Euler/Dual Quat 插值;Chaos Modular Vehicles(Cluster Union Actor);官方 GDC 2025 讲稿主题:Anchoring 直接在 Fracture Mode、Niagara Data Channels | [RN55][T1] |
| 5.6 | Dataflow:纹理/UV/破碎/碰撞新增节点,凸包/连通/破碎可视化;Fracture Editor 可通过 Dataflow 评估和参数化 GC;Nanite GC 选择可视化;创建 GC 时可选物理材质;root proxy 新增 transform;break/trailing 事件新增 orientation;破坏与性能优化 CVar 暴露在项目设置;Dataflow Editor:Variables、Sub-graphs、For Each Loops、Scene Outliner、Utility Blueprint API;Chaos Core:Partial sleeping islands、多线程碰撞与 island 生成 | [RN56] |
| 5.7 | 见 7.2 | [RN57] |
| 5.8(补充) | Dataflow 被宣布 Production-Ready(搜索摘要);默认 Dataflow 模板;GC 可按 transform 设线性/角阻尼;GetCurrentTransforms/GetCurrentTransformsFromIndices;GyroscopicTorque;修复 Niagara Destruction DI 索引错误(粒子在原点生成);Chaos Caching:每组件 Sequencer 缓存、缓存版本/裁剪/失效工具;Chaos Core:线程安全 island、局部空间模拟、速度钳制等 | [RN58] |
7.2 UE 5.7 里相比旧版(5.0–5.3)变化了什么
范围说明:5.7 Release Notes 的详细逐条列表未能读取(见 0.2-3),下面「5.7 直接新增」只来自 Highlights;「5.4–5.7 累积」是把 5.4/5.5/5.6/5.7 的条目合并后相对 5.0–5.3 的差异。
A. 5.7 Highlights 直接列出的 Chaos Destruction 条目 [RN57]
- Reset State:GC 组件状态可通过 C++、Blueprint 或在编辑器模拟中实时重置。
- Export to Skeletal Mesh:可把 GC 资产导出为 Skeletal Mesh 资产。
- Leaf Sub-trace:对 GC 做 trace 后可拿到精确命中的叶子骨骼;未破碎时默认只返回 root。用途:贴花贴到正确骨骼、运行时锚定特定碎片。
- Chaos Caching:root proxy mesh 自动切换;每次录制可自动新建资产;会话启停可控(默认 BeginPlay);可增删观察组件;修复重复录制与 Niagara DI trailing events。
- Chaos Dataflow Editor:新的时间轴与模拟控制、新工具栏、重做的 Paint Weight Map、Edit Skin Weight、Edit Skeleton Bones;Cloth/Destruction/Flesh/Hair 共用统一 Dataflow 工具集;Dataflow 初步支持创建 Physics Asset。
- Chaos Core:更多并行模拟阶段;实验性 Partial Sleeping(大型无结构堆);更好的球/胶囊 narrow-phase 与 query 层变换处理;CVD 加载更快(>2 GB 碰撞几何最高快 30%,9.3 万对象首帧卡顿由 10 秒以上降到约 3 秒)。
- 来自 Tom Looman 对 5.7 的整理:
p.Chaos.MinParallelTaskSize、部分p.Chaos.*(如p.Chaos.MaxNumWorkers)在 Shipping 可用 [C7]。 - 5.7.x 热修复:5.7.3 修复相对 5.6 的 Chaos 性能回退(solver iteration = -1);5.7.4 修复 Removal on Sleep/Break 计时结束后碎片不可交互却仍渲染 [F16]。
- Python API 里
dataflow_asset变为 getter/setter,Dataflow terminal 名改存DataflowInstance;optimize_convexes需p.Chaos.Convex.SimplifyUnion;nanite_minimum_residency_in_kb、enable_nanite_fallback、automatic_crumble_partial_clusters等在 5.7 页存在(5.3 页的摘要未列出,可能是摘要遗漏,未验证)[A11][A12]。
B. 5.4–5.7 累积,相对 5.0–5.3 的实质差异
| 方面 | 5.0–5.3 | 5.7(累积) |
|---|---|---|
| 成熟度 | 5.0 首次随 UE5 提供;5.3 引入 cluster union 但标注为新功能 | 5.4 起 Chaos Destruction 标 Production Ready [RN54];Cluster Union 在 2025–2026 Epic 回复里仍说「在开发」[F2] |
| 创作 | Fracture Mode 手工为主(5.0/5.1) | Dataflow 为主推路径:5.3 起奠基,5.5 Simulation 视图,5.6 Variables/Sub-graphs/For Each/Utility BP API,5.7 时间轴;Epic 内部大量使用 [F2][RN55][RN56][RN57] |
| 锚点 | Anchor Field(Construction Field)/Initial Dynamic State=Static | Fracture Mode 里 Anchored/Kinematic,运行时蓝图函数控制 [A7][F2] |
| 触发 | Field 为主;5.1 起 Item Index 精确打击 | Epic 推荐 Trace + External Strain + 碰撞 的组合;5.7 Leaf Sub-trace 精准命中叶骨 [A7][RN57] |
| 伤害 | 阈值数组;5.1 Propagation | + 5.3 材质 Damage Model(实验)+ 5.4 材质修正 + size-specific 阈值 [RN53][RN54][A11] |
| 渲染 | GC 无 LOD;Nanite 需破碎后手动勾选(5.0/5.1) | 自动继承 Nanite、Nanite fallback、masked material、custom depth、root proxy + ISM Renderer、剥离 95% [RN54][RN55][A7] |
| 碰撞配置 | per-asset 的 Implicit Type/Level Set 分辨率 | 改为 SizeSpecificData,per-asset 属性 deprecated(5.3 页已如此),5.1 起有 Convex 工具与导入源碰撞,5.3 起 Dataflow 凸包节点 [A11][A12][RN51][RN53] |
| 清理 | 5.0 Remove on Sleep;5.1 Remove on Break | 全局倍率 CVar、组件级开关、automatic crumble [A7][A11] |
| 运行时开销 | 5.2/5.3 降低未破碎 CPU、Tick | 5.4–5.5 内存继续降,5.6/5.7 Chaos Core 并行化与实验性 Partial Sleeping;节流 CVar [RN54][RN55][RN56][RN57] |
| 缓存 | 4.27 流程 / Cache Manager | 轨道压缩(5.4)、插值模式(5.5)、root proxy 与会话控制(5.7)[RN54][RN55][RN57] |
| 特效 | Chaos DI 事件 | + Niagara Data Channels 批量处理(5.5 时代)[T1][A7] |
| 复制 | 5.3 前后行为变化 | 5.3 优化复制;5.3/5.4 客户端不可破碎;p.bGeometryCollectionRepUseClusterVelocityMatch;5.7.4 社区需要 Replicate Movement [RN53][RN54][F5] |
| 工具 | 5.1 Damage Watcher | 5.7 Chaos Visual Debugger(5.4 Beta)[RN54][RN57] |
版本归属不确定的项目:Anchored/Kinematic 的右键菜单——A7 页(5.6 版)与 GDC 2025 摘要把它放在 5.5 时代的新功能 [T1],但 5.4 已有「anchored bones」bug 修复与「Set Initial Dynamic State」菜单 [RN54]。因此准确引入版本未验证。
8. 未验证 / 缺口清单
- 三个 YouTube 演讲(GDC 2025、UF Gold Coast 2024、UF Orlando 2025)以及 UF 2024 的 Lego Fortnite 大规模破坏、GDC 2024 Lego Fortnite 的具体数值:只有摘要,未验证。
- UF 2022/2023 的专门 Chaos Destruction session 以及 Matrix Awakens 的具体做法(桥/楼体):只找到 Epic 的 Case Studies 教程指针 [T8] 和 Square Enix UFW'22 [T6];未验证教程内容。「Fortnite destruction」除 Lego Fortnite 外无资料。
- Release Notes 5.5/5.6/5.7 的逐条物理条目:未读到。
- Physics Fields 官方子页(Anchor Field、Master Field、Strain 类型)的 5.x 文档:抓取为空;只用 T7(旧)补充。
- Chaos Solver Actor 官方页、Collision 设置官方页、ISM Pool 专门页、Chaos Niagara data interface 专门页:没找到独立的官方页面(相关信息散见 A7、A11、T7)。
- Reddit / Unreal Slackers:未覆盖。
- 官方没有碎块数/Level 数/阈值梯度/Level Set 分辨率的预算建议(见 4.4)。Stray Spark 等博客的数值未验证,仅作线索。
- 多人/专用服务器的官方推荐:没有找到。
- 论坛里「CedUE」是否为 Epic 员工:页面未明示;多个帖子中其回复以 Epic 口吻出现,且与 GDC 2025 讲者 Cedric Caillaud 名字缩写相符,但这是推测。
- 5.8 的细节仅读到 Highlights(Dataflow Production-Ready 来自搜索摘要,Release Notes 第 100000–200000 字符的 Chaos Destruction 条目已核对)。
